fsolve function, with trust region extensions. The GSL implements BFGS as gsl_multimin_fdfminimizer_vector_bfgs2. In R, the BFGS algorithm (and the L-BFGS-B version that allows box constraints) is implemented as an option of the base function optim(). In SciPy, the scipy.optimize.fmin_bfgs function implements BFGS. It is also possible to run BFGS using any of the L-BFGS algorithms by setting the parameter L to a very large number. In Julia, the Optim.jl package implements BFGS and L-BFGS as a solver option to the optimize() function (among other options). Notable proprietary implementations include: The large scale nonlinear optimization software Artelys Knitro implements, among others, both BFGS and L-BFGS algorithms. In the MATLAB Optimization Toolbox, the fminunc function uses BFGS with cubic line search when the problem size is set to "medium scale." Mathematica includes BFGS. See also BHHH algorithm Davidon–Fletcher–Powell formula Gradient descent L-BFGS Levenberg–Marquardt algorithm Nelder–Mead method Pattern search (optimization) Quasi-Newton methods Symmetric rank-one References Further reading Optimization algorithms and methods