Matlab 二次规划模型求解案例

二次规划:

目标函数是决策变量的二次函数,约束条件是线性函数。

二次规划标准模型:

[minquad f=frac{1}{2}X^THX+C^TX ]

[s.t.egin{cases} quad AXleq b\ Aeqcdot X=beq\ Lleq Xleq U\ end{cases} ]

quadprog 调用格式:
[x,favl]=quadprog(H,c,A,b,Aeq,beq,L,U,x0)

例:

[minquad f(x_1,x_2)=x_1^2-2x_1x_2+2x_2^2-4x_1-12x_2 ]

[s.t.quadegin{cases} x_1+x_2=2\ x_1-2x_2geq-2\ 2x_1+x_2leq3\ x_1geq0\ x_2geq0 end{cases} ]

标准模型中:

[H=left[ egin{array}{c} 2&-2\ -2&4\ end{array} ight] quadquad c=[-4quad -12] ]

[A=left[egin{array}{c} -1&2\ 2&1\ end{array} ight] quad b=left[egin{array}{c} 2\ 3\ end{array} ight] quad Aeq=[1quad 1]quad beq=2 ]

Matlab 程序:
H=[2 -2; -2 4];
c=[-4 -12];
A=[-1 2;2 1];
b=[2 3]';
Aeq=[1 1];
beq=2;
L=[0 0];
U=[];
[x,favl]=quadprog(H,c,A,b,Aeq,beq,L,U)
计算结果:
x =

    0.6667
    1.3333


favl =

  -16.4444

>> 
原文地址:https://www.cnblogs.com/Noturns/p/13345434.html