matlab 带约束的 求目标函数的最大值怎么做???

2024-12-29 17:26:10
推荐回答(2个)
回答1:

点函数,点MAX

回答2:

线性规划
标准模型:
min z=f*X
AX<=b
s.t (方程组){ AeqX=beq
lb<=X<=ub
[X,fval]=linprog(f,A,b,Aeq,beq,lb,ub,X0,poti)
X0为初始点(可省略),poti为控制参数,用于控制精度,输出形式,算法选择,迭代次数等(可省略)。
例如:min z=-5x1-4x2-6x3
x1-x2+x3<=20
3x1+2x2+4x3<=42
s.t.{ 3x1+2x2<=30
xi>=0,i=1,2,3
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)得答案
大规模二次规划:
min z=1/2X'Hx+f*X
AX<=b
s.t.{AeqX<=beq
lb<=X<=ub
[X,fval]=quadprog(H,f,A,b,Aeq,beq,lb,ub,X0,opti)
想求最大值加个负号就行。
另外也可把最值点求出来一个个试。