Labfans是一个针对大学生、工程师和科研工作者的技术社区。 论坛首页 | 联系我们(Contact Us)
MATLAB爱好者论坛-LabFans.com
返回   MATLAB爱好者论坛-LabFans.com > 工程数学软件 > MATLAB论坛
MATLAB论坛 一切MATLAB相关问题在此讨论。
回复
 
主题工具 显示模式
旧 2009-03-06, 02:19   #1
yx2001001
初级会员
 
注册日期: 2009-03-06
年龄: 37
帖子: 2
声望力: 0
yx2001001 正向着好的方向发展
默认 [求助]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有问题,没有利用上。
请各位大大指点,不胜感激。
yx2001001 当前离线   回复时引用此帖
旧 2009-03-06, 16:40   #2
yx2001001
初级会员
 
注册日期: 2009-03-06
年龄: 37
帖子: 2
声望力: 0
yx2001001 正向着好的方向发展
默认 回复: [求助]MATLAB中的非线性限制的优化问题

求助各位大大,帮帮忙阿。。。。谢谢阿
yx2001001 当前离线   回复时引用此帖
回复


发帖规则
不可以发表新主题
不可以发表回复
不可以上传附件
不可以编辑自己的帖子

启用 BB 代码
论坛启用 表情符号
论坛启用 [IMG] 代码
论坛禁用 HTML 代码


相似的主题
主题 主题作者 版面 回复 最后发表
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


所有时间均为北京时间。现在的时间是 14:02


Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.