RELVE.QP требует, чтобы быть симметричным положительным определенным в R
Вопрос
Когда я бегу решить .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
Предоставляет множители Лагранжа в решении для любой проблемы оптимизации.
Не связан с StackOverflow