solve.QP要求D在R中是对称正定

时间:2010-08-16 20:03:21

标签: r minimize solver

当我在我的问题上运行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!

我的西格玛矩阵是对称的,但不是正定的。为什么需要这个?如果我自己使用拉格朗日函数解决它,我就能得到解决方案。那么为什么R强加这个要求呢?

2 个答案:

答案 0 :(得分:4)

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.

答案 1 :(得分:1)

auglag中的函数alabama在解决方案中为任何优化问题提供了拉格朗日乘数。