永发信息网

matlab优化非线性约束

答案:2  悬赏:0  手机版
解决时间 2021-02-22 17:42
目标函数是:求x(2)/x(1)-800最大值

约束条件是:(x(1)-566)^2+(x(2)-566)^2大于600^2,小于1100^2,x(1)大于-43小于800;x(2)大于707小于1100;我在matlab编写文件如下:
function [c, ceq]=mycon(x)
c=((x(1)-566)^2+(x(2)-566)^2-600)*((x(1)-566)^2+(x(2)-566)^2-1100);
ceq=[ ]; %无等式约束

fun='x(2)/x(1)-800';
x0=[-40 720];
A=[];
b=[];
Aeq=[ ];
beq=[ ];
lb=[-43 707];
ub=[800 1100];
[x,fval,exitflag,output,lambda,grad,hessian]=fmincon(fun,x0,A,b,Aeq,beq,lb,ub,@mycon)
为什么结果和理想的差很多?
最佳答案
将下面语句在matlab编辑器中保存为mycon.m
function [c, ceq]=mycon (x)
c=(300/210000*(1-x(1)/300))^3/x(2)^2-(300/210000*(1-x(1)/300))^3/(0.2+x(2))^2-0.000075;
ceq=[ ]; %无等式约束
在matlab窗口中输入:
fun=’-x(1)*(0.02+x(2))/(2*(300-x(1)))+300/210000’; x0=[1 1];A=[];b=[]; Aeq=[ ]; beq=[ ];
lb=[0 0];ub=[300 1]; [x,fval,exitflag,output,lambda,grad,hessian]=fmincon(fun,x0,A,b,Aeq,beq,lb,ub,@mycon)
全部回答
方法/步骤 此题的问题描如下图。由于本经验主要是谈非线性约束下的最优化问题,对于其他线性约束就不再考虑。 然后启动matlab。新建一个函数文件,用来写目标函数。 在编辑器窗口中写入我们要求的目标函数,并保存,注意使函数名与文件名相同。 然后再新建一个函数文件,用来编写非线性约束条件。步骤及其注意事项同上。额外需要注意的是,需要将两个函数文件放在同一个文件夹中。 最后,在命令行窗口处写入fmincon命令。此处需要注意的是,对于没有的线性约束条件的位置药用空矩阵代替,并且初始条件需要满足非线性约束条件(本例中写的是[1,2])。 敲下键盘上的enter建,结果得出。可以发现exitflag=1是大于0的,所以结果正确。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
一个人拿着怀表穿越
我是大一新生,离学校很近,是住校还是不住好
辉煌电器这个地址在什么地方,我要处理点事
已知x>0,y>0且满足2x
梦见很多外国人
格雷西卫浴地址有知道的么?有点事想过去
地灵绝魂套仓库里必须放装备吗 !!!!
患者女,60岁,因“多尿、口干、多饮9年,右
面瘫,嘴向右边歪,请问是哪边脸部的问题
2009四川艺体生的文化高考分数线是好多??
他是个怎样的人?一个小说讲了地球与外星打仗
谁来拯救我和我的女朋友
梁的标注:400x1200x30x30x30x
那天我遇见了你的与众不同!是那首歌里的
小虾米闯江湖学什么武功好 武功绝学选择推荐
推荐资讯
Shewascheerfultohearthathissonhasgotthegol
荣耀6手机限权管理里还有美图秀秀,到手机上里
罪恶都市我的完成率94%还有哪些支线任务没完
房贷晚还一天会怎么样
cpuz怎么看内存颗粒
怎么看出你的女同桌喜欢你啊!
日光派对泳池怎么去啊,有知道地址的么
东荡村村在什么地方啊,我要过去处理事情
九仙怎么去啊,有知道地址的么
到欧洲旅游跟团要多少钱
怎么转移手机短信
东什么西什么反义词
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?