matlab求解非线性规划时结果不符合约束
functionf=fop(x)f=-((300+0.5*x(1))*250+x(2)*50*(x(2)+100)/200+(x(2)^2-10000)+x(2)*300...
function f=fop(x)
f=-((300+0.5*x(1))*250+x(2)*50*(x(2)+100)/200+(x(2)^2-10000)+x(2)*300*(100-x(2))/200-50/200*(10000-x(2)^2)-(x(2)+300+0.5*x(1))*(40+31)-400*x(1)^2+45*(4-0.02*(x(2)+300+0.5*x(1))*(1-x(1))));
function [g,ceq]=mycon(x)
g=[(x(2)+300+0.5*x(1))*(1-x(1))-200];
ceq=[];
x0=[0.2;20];
A=[ ];b=[ ];
Aeq=[ ];beq=[ ];
vlb=[];vub=[ ];
[x,fval,exitflag,output]=fmincon('fop',x0,A,b,Aeq,beq,vlb,vub,'mycon')
新人不太懂,想加一个约束0<x(1)<1怎么加 展开
f=-((300+0.5*x(1))*250+x(2)*50*(x(2)+100)/200+(x(2)^2-10000)+x(2)*300*(100-x(2))/200-50/200*(10000-x(2)^2)-(x(2)+300+0.5*x(1))*(40+31)-400*x(1)^2+45*(4-0.02*(x(2)+300+0.5*x(1))*(1-x(1))));
function [g,ceq]=mycon(x)
g=[(x(2)+300+0.5*x(1))*(1-x(1))-200];
ceq=[];
x0=[0.2;20];
A=[ ];b=[ ];
Aeq=[ ];beq=[ ];
vlb=[];vub=[ ];
[x,fval,exitflag,output]=fmincon('fop',x0,A,b,Aeq,beq,vlb,vub,'mycon')
新人不太懂,想加一个约束0<x(1)<1怎么加 展开
1个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询