suanPan
|
The LBFGS class defines a solver using LBFGS iteration method. More...
#include <LBFGS.hpp>
Public Member Functions | |
LBFGS (const unsigned MH=10, const unsigned MI=500, const double AT=1E-12, const double RT=1E-12) | |
template<Differentiable F> | |
int | optimize (F &func, vec &x) |
The LBFGS class defines a solver using LBFGS iteration method.
The LBFGS method is a rank two quasi–Newton method which has a super linear convergence rate. The LBFGS class supports both conventional BFGS and LBFGS method which uses limited history information.
\begin{gather} K_{n+1}^{-1}=\left(I-\dfrac{\Delta{}UR^T}{R^T\Delta{}U}\right)K_n^{-1}\left(I-\dfrac{R\Delta{}U^T}{R^T\Delta{}U}\right)+\dfrac{\Delta{}U\Delta{}U^T}{R^T\Delta{}U}. \end{gather}
The \(I\) is identity matrix. The \(\Delta{}U\) is current displacement increment. The \(R\) is current residual. For brevity, in both terms, the subscript \(n\) representing current step is dropped.
|
inlineexplicit |
|
inline |