如何用matlab求解非线性最优化

2025-01-31 07:10:08
推荐回答(1个)
回答1:

数学模型:min z=f(x)
s.t. Ax语法:[x,fval]=linprog(f,A,b,Aeq,beq,lb,ub)
例:min f(x)=-5x(1)-4x(2)-6x(3)
s.t. x(1)-x(2)+x(3)≤20
3x(1)+2x(2)+4x(3)≤42
3x(1)+2x(2)≤30
x(1),x(2),x(3)≥0
f=[-5 -4 -6]
A=[1 -1 1;3 2 4;3 2 0]
b=[20;42;30]
lb=zeros(3,1)
[x,fval]=linprog(f,A,b,[],[],lb,[])
x =
0.0000 x(1)
15.0000 x(2)
3.0000 x(3)
fval =
-78.0000 目标值