• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

非线性规划问题的matlab求解

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

函数:[x, fval] = fmincon(FUN, X0, A, B, Aeq, Beq, LB, UB, NONLCON)

返回的x:是一个向量——在取得目标函数最小时各个xi的取值;

返回的fval:目标函数的最小值;

参数FUN:目标函数;

参数X0:向量x的初始值;

参数A:线性不等式约束的系数矩阵,若没有线性不等式约束,则A = []

参数B:线性不等式约束右端的常数列,若没有线性不等式约束,则B = []

参数Aeq:线性等式约束的系数矩阵,若没有等式约束,则Aeq = []

参数Beq:线性等式约束右端的常数列,若没有等式约束,则Beq = []

参数LB:x的下界,常遇到的x1, x2, x3 >= 0,0就是下界,可用zeros(3, 1)生成一个3行1列的向量来表示,其中向量的每个元素的值为0;

参数UB:x的上界;

参数NONLCON:用.m文件定义的非线性向量函数C(x), Ceq(x)。

 

-------------------------------------------------------------------------------------------------------------

求f(x)的最小值及f(x)取得最小值时x的取值:

min f(x) = x1^2 + x2^2 + 8

约束条件:

x1^2 - x2 >= 0

-x1 - x2^2 + 2 = 0

x1, x2 >= 0

-------------------------------------------------------------------------------------------------------------

编写目标函数.m文件(不要写在主.m文件里)FUN.m(文件名要与函数名相同

 

%写下面两行就可以了
function f = FUN(x);
f = x(1)^2 + x(2)^2 + 8;

 

保存。

编写非线性约束向量函数.m文件(不要写在主.m文件里)NONLCON.m文件名要与函数名相同

 

%写下面3行就可以了
function [g, ceq] = NONLCON(x);
g = -x(1)^2 + x(2);     %非线性不等式约束
ceq = -x(1) - x(2)^2 + 2;       %非线性等式约束

 

保存。

最后编写主体.m文件

 

X0 = rand(2, 1);
A = [];
B = [];
Aeq = [];
Beq = [];
LB = zeros(2, 1);
UB = [];
[x, fval] = fmincon('FUN', X0, A, B, Aeq, Beq, LB, UB, 'NONLCON')

保存运行,得

 

 

x =

    1.0000
    1.0000


fval =

    10


 




鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Delphi7调试工具的使用发布时间:2022-07-18
下一篇:
Delphi工具——反编译Delphi发布时间:2022-07-18
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap