给定这个目标函数:
最小化:
f = (Ax + By)' * G * (Ax + By)
受到一些平等和不平等的影响。
其中x
和分别是具有和元素y
的实值向量(决策变量) 。的大小,大小,G 是大小的对称矩阵。p
q
A
m * p
B
m * q
m * m
我的问题是如何以f
表格形式编写v' * G * v
,以便可以轻松地在 quadprog 中使用。换句话说,如何混合 A、B 和 G?
给定这个目标函数:
最小化:
f = (Ax + By)' * G * (Ax + By)
受到一些平等和不平等的影响。
其中x
和分别是具有和元素y
的实值向量(决策变量) 。的大小,大小,G 是大小的对称矩阵。p
q
A
m * p
B
m * q
m * m
我的问题是如何以f
表格形式编写v' * G * v
,以便可以轻松地在 quadprog 中使用。换句话说,如何混合 A、B 和 G?
这看起来没有完全指定!
无论出于何种原因,您似乎都想根据两个变量组件进行建模。现在您没有指定它们如何相互作用。
由于大多数优化器都在单个变量向量上工作,因此您需要连接您的变量向量。
正如你没有展示的那样G
,我假设你有一个G
forx
和一个 for y
,让我们称之为H
。
(备注:不是 matlab 用户;不要认为 example-syntax 是理所当然的!)
z = [x y]
P = blkdiag(G,H)
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