BRENT, a FORTRAN77 library which contains algorithms for finding zeros or minima of a scalar function of a scalar variable, by Richard Brent.
The methods do not require the use of derivatives, and do not assume that the function is differentiable.
The computer code and data files described and made available on this web page are distributed under the GNU LGPL license.
BRENT is available in a C version and a C++ version and a FORTRAN77 version and a FORTRAN90 version and a MATLAB version.
ASA047, a FORTRAN77 library which minimizes a scalar function of several variables using the Nelder-Mead algorithm.
BISECTION_RC, a FORTRAN77 library which seeks a solution to the equation F(X)=0 using bisection within a user-supplied change of sign interval [A,B]. The procedure is written using reverse communication.
COMPASS_SEARCH, a FORTRAN90 library which seeks the minimizer of a scalar function of several variables using compass search, a direct search algorithm that does not use derivatives.
GSL , a C++ library which includes rootfinding routines.
LAWSON, a FORTRAN77 library which contains routines for solving least squares problems and singular value decompositions, by Lawson and Hanson.
NELDER_MEAD, a MATLAB program which minimizes a scalar function of several variables using the Nelder-Mead algorithm.
NMS, a FORTRAN90 library which includes versions of Brent's minimizer and zero finder.
PRAXIS, a FORTRAN77 library which minimizes a scalar function of several variables.
SLATEC, a FORTRAN90 library which includes the zero finder FZERO.
TEST_OPT, a FORTRAN90 library which defines test problems requiring the minimization of a scalar function of several variables.
TEST_ZERO, a FORTRAN90 library which defines some test functions for which zeroes can be sought.
TOMS178, a FORTRAN77 library which optimizes a scalar functional of multiple variables using the Hooke-Jeeves method.
ZOOMIN, a FORTRAN90 library which includes various zero finder routines.
Original FORTRAN77 version by Richard Brent; this FORTRAN77 version by John Burkardt.