给定此目标函数:
最小化:
f = (Ax + By)' * G * (Ax + By)
受到一些平等和不平等的影响。
, x
和 y
分别是带有p
和q
元素的实价向量(决策变量)。尺寸m * p
的A
,大小m * q
的B
,G是大小m * m
的对称矩阵。
我的问题是如何以v' * G * v
的形式编写f
,以便在Quadprog中很容易使用。换句话说,如何混合A,B和G?
这看起来未完全指定!
无论出于何种原因,您似乎都想用两个变量组件来建模。现在您没有指定他们如何相互作用。
大多数优化器在单个变量矢量上都可以使用,您需要使自己的辅助。
由于您没有显示G
,我假设您为x
和y
的G
,我们称其为H
。
(备注:不是Matlab用户;不要以示例为syntax,理所当然!)
-
z = [x y]
-
P = blkdiag(G,H)
- 假设x和y独立于二次学期
- 例如。没有
x0*y1
像术语
- 解决:对于
z` P z
示例:
x = [x0 x1 x2]
y = [y0 y1]
G = [6 2 1; 2 5 2; 1 2 4]
H = [8 2; 2 10]
# G
6 2 1
2 5 2
1 2 4
# H
8 2
2 8
z = [x0 x1 x2 y0 y1]
P = [6 2 1 0 0; 2 5 2 0 0; 1 2 4 0 0; 0 0 0 8 2; 0 0 0 2 8]
# P
6 2 1 0 0
2 5 2 0 0
1 2 4 0 0
0 0 0 8 2
0 0 0 2 8