永发信息网

关于matlab多元非线性优化问题,大神来帮帮忙啊

答案:2  悬赏:0  手机版
解决时间 2021-12-29 14:57
A=[1 0 -15 0;0 1 0 -70];
  b=[0;0];
  vub=[900;1000;30;30];
  vlb=[500;500;5;5];
  [x,fval,exitflag,output,lambda,grad,hession]=fmincon('funn',x0,A,b,[],[],vlb,vub,'nonlin')
  目标函数function y=funn(x)

  y=x(1)*x(3)+x(2)*x(4)
  非线性约束条件

  function [c,y]=nonlin(x)
  c(1) = -0.01*x(2)*x(4)+2500;
  c(2)=-x(2)*(x(1)*x(3)+x(2)*x(4)/6+(1+(20-2*x(1)*x(3))/(20+x(2)*x(4))))+90000
  y=[];
结果为

x =

1.0e+003 *

0.5660 1.0985 0.0130 0.1285

fval =

1.4847e+005

exitflag =

-2
  那个结果得到的x超出vub上限了呢?

非线性约束条件是两个不等式
-0.01*x(2)*x(4)<=-2500

-x(2)*(x(1)*x(3)+x(2)*x(4)/6+(1+(20-2*x(1)*x(3))/(20+x(2)*x(4))))<=-90000
最佳答案
你的这个问题约束条件不对。
 
按照你给的变量范围,x2<=1000, x4<=30,那么-0.01*x(2)*x(4)>=-300,无法满足<=-2500的条件,所以根本找不到可行解。
你在上个问题中的第一个约束条件最右边的常数是220,不知道为什么这里变成了2500.
 
再考虑到还有Ax<=b构成的线性不等式约束,即使把上面的2500改成220,也无法找到可行解。因为该线性不等式的第一个就是x1-15*x3<=0,而x1最小值为500,x3最大值为30,不等式根本不可能满足。
 
优化问题并非随便一写就交给软件去计算的,而是需要对问题进行一定的分析,至少应该构造出一组初始可行解来才行。至于优化的结果,也应该根据exitflag判断是否优化成功,如果失败,可以大致知道原因,例如-2就代表找不到可行解(No feasible point was found),这种情况下,就应该好好检查约束条件是否合理。
全部回答
错误很多:   1、按照函数fmincon的参数顺序,在非线性约束之前,还应该有变量上限,即 [x,fval,exitflag,output,lambda,grad,hession]=fmincon('funn',x0,a,b,[],[],vlb,[],'nonlin')2、非线性等式约束只需要写成方程左侧就可以了: y=-0.01*x(2)*x(4)+220 y=-x(2)*(x(1)*x(3)+x(2)*x(4)/6+(1+(20-2*x(1)*x(3))/(20+x(2)*x(4))))+90000你原来的写法有两个等号,语法上就是错误的。   3、非线性约束函数的格式要求必须返回两个参数,即不等式和等式,如果没有不等式约束,可返回空: function [c,y]=nonlin(x) c = []; y=-0.01*x(2)*x(4)+220 y=-x(2)*(x(1)*x(3)+x(2)*x(4)/6+(1+(20-2*x(1)*x(3))/(20+x(2)*x(4))))+90000
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
汽车维修店有汽油卖吗
新入手的乒乓球拍如何使用,平时如何进行保养
如图,同温同压下,两个等体积的干燥圆底烧瓶
国土受理回执是什么?
王者荣耀李白怎么画
为什么用迅雷看电影,关键时候总是慢动作,一
王者荣耀微信70区什么时候开
四月好日子
—How do you think he managed to improve h
如何形容服务
有一个直角三角形,它的两边长是方程x2-(2k+
“肤如凝脂,手若柔夷”的意思
大班幼儿手工作品用各种材料做一件衣服粘在a4
60的鱼缸需要造浪吗
井中间一点念什么
推荐资讯
神武气势被什么克制
白兰地存放
东环北路/东环南路(路口)怎么去啊,有知道地
天津南京路的急事 天津富士企业发展有限公司
结婚证公证要多少钱,具体的费用是如何计算的
2018年3月1日上午7.33分出生的女孩缺什么?取
cih61mi v1.0可以装低配置的处理器吗
What makes a gift special? Is it the price
维多利亚的秘密2016在哪举行
两个数的商是3.25,如果被除数扩大到原来的3
饿了么的评论怎么删除
公交卡怎么贴在手机上查询余额吗?
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?