Labfans是一个针对大学生、工程师和科研工作者的技术社区。 | 论坛首页 | 联系我们(Contact Us) |
![]() |
![]() |
#1 |
初级会员
注册日期: 2009-03-06
年龄: 37
帖子: 2
声望力: 0 ![]() |
![]()
最简单的例子,
目标函数是 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有问题,没有利用上。 请各位大大指点,不胜感激。 |
![]() |
![]() |
![]() |
#2 |
初级会员
注册日期: 2009-03-06
年龄: 37
帖子: 2
声望力: 0 ![]() |
![]()
求助各位大大,帮帮忙阿。。。。谢谢阿
|
![]() |
![]() |
![]() |
主题工具 | |
显示模式 | |
|
|
![]() |
||||
主题 | 主题作者 | 版面 | 回复 | 最后发表 |
MWNumericArray精度问题 | 未注册 | MATLAB论坛 | 1 | 2011-09-25 17:07 |
[MATLAB基础] matlab中求最小值 | xidianxiancai | MATLAB论坛 | 2 | 2009-05-08 13:25 |
[MATLAB GUI] 求助:图像装载不出来怎么办? | cathjj05 | MATLAB论坛 | 1 | 2009-05-05 09:35 |
如何实现gui窗口嵌套 | beulah | MATLAB论坛 | 1 | 2008-12-28 17:57 |
请问matlab程序 刚刚打开会自动关闭是怎么回事? | ooo | MATLAB论坛 | 2 | 2008-04-20 21:57 |