鉴于此目标函数:
最小化:
f = (Ax + By)' * G * (Ax + By)
受到一些平等和不平等的影响。
其中x
和y
分别是p
和q
元素的实值向量(决策变量)。 A
大小为m * p
,B
,大小为m * q
,G为大小为m * m
的对称矩阵。
我的问题是如何以f
的形式编写v' * G * v
,以便可以在quadprog中轻松使用它。换句话说,如何混合A,B和G?
答案 0 :(得分:0)
这看起来不完整!
无论出于何种原因,您似乎想要根据两个变量组件进行建模。现在你没有说明它们如何相互作用。
由于大多数优化器都在单个变量向量上工作,因此需要连接自己的。
由于您没有显示G
,我假设您G
有x
而y
有H
,我们称之为z = [x y]
。
(注:不是matlab用户;不要将示例语法视为理所当然!)
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
示例:
files_list = list.files("/home", pattern = "*txt", full.names=T, recursive=FALSE)
for (i in seq_along(files_list)) {
do something etc
}