1

我想知道 R 'Quadprog' 包是否能够合并以下形式的框约束:-L*1 <= v <= L*1

其中 1 是 1 的向量,L 是常数。要优化的变量是 v。基本上 v 的所有单个元素都必须在 –lambda 和 lambda 之间。

如果没有,是否有其他软件包可以解决此问题?

非常感谢您的帮助

4

1 回答 1

1

是的你可以。

给定功能:

solve.QP(Dmat=Dmat,dvec=dvec,Amat=Amat,bvec=bvec,meq=0)

Amatbvec手段Amat * v >= bvec

所以这样设置:

Amat <- cbind(diag(length(v)), -diag(length(v))) 
bvec <- c(rep(-L, length(v)), rep(-L, length(v)))

对 的每个单独元素表示v > -L-v > -L(与 相同) 。v < Lv

Notemeq的意思是“等式的数量”,因为在你的情况下都是不等式,所以它必须放在0.

如果您需要放置等式约束,请将其放在 and 的“左侧”Amat以及中的等式bvec数量meq

于 2016-02-12T17:42:39.590 回答