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
>>