Matlab 二次规划模型求解案例

二次规划:

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

二次规划标准模型:

\[min\quad f=\frac{1}{2}X^THX+C^TX \]

\[s.t.\begin{cases} \quad AX\leq b\\ Aeq\cdot X=beq\\ L\leq X\leq U\\ \end{cases} \]

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

例:

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

\[s.t.\quad\begin{cases} x_1+x_2=2\\ x_1-2x_2\geq-2\\ 2x_1+x_2\leq3\\ x_1\geq0\\ x_2\geq0 \end{cases} \]

标准模型中:

\[H=\left[ \begin{array}{c} 2&-2\\ -2&4\\ \end{array} \right] \quad\quad c=[-4\quad -12] \]

\[A=\left[\begin{array}{c} -1&2\\ 2&1\\ \end{array}\right] \quad b=\left[\begin{array}{c} 2\\ 3\\ \end{array}\right] \quad Aeq=[1\quad 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

>>