用Octave计算二次规划问题
\(\frac{1}{2} x'×H×x + x'×q\)
\(
s.t.
\begin{cases}
A×x = b \\
lb ≤ x ≤ ub
\end{cases}
\)
广告
{{v.name}}
例子:
\(
\min \quad \frac{1}{2} \begin{bmatrix}x_1 \\ x_2\end{bmatrix}'×
\begin{bmatrix}
100 & 20 \\
30 & 400
\end{bmatrix}
×\begin{bmatrix}x_1\\x_2\end{bmatrix} + \begin{bmatrix}x_1 \\ x_2\end{bmatrix}'×
\begin{bmatrix}
5 \\
6
\end{bmatrix}
\)
\(
s.t.
\begin{cases}
\begin{bmatrix}
7 & 8
\end{bmatrix}
x = 9\\
x \ge
\begin{bmatrix}
0\\
0
\end{bmatrix}
\end{cases}
\)
设\(x_0=\begin{bmatrix}0\\0\end{bmatrix}\),代码如下:
>> x0 = [0; 0];
定义Hessian矩阵 H,代码如下:
>> H = [100 20;
30 400];
定义线性项向量 q,代码如下:
>> q = [5; 6];
定义约束系数矩阵 A,代码如下:
>> A = [7 8];
定义约束右端项 b,代码如下:
>> b = 9;
定义变量下界,代码如下:
>> lb = [0; 0];
变量无上界,代码如下:
>> ub = [];
求解,代码如下:
>> [x, obj, info, lambda] = qp (x0, H, q, A, b, lb, ub)
x =
1.0093
0.2419
obj = 75.234
info =
scalar structure containing the fields:
solveiter = 2
info = 0
lambda =
15.9968
0
0