matlab 中的fmincon 使用问题,急急急!!!结果运行不出,程序如下!!!!
functionf=lian(x)f=-37.57/((x(1)/19)^1.08*(0.71332+0.0085*x(2)/x(3)-(x(2)/x(3))^2/300...
function f=lian(x)
f=-37.57/((x(1)/19)^1.08*(0.71332+0.0085*x(2)/x(3)-(x(2)/x(3))^2/3000));
>> x0=[15,114,19];A=[-1,0,0;1,0,0;0,-1,6;0,1,-8;0,0,-1;0,0,1];b=[-15;-19;0;0;-19;32];LB=[14,113,18];UB=[19,160,25];
>> [x,fval,exitflag,output]=fmincon(@lian,x0,A,b,[],[],LB,UB) 展开
f=-37.57/((x(1)/19)^1.08*(0.71332+0.0085*x(2)/x(3)-(x(2)/x(3))^2/3000));
>> x0=[15,114,19];A=[-1,0,0;1,0,0;0,-1,6;0,1,-8;0,0,-1;0,0,1];b=[-15;-19;0;0;-19;32];LB=[14,113,18];UB=[19,160,25];
>> [x,fval,exitflag,output]=fmincon(@lian,x0,A,b,[],[],LB,UB) 展开
1个回答
展开全部
你的约束条件:
A=[-1,0,0;1,0,0;0,-1,6;0,1,-8;0,0,-1;0,0,1]
b=[-15;-19;0;0;-19;32]
是不是:
x(1) >= 15 第1列
x(1) <= 19 第2列
x(3) >= 19 第5列
x(3) <= 32 第6列
将其整合到:
LB=[15,113,19];UB=[19,160,32];
此后:
A=[0,-1,6;0,1,-8];
b=[0;0];
........
完整代码(7.1以上版本)
lian = @(x) -37.57./((x(1)/19).^1.08.*(0.71332+0.0085.*x(2)./x(3)-(x(2)./x(3)).^2/3000));
A=[0,-1,6;0,1,-8];
b=[0;0];
LB=[15,113,19];UB=[19,160,32];
x0=[15,114,19]';
[x,fval,exitflag,output]=fmincon(lian,x0,A,b,[],[],LB,UB)
A=[-1,0,0;1,0,0;0,-1,6;0,1,-8;0,0,-1;0,0,1]
b=[-15;-19;0;0;-19;32]
是不是:
x(1) >= 15 第1列
x(1) <= 19 第2列
x(3) >= 19 第5列
x(3) <= 32 第6列
将其整合到:
LB=[15,113,19];UB=[19,160,32];
此后:
A=[0,-1,6;0,1,-8];
b=[0;0];
........
完整代码(7.1以上版本)
lian = @(x) -37.57./((x(1)/19).^1.08.*(0.71332+0.0085.*x(2)./x(3)-(x(2)./x(3)).^2/3000));
A=[0,-1,6;0,1,-8];
b=[0;0];
LB=[15,113,19];UB=[19,160,32];
x0=[15,114,19]';
[x,fval,exitflag,output]=fmincon(lian,x0,A,b,[],[],LB,UB)
追问
麻烦再问一句:
function f=lian(x)
f=-37.57/((x(1)/19)^1.08*(0.71332+0.0085*x(2)/x(3)-(x(2)/x(3))^2/3000));
这么定义目标函数,然后再运行您说的那个约束
提示
??? Input argument "x" is undefined.
Error in ==> lian at 2
f=37.57/((x(1)/19)^1.08*(0.71332+0.0085*x(2)/x(3)-(x(2)/x(3))^2/3000));
您这种方法是不是不用建目标函数的M文件,直接运行啊?
追答
7.1以上版本
直接运行
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询