MINPACK
Least Squares Minimization
MINPACK is a FORTRAN90 library,
using double precision arithmetic,
which solves systems of nonlinear equations, or carries out the
least squares minimization of the residual of a set of linear or nonlinear equations.
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.
Related Data and Programs:
DQED
is a FORTRAN90 library which
solves constrained least squares problems.
NL2SOL
is a FORTRAN90 library which
implements an adaptive nonlinear least-squares algorithm.
PRAXIS
is a FORTRAN90 library which
minimizes a scalar function of several variables.
SLATEC
is a FORTRAN90 library which includes MINPACK.
TEST_OPT
is a FORTRAN90 library which
defines test problems for the minimization of a scalar function
of several variables.
TOMS611
is a FORTRAN90 library which
seeks the minimizer of a scalar functional of multiple variables.
Reference:
-
Jorge More, Burton Garbow and Kenneth Hillstrom,
User Guide for MINPACK-1,
Argonne National Laboratory,
Argonne, Illinois.
-
Jorge More, Danny Sorenson, Burton Garbow and Kenneth Hillstrom,
The MINPACK Project,
in Wayne Cowell, editor,
Sources and Development of Mathematical Software,
pgaes 88-111, 1984.
Source Code:
Examples and Tests:
List of Routines:
-
CHKDER checks the gradients of M functions of N variables.
-
D_SWAP switches two double precision values.
-
DOGLEG finds the minimizing combination of Gauss-Newton and gradient steps.
-
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.
-
I_SWAP swaps two integer values.
-
LMDER minimizes M functions in N variables using the Levenberg-Marquardt method.
-
LMDER1 minimizes M functions in N variables using the Levenberg-Marquardt method.
-
LMDIF minimizes M functions in N variables using 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.
-
RWUPDT computes the decomposition of a triangular matrix augmented by one row.
-
R1MPYQ computes A*Q, where Q is the product of Householder transformations.
-
R1UPDT re-triangularizes a matrix after a rank one update.
-
TIMESTAMP prints the current YMDHMS date as a time stamp.
You can go up one level to
the FORTRAN90 source codes.
Last revised on 31 October 2005.