我运行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。
展开
 我来答
tianxiawulang
2015-02-09 · TA获得超过2.7万个赞
知道大有可为答主
回答量:4732
采纳率:89%
帮助的人:2674万
展开全部

代码太乱了:

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
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式