求助一个用Matlab求解非线性规划的问题,不胜感激!

2024-11-14 11:35:10
推荐回答(1个)
回答1:

1. 把[x,fval]=fmincon('fun',x0,A,b,Aeq,beq,VLB,VUB,'mycon')
改为
[x,fval]=fmincon('fun',x0,A,b,Aeq,beq,VLB,VUB)

我不是太清楚你为什么要加mycon没用吧。
2. 目标函数加负号(因为fmincon是求最小值)
function f=fun(x)
f=-(3.4854*x(1)+6.2879*x(3)+5.6932*x(4))/(3.4854*x(1)-4.952*x(2)+6.2879*x(3)+5.6932*x(4)-2.4846*x(5));

3. 命令行
x0=[1;0;0;0;0];
A=[];b=[];
Aeq=[1 1 1 1 1];beq=[1];
VLB=[0 0 0 0 0];
VUB=[1 1 1 1 1];
[x,fval]=fmincon('fun',x0,A,b,Aeq,beq,VLB,VUB);
xmin=x
fmin=-fval