Labfans是一个针对大学生、工程师和科研工作者的技术社区。 论坛首页 | 联系我们(Contact Us)
MATLAB爱好者论坛-LabFans.com
返回   MATLAB爱好者论坛-LabFans.com > 工程数学软件 > MATLAB论坛
MATLAB论坛 一切MATLAB相关问题在此讨论。
 
 
主题工具 显示模式
旧 2009-05-25, 09:02   #1
3050312039
初级会员
 
注册日期: 2008-06-05
年龄: 37
帖子: 4
声望力: 0
3050312039 正向着好的方向发展
默认 麻烦哪位高人帮忙看看这个程序到底哪里出错了?很急

首先编制目标函数的M文件myfun.m:
function f=myfun(x)
f=(pi/16)*x(1) ^2* x (3) ^2*x (2) * (4 + (4. 64 - 2) ^2*3);
再编写非线性约束函数的M文件mycon.m:
function [c,ceq]=mycon(x)
g(1)= 17-x(1);
g(2)=2-x(3);
g(3)=10-x(2);
g(4)=5*x(3)-x(2);
g(5)=x(2)-17* x (3);
g(6)=-(4.64/2)*sin(pi/3)*x(1)+((4.64-2)/2)* x (1)+2;
g(7)=750937.3/( x(1)*x(3)*x(2) ^(1/2))-550;
g(8)=6328732/( x(1)*x(2)*x(3) ^2)-335;
c=[g(1);g(2);g(3);g(4);g(5);g(6);g(7);g(8)];
ceq=[ ];
在MATLAB命令窗口调用优化程序:
options=optimset(‘largescale’,‘off’);
x0=[22 52 5];
[x,fval]=fmincon(@myfun,x0,[ ],[ ],[ ],[ ],[ ],[ ],@mycon,options);
(理论上可以得到优化的结果:
x = 17. 0000 67. 6649 4. 0526
fval = 1. 1312e + 006
但是 我得不到。。。
谢谢啦谢谢啦
3050312039 当前离线   回复时引用此帖
 


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

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



所有时间均为北京时间。现在的时间是 03:37


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