我想知道R'Quadprog'软件包是否能够合并以下形式的框约束:-L * 1< = v< = L * 1
其中1是1的向量,L是常数。要优化的变量是v。基本上,v的所有单个元素必须在-lambda和lambda之间限制。
如果没有,是否有其他软件包可以解决这个问题?
非常感谢你的帮助
答案 0 :(得分:1)
是的,你可以。
鉴于功能:
solve.QP(Dmat=Dmat,dvec=dvec,Amat=Amat,bvec=bvec,meq=0)
Amat
和bvec
表示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 < L
(与v
相同)。
注意meq
表示&#34;等号的数量&#34;,因为在您的情况下,所有都是不等式,必须将它放到0
。
如果您需要设置等值约束,请将其放入&#34; left&#34; Amat
和bvec
的一面以及meq
中的平等数量。