A=[1 0 -15 0;0 1 0 -70];
b=[0;0];
vlb=[800;800;30;30];
x0=[0;0;0;0];
[x,fval,exitflag,output,lambda,grad,hession]=fmincon('funn',x0,A,b,[],[],vlb,'nonlin')
function y=funn(x)
y=x(1)*x(2)+x(3)*x(4)
function y=nonlin(x)提交问题
y=-0.01*x(2)*x(4)=-220
y=-x(2)*(x(1)*x(3)+x(2)*x(4)/6+(1+(20-2*x(1)*x(3))/(20+x(2)*x(4))))=-90000
老是没法运行啊 求大神帮帮忙啊
错误很多:
1、按照函数fmincon的参数顺序,在非线性约束之前,还应该有变量上限,即
[x,fval,exitflag,output,lambda,grad,hession]=fmincon('funn',x0,A,b,[],[],vlb,[],'nonlin')2、非线性等式约束只需要写成方程左侧就可以了:
y=-0.01*x(2)*x(4)+220你原来的写法有两个等号,语法上就是错误的。
3、非线性约束函数的格式要求必须返回两个参数,即不等式和等式,如果没有不等式约束,可返回空:
function [c,y]=nonlin(x)http://zhidao.baidu.com/question/367495842611309044.html 这是我修改好地址,您帮我看看吧
非线性约束条件那换成不等式了
那个问题我可以看看。
不过,如果这个问题的回答对你有帮助,希望能采纳。