math/lbfgs
LBFGS is the Limited Memory Broyden-Fletcher-Goldfarb-Shanno (BFGS) method to solve an unconstrained nonlinear optimization problem. Also includes L-BFGS-B for solving large nonlinear optimization problems with simple bounds on the variables.
This script calls LBFGS Subroutine converted from Fortran to C. You can test the subroutine by running:
,.lbfgs_test ''
Notes from the Fortran Subroutine:
LIMITED MEMORY BFGS METHOD FOR LARGE SCALE OPTIMIZATION
JORGE NOCEDAL
*** July 1990 ***
This subroutine solves the unconstrained minimization problem
min F(x), x= (x1,x2,...,xN),
using the limited memory BFGS method. The routine is especially
effective on problems involving a large number of variables. In
a typical iteration of this method an approximation Hk to the
inverse of the Hessian is obtained by applying M BFGS updates to
a diagonal matrix Hk0, using information from the previous M steps.
The user specifies the number M, which determines the amount of
storage required by the routine. The user may also provide the
diagonal matrices Hk0 if not satisfied with the default choice.
The algorithm is described in "On the limited memory BFGS method
for large scale optimization", by D. Liu and J. Nocedal,
Mathematical Programming B 45 (1989) 503-528.There is also the script lbfgsb.ijs. It can be tested by running:
,.lbfgsb_test ''
L-BFGS-B is a code for solving large nonlinear optimization problems with simple bounds on the variables. The code can also be used for unconstrained problems and is as efficient for these problems as the earlier limited memory code L-BFGS.
The addon was contributed by David Mitchell.

