Difference between revisions of "Lbfgs.m"

From Spinach Documentation Wiki
Jump to: navigation, search
m (Spot-edit Spinach function page first-line NOTOC and template fields)
m (Rename Arguments section heading to Parameters)
Line 6: Line 6:
 
     direction=lbfgs(dx_hist,dg_hist,g)
 
     direction=lbfgs(dx_hist,dg_hist,g)
  
==Arguments==
+
==Parameters==
 
              
 
              
 
     dx_hist        - history of x increments, a stack  
 
     dx_hist        - history of x increments, a stack  

Revision as of 18:50, 5 June 2026

Calculates an approximation to the Newton-Raphson search direction using past gradients to build a serviceable substitute to a Hessian. The Hessian matrix is never explicitly formed or inverted. This function is the implementation from section 4 of http://dx.doi.org/10.1090/S0025-5718-1980-0572855-7

Syntax

    direction=lbfgs(dx_hist,dg_hist,g)

Parameters

   dx_hist         - history of x increments, a stack 
                     of column vectors, from the latest
                     to the earliest

   dg_hist         - history of gradient increments,
                     a stack of column vectors, from 
                     the latest to the earliest

   g               - current gradient

Output

   direction       - LBFGS approximation to the 
                     search direction

Notes

The L-BFGS algorithm is the default of Fmaxnewton.m, and is a good mix of computational efficiency and fast convergence.

See also

fmaxnewton.m, hessreg.m, bracketing.m, sectioning.m

Version 2.2, authors: Ilya Kuprov, David Goodwin