suanPan
|
The (L-)BFGS class defines a solver using BFGS iteration method. More...
#include <BFGS.h>
Public Member Functions | |
BFGS (unsigned=0, unsigned=30) | |
int | analyze () override |
void | print () override |
Public Member Functions inherited from Solver | |
Solver (unsigned=0) | |
Solver (const Solver &)=default | |
Solver (Solver &&)=default | |
Solver & | operator= (const Solver &)=delete |
Solver & | operator= (Solver &&)=delete |
~Solver () override=default | |
virtual int | initialize () |
virtual int | analyze ()=0 |
virtual void | set_step_size (double) |
void | set_step_amplifier (double) |
double | get_step_amplifier () const |
void | set_converger (const shared_ptr< Converger > &) |
const shared_ptr< Converger > & | get_converger () const |
void | set_integrator (const shared_ptr< Integrator > &) |
const shared_ptr< Integrator > & | get_integrator () const |
bool | constant_matrix () const |
Public Member Functions inherited from Tag | |
Tag (unsigned=0) | |
Tag (const Tag &)=default | |
Tag (Tag &&)=default | |
Tag & | operator= (const Tag &)=delete |
Tag & | operator= (Tag &&)=delete |
virtual | ~Tag ()=default |
void | set_tag (unsigned) const |
unsigned | get_tag () const |
void | enable () |
void | disable () |
void | guard () |
void | unguard () |
bool | is_active () const |
bool | is_guarded () const |
virtual void | print () |
The (L-)BFGS class defines a solver using BFGS iteration method.
The BFGS method is a rank two quasi–Newton method which has a super linear convergence rate. The (L-)BFGS class supports both conventional BFGS and L-BFGS 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.
|
explicit |
|
overridevirtual |
|
overridevirtual |
Reimplemented from Tag.