# Addons/math/lbfgs

User Guide | Installation | Development | Categories | Git | Build Log

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