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

目标函数myfun

function f=myfun(x)
f=0.00004717/(x(1)*x(2)+x(1)*x(3)+x(3))+0.059825+0.00595/(x(1)*x(5)+x(1)*2*sqrt(x(4)^2+(x(2)/2-x(5)/2)^2));

mycon1函数

function [c,ceq] = mycon1(x)
c(1) = -x(2)+ x(5);
ceq(1) = x(1)*x(2)+x(1)*x(3)+x(3)-0.006;


主程序代码

lbM=[10 5e-5 5e-6 5e-5 0];
ubM=[300 1e-3 1e-3 1e-3 1e-3];
options = optimset('GradConstr', 'on');
x0=[10 5e-4 8e-4 5e-4 5e-4];
%x = fmincon(fun,x0,A,b,Aeq,beq,lb,ub,nonlcon,options)
[x,fval] = fmincon('myfun2',x0,[],[],[],[],lbM,ubM,mycon1,options);

运行后出现如下问题:
??? Input argument "x" is undefined.

Error in ==> mycon1 at 2
c(1) = -x(2)+ x(5);

请教高手帮忙解决。
上传的图像
文件类型: jpg 2222.jpg (13.8 KB, 6 次查看)

此帖于 2009-04-14 20:03 被 china_ie 编辑。
china_ie 当前离线   回复时引用此帖
旧 2009-04-14, 20:40   #2
chaoren
初级会员
 
注册日期: 2009-04-13
住址: 华中科技大学
年龄: 37
帖子: 5
声望力: 0
chaoren 正向着好的方向发展
默认 回复: 请教fmincon应用问题

你把fmincon的那一句改成
y=fmincon(@myfun,x0,[],[],[],[],lbM,ubM,mycon1,options);
试一下
chaoren 当前离线   回复时引用此帖
旧 2009-04-15, 08:50   #3
china_ie
初级会员
 
注册日期: 2009-04-14
年龄: 43
帖子: 3
声望力: 0
china_ie 正向着好的方向发展
默认 回复: 请教fmincon应用问题

出现的错误还是一样的。
china_ie 当前离线   回复时引用此帖
旧 2009-04-15, 10:08   #4
524xu
初级会员
 
注册日期: 2009-02-20
年龄: 37
帖子: 4
声望力: 0
524xu 正向着好的方向发展
默认 回复: 请教fmincon应用问题

把options = optimset('GradConstr', 'on');
改为options = optimset('largescale', 'off');%采用标准算法
以及[x,fval] = fmincon('myfun2',x0,[],[],[],[],lbM,ubM,mycon1,options)改为
[x,fval] = fmincon('myfun',x0,[],[],[],[],lbM,ubM,'mycon1',options);
就可以运行了,我是在书上看的
524xu 当前离线   回复时引用此帖
旧 2010-08-20, 16:15   #5
fengd
初级会员
 
注册日期: 2010-08-20
年龄: 37
帖子: 4
声望力: 0
fengd 正向着好的方向发展
默认 回复: 请教fmincon应用问题

你把fmincon的那一句改成
y=fmincon(@myfun,x0,[],[],[],[],lbM,ubM,@mycon1);
试一下
fengd 当前离线   回复时引用此帖
回复

主题工具
显示模式

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

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



所有时间均为北京时间。现在的时间是 19:40


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