Difference between revisions of "Lbfgs.m"
From Spinach Documentation Wiki
(Created basic page for the lbfgs.m function) |
m (→See also) |
||
Line 31: | Line 31: | ||
− | ''Revision | + | ''Revision 3374, authors: [[Ilya Kuprov]] [[David Goodwin]]'' |
Revision as of 16:31, 27 August 2016
This function calculates the quasi-Newton update with the gradient history, giving the search direction. Based on the BFGS algorithm, this limited-memory BFGS (L-BFGS) algorithm stores only few vectors that implicitly represent the approximation of the BFGS algorithm (which stores a matrix equal to the number of optimisation variables)
Syntax
direction=lbfgs(x_hist,df_hist,grad,N)
Description
This function is the implementation from section 4 of http://dx.doi.org/10.1090/S0025-5718-1980-0572855-7
Arguments
x_hist - vector array of waveform history, num_var x size_store df_hist - vector array of gradient history, num_var x size_store grad - vector of the current gradient, (num_vars x 1) N - number of waveform/gradient vectors to store (default=20)
Returns
direction - the vector giving the BFGS approximation to the search direction
Notes
The L-BFGS algorithm is the default of fminnewton.m, and should be considered a good mix of computational efficiency and fast convergence.
See also
quasinewton.m, fminnewton.m, optim_tols.m
Revision 3374, authors: Ilya Kuprov David Goodwin