|
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 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 |
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.