/ / solve.QP wymaga, aby D było symetrycznie dodatnie określone w R - r, minimize, solver

solve.QP wymaga, aby D było symetrycznie dodatnie określone w R - r, minimize, solver

Po uruchomieniu solve.QP w moim problem, pojawia się następujący błąd z R:

Error in solve.QP(sigma, rep(0, 5), t(Amat), bvec, meq = 2) :
matrix D in quadratic function is not positive definite!

Moja macierz sigma jest symetryczna, ale nie jest określona pozytywnie. Dlaczego jest to potrzebne? Jeśli sam go rozwiążę używając funkcji Lagrange'a, jestem w stanie uzyskać rozwiązanie. Dlaczego więc R nakłada to wymaganie?

Odpowiedzi:

4 dla odpowiedzi № 1

Algorytm Goldfarb-Idnani rozpoczyna się od obliczenia nieskrępowane rozwiązanie. Tak więc wymaga to macierzy D w funkcja celu jest dodatnia, określona.

Fragment pliku źródłowego Fortranu rozwiązuje.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 dla odpowiedzi nr 2

Funkcja auglag w opakowaniu alabama dostarcza mnożniki lagrange w rozwiązaniu dla każdego problemu optymalizacyjnego.