RELVE.QP требует, чтобы быть симметричным положительным определенным в R

StackOverflow https://stackoverflow.com/questions/3496882

  •  29-09-2019
  •  | 
  •  

Вопрос

Когда я бегу решить .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 симметрична, но не является положительным определенным. Почему это нужно? Если я решу это сам, используя лагранжевые функции, я могу получить решение. Тогда почему навязывает это требование?

Это было полезно?

Решение

Алгоритм GoldFarb-Idnani начинается путем расчета неограниченного решения. Таким образом, требует, чтобы матрица D в объективной функции положительно определена.

Выдержка из исходного файла Fortran Seal.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 Предоставляет множители Лагранжа в решении для любой проблемы оптимизации.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top