我运行fmincon时出现 Attempt to execute SCRIPT fmincon as a function: D:\Matlab2010\bin\fmincon.m 30
主函数fuctionf=fun23(x)f=pi/4*x(1)^3*x(2)^3*x(3)约束function[c,ceq]=mycon23(x)c=[=[-x(1)+2...
主函数fuction f=fun23(x)
f=pi/4*x(1)^3*x(2)^3*x(3)
约束
function[c,ceq]=mycon23(x)
c=[=[-x(1)+2;
-3+x(1);
5-x(2);
x(2)-9;
0.8-x(3);
1.2-x(3);
943.67-(x(1)*x(2))^3*x(3);
156.58-x(1)^3*x(2)^2*x(3);]
ceq=[];
x0=[2;8;0.8];
options=optimset('LargeScale','off');
[x,fval]=fmincon('fun23',x0,[],[],[],[],[],[],'mycon',options);
%%%%%%%%%%%%%%它的表示符号都是固定的,例如A,b,Aeq,beq,lb,ub。 展开
f=pi/4*x(1)^3*x(2)^3*x(3)
约束
function[c,ceq]=mycon23(x)
c=[=[-x(1)+2;
-3+x(1);
5-x(2);
x(2)-9;
0.8-x(3);
1.2-x(3);
943.67-(x(1)*x(2))^3*x(3);
156.58-x(1)^3*x(2)^2*x(3);]
ceq=[];
x0=[2;8;0.8];
options=optimset('LargeScale','off');
[x,fval]=fmincon('fun23',x0,[],[],[],[],[],[],'mycon',options);
%%%%%%%%%%%%%%它的表示符号都是固定的,例如A,b,Aeq,beq,lb,ub。 展开
1个回答
展开全部
代码太乱了:
1、主程序应该是最后面从x0开始的那3行,fun23只是目标函数;
2、目标函数的function关键字错误;
3、约束条件里面第一行给c赋值语句错误;
4、调用fmincon的约束条件函数名与所给的不符;
5、从报错信息看,题主很可能把主程序保存成fmincon.m了,这样会导致最优化工具箱中的fmincon被遮挡而无法调用。应该改为其它文件名(注意不要直接另存,那样的话,本不该有的fmincon.m文件仍会存在)。
参考代码(保存到一个文件即可):
function zd1668940287029219067
x0=[2;8;0.8];
options=optimset('LargeScale','off');
[x,fval]=fmincon(@fun23,x0,[],[],[],[],[],[],@mycon23,options)
function f=fun23(x)
f=pi/4*x(1)^3*x(2)^3*x(3);
function[c,ceq]=mycon23(x)
c=[-x(1)+2;
-3+x(1);
5-x(2);
x(2)-9;
0.8-x(3);
1.2-x(3);
943.67-(x(1)*x(2))^3*x(3);
156.58-x(1)^3*x(2)^2*x(3)];
ceq=[];
程序运行结果:
Optimization terminated: first-order optimality measure less
than options.TolFun and maximum constraint violation is less
than options.TolCon.
Active inequalities (to within options.TolCon = 1e-006):
lower upper ineqlin ineqnonlin
1
3
6
x =
2.0000
5.0000
1.2000
fval =
942.4778
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询