Labfans是一个针对大学生、工程师和科研工作者的技术社区。 论坛首页 | 联系我们(Contact Us)
MATLAB爱好者论坛-LabFans.com
返回   MATLAB爱好者论坛-LabFans.com > 工程数学软件 > MATLAB论坛
MATLAB论坛 一切MATLAB相关问题在此讨论。
 
 
主题工具 显示模式
旧 2010-03-27, 19:54   #1
wwtianqq
初级会员
 
注册日期: 2010-03-27
帖子: 1
声望力: 0
wwtianqq 正向着好的方向发展
默认 求教:MATLAB的fmincon函数使用问题

我写的程序如下:
function f=myfun(x);
f=(1/x(1)+5/12/x(2)+1/2/x(3)+7/24/x(4)+1/3/x(5))*conj(x(1))+(5/2/x(1)+1/x(2)+2/x(3)+5/12/x(4)+1/x(5))*conj(x(2))+(2/x(1)+1/2/x(2)+1/x(3)+1/2/x(4)+5/12/x(5))*conj(x(3))+(7/2/x(1)+5/2/x(2)+2/x(3)+1/x(4)+2/x(5))*conj(x(4))+(3/x(1)+1/x(2)+5/2/x(3)+1/2/x(4)+1/x(5))*conj(x(5));
end

上述程序保存为m文件;
然后运行下述程序:

x0=[.2,.2,.2,.2,.2];
lb=[0,0,0,0,0];
ub=[1,1,1,1,1];
[x,fval,exitflag,output,lambda]=fmincon('fmin',x0,[],[],[1,1,1,1,1],1,lb,ub)

运行后,结论为

x =

1.0000 0 0.0000 -0.0000 0


fval =

NaN


exitflag =

0


output =

iterations: 83
funcCount: 505
stepsize: 2
algorithm: 'medium-scale: SQP, Quasi-Newton, line-search'
firstorderopt: Inf
cgiterations: []


lambda =

lower: [5x1 double]
upper: [5x1 double]
eqlin: NaN
eqnonlin: [0x1 double]
ineqlin: [0x1 double]
ineqnonlin: [0x1 double]

这个结论明显不对,不知道哪里出问题了,用lingo做的结论如下:

Local optimal solution found at iteration: 41
Objective value: 21.44022


Model Title: mix bottle

Variable Value Reduced Cost
x2 0.1529363 0.000000
x1 0.3844413 0.000000
x3 0.2411757 -0.1613561E-06
x4 0.8655592E-01 0.1089302E-06
x5 0.1348908 0.000000

Row Slack or Surplus Dual Price
1 21.44022 -1.000000
2 0.000000 -0.2149157E-04
3 0.3844413 0.000000
4 0.1529363 0.000000
5 0.2411757 0.000000
6 0.8655592E-01 0.000000
7 0.1348908 0.000000
为正确答案,请高手指出问题所在,及修改后的程序,谢谢!!
wwtianqq 当前离线   回复时引用此帖
 


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

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



所有时间均为北京时间。现在的时间是 12:06


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