KrisLibrary
1.0.0
|
Maintains the Cholesky decomposition of the hessian H over Quasi-Newton steps. More...
#include <QuasiNewton.h>
Public Member Functions | |
void | SetHessian (const Matrix &H) |
set the initial hessian matrix | |
void | GetHessian (Matrix &H) const |
form the hessian matrix | |
void | BackSub (const Vector &b, Vector &x) const |
solve x=H^-1*b | |
bool | IsValidUpdate (const Vector &s, const Vector &q) |
bool | UpdateBFGS (const Vector &s, const Vector &q) |
bool | UpdateDFS (const Vector &s, const Vector &q) |
bool | IsPositiveDefinite (Real tol=0) const |
void | MakePositiveDefinite (Real resetValue=1) |
Public Attributes | |
LDLDecomposition< Real > | ldl |
int | verbose |
Real | tolerance |
Vector | temp |
Vector | Hs |
Vector | upd |
Matrix | tempLDL |
Maintains the Cholesky decomposition of the hessian H over Quasi-Newton steps.
BFGS sets H' = H + q*qt / qt*s - Ht*s*st*H/st*H*s DFS sets H' = H + s*st / st*q - Ht*q*qt*H/qt*H*q where s = x - x0 q = grad - grad0
BFGS is usually considered more stable than the latter.