当我对我的问题运行 solve.QP 时,我从 R 收到以下错误:
Error in solve.QP(sigma, rep(0, 5), t(Amat), bvec, meq = 2) :
matrix D in quadratic function is not positive definite!
我的 sigma 矩阵是对称的,但不是正定的。为什么需要这个?如果我自己使用拉格朗日函数解决它,我就能得到解决方案。那么为什么 R 会提出这个要求呢?
Goldfarb-Idnani 算法从计算无约束解开始。因此,它要求目标函数中的矩阵 D 是正定的。
摘自 Fortran 源文件solve.QP.f:
c this routine uses the Goldfarb/Idnani algorithm to solve the
c following minimization problem:
c
c minimize -d^T x + 1/2 * x^T D x
c where A1^T x = b1
c A2^T x >= b2
c
c the matrix D is assumed to be positive definite. Especially,
c w.l.o.g. D is assumed to be symmetric.
auglag
包中的函数alabama
为任何优化问题的解决方案提供拉格朗日乘数。