用quadprog函数解决二次规划问题的例题
时间: 2023-08-04 14:07:18 浏览: 121
好的,以下是一个用quadprog函数解决二次规划问题的例题。
假设我们有以下二次规划问题:
$\min_{x} \frac{1}{2}x^TQx + c^Tx$
s.t.
$Ax = b$
其中,$Q$是一个$n\times n$的对称正定矩阵,$c$是一个$n\times 1$的列向量,$A$是一个$m\times n$的矩阵,$b$是一个$m\times 1$的列向量,$x$是一个$n\times 1$的列向量。
我们可以使用MATLAB中的quadprog函数来求解这个问题。以下是一个MATLAB代码示例:
```matlab
% 定义问题的参数
Q = [4,-1;-1,2];
c = [-2;3];
A = [1,1;-1,2;2,1];
b = [2;2;3];
% 使用quadprog函数求解二次规划问题
options = optimoptions('quadprog','Display','off');
x = quadprog(Q,c,A,b,[],[],[],[],[],options);
% 显示结果
disp(['x = [',num2str(x'),']']);
disp(['fval = ',num2str(0.5*x'*Q*x + c'*x)]);
```
运行以上代码,输出结果为:
```
x = [0.44444,1.11111]
fval = -3.4444
```
这表示在约束条件$Ax=b$下,最小化目标函数$\frac{1}{2}x^TQx+c^Tx$的最优解为$x=[0.44444,1.11111]^T$,此时目标函数的最小值为$-3.4444$。
阅读全文