![]() |
[求助]MATLAB中的非线性限制的优化问题
最简单的例子,
目标函数是 f=3*x(1)+2*x(2)+2.5*x(3)+12*x(4)+4*x(5)+5*x(6)+0.32*x(1)*x(7)。 限制是 0.2*x(1)+0.32*x(1)*x(7)+0.3*x(3)=1; 0.256*x(1)*x(7)+0.9*x(2)+0.4*x(3)=1.5; 0.32*x(1)*x(7)+0.88*x(4)+0.3*x(6)=2; 0.256*x(1)*x(7)+0.064*x(4)+0.9*x(5)+0.4*x(6)=5; 我是参照HELP中的问题来编的程序 function f=objfun(x) f=3*x(1)+2*x(2)+2.5*x(3)+12*x(4)+4*x(5)+5*x(6)+0.32*x(1)*x(7) function [c,ceq]=confun(x) c=[]; ceq=[0.2*x(1)+0.32*x(1)*x(7)+0.3*x(3)-1; 0.256*x(1)*x(7)+0.9*x(2)+0.4*x(3)-1.5; 0.32*x(1)*x(7)+0.88*x(4)+0.3*x(6)-2; 0.256*x(1)*x(7)+0.064*x(4)+0.9*x(5)+0.4*x(6)-5]; 然后在命令窗口执行 x0=[4,0.5,0,0,3,2.5,0.1]; lb=[0,0,0,0,0,0,0]; ub=[10,5,10,10,5,10,1]; options=optimset('Algorithm','active-set'); [x,fval] = fmincon(@objfun,x0,[],[],[],[],lb,ub,@confun,options) 得出的结果完全不对,x=[1.5,0,0,0,3,2.5,0.1] 和初始值没什么区别,而且完全不符合设置的限制。 我觉得是我设置的限制confun有问题,没有利用上。 请各位大大指点,不胜感激。 |
回复: [求助]MATLAB中的非线性限制的优化问题
求助各位大大,帮帮忙阿。。。。谢谢阿
|
所有时间均为北京时间。现在的时间是 05:14。 |
Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.