MINPACK
Least Squares Minimization
MINPACK
is a FORTRAN77 library which
solves systems of nonlinear equations, or carries out the
least squares minimization of the residual of a set of linear or nonlinear equations.
MINPACK includes software for solving nonlinear equations and
nonlinear least squares problems. Five algorithmic paths each include
a core subroutine and an easy-to-use driver. The algorithms proceed
either from an analytic specification of the Jacobian matrix or
directly from the problem functions. The paths include facilities for
systems of equations with a banded Jacobian matrix, for least squares
problems with a large amount of data, and for checking the consistency
of the Jacobian matrix with the functions.
Given a set of N nonlinear equations in N unknowns, F(X) = 0,
Powell's method is used to seek a solution X.
Given a set of M nonlinear functions in N unknowns, F(X),
the Levenberg-Marquardt method is used to seek an X which minimizes
the L2 norm of the residual ||F(X)||.
The user supplies a subroutine to evaluate the nonlinear function;
the jacobian matrix dFi(X)/dXj may also be supplied by the user
in a subroutine, or approximated by finite differences.
Languages:
MINPACK is available in
a C++ version and
a FORTRAN77 version and
a FORTRAN90 version.
Related Data and Programs:
BVLS,
a FORTRAN90 library which
applies least squares methods to solve a linear system for which
lower and upper constraints may have been placed on every variable.
DQED,
a FORTRAN77 library which
solves constrained least squares problems.
NL2SOL,
a FORTRAN77 library which
implements an adaptive nonlinear least-squares algorithm.
PRAXIS,
a FORTRAN77 library which
minimizes a scalar function of several variables.
SLATEC,
a FORTRAN90 library which
includes MINPACK.
TEST_OPT,
a FORTRAN90 library which
defines test problems for the minimization of a scalar function
of several variables.
TOMS611,
a FORTRAN77 library which
seeks the minimizer of a scalar functional of multiple variables.
Reference:
-
Jorge More, Burton Garbow, Kenneth Hillstrom,
User Guide for MINPACK-1,
Technical Report ANL-80-74,
Argonne National Laboratory, 1980.
-
Jorge More, Danny Sorenson, Burton Garbow, Kenneth Hillstrom,
The MINPACK Project,
in Sources and Development of Mathematical Software,
edited by Wayne Cowell,
Prentice-Hall, 1984,
ISBN: 0-13-823501-5,
LC: QA76.95.S68.
Source Code:
Examples and Tests:
List of Routines:
-
CHKDER checks the gradients of M functions of N variables.
-
DOGLEG finds the minimizing combination of Gauss-Newton and gradient steps.
-
DPMPAR provides double precision machine parameters.
-
ENORM computes the Euclidean norm of a vector.
-
FDJAC1 estimates an N by N jacobian matrix using forward differences.
-
FDJAC2 estimates an M by N jacobian matrix using forward differences.
-
HYBRD seeks a zero of N nonlinear equations in N variables.
-
HYBRD1 seeks a zero of N nonlinear equations in N variables.
-
HYBRJ seeks a zero of N nonlinear equations in N variables.
-
HYBRJ1 seeks a zero of N nonlinear equations in N variables by Powell's method.
-
LMDER minimizes M functions in N variables by the Levenberg-Marquardt method.
-
LMDER1 minimizes M functions in N variables by the Levenberg-Marquardt method.
-
LMDIF minimizes M functions in N variables by the Levenberg-Marquardt method.
-
LMDIF1 minimizes M functions in N variables using the Levenberg-Marquardt method.
-
LMPAR computes a parameter for the Levenberg-Marquardt method.
-
LMSTR minimizes M functions in N variables using the Levenberg-Marquardt method.
-
LMSTR1 minimizes M functions in N variables using the Levenberg-Marquardt method.
-
QFORM produces the explicit QR factorization of a matrix.
-
QRFAC computes a QR factorization using Householder transformations.
-
QRSOLV solves a rectangular linear system A*x=b in the least squares sense.
-
R1MPYQ computes A*Q, where Q is the product of Householder transformations.
-
R1UPDT re-triangularizes a matrix after a rank one update.
-
RWUPDT computes the decomposition of a triangular matrix augmented by one row.
-
TIMESTAMP prints out the current YMDHMS date as a timestamp.
You can go up one level to
the FORTRAN77 source codes.
Last revised on 07 April 2010.