Least Squares Routines

LAWSON is a FORTRAN90 library which solves least squares problems.

The most common least squares problems considers an overdetermined M by N linear system A*X=B. A least squares solution X is sought which has the property that, although it generally is not a solution of the system, it is the best approximation to a solution, in the sense that it minimizes the L2 norm of the residual R=A*X-B.

In some cases, a unique solution to the system A*X=B will exist, and in that case the least squares solution will coincide with what is ordinarily meant by a solution.

In underdetermined cases, where multiple solutions exist, the least squares solution is usually taken to be that solution X which has minimum L2 norm, that is, which minimizes ||X||.


LAWSON is available in a FORTRAN77 version and a FORTRAN90 version.

Related Data and Programs:

BRENT, a FORTRAN90 library which contains Richard Brent's routines for finding the zero, local minimizer, or global minimizer of a scalar function of a scalar argument, without the use of derivative information.

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 FORTRAN90 library which solves constrained least squares problems.

ENTRUST, a MATLAB program which solves problems in scalar optimization or nonlinear least squares.

MINPACK, a FORTRAN90 library which solves systems of nonlinear equations, or the least squares minimization of the residual of a set of linear or nonlinear equations.

NL2SOL, a FORTRAN90 library which implements an adaptive nonlinear least-squares algorithm.

QR_SOLVE, a FORTRAN90 library which computes the least squares solution of a linear system A*x=b.

PRAXIS, a FORTRAN90 library which minimizes a scalar function of several variables.

TEST_LS, a FORTRAN90 library which implements linear least squares test problems of the form A*x=b.

TEST_OPT, a FORTRAN90 library which defines test problems requiring the minimization of a scalar function of several variables.

TOMS611, a FORTRAN90 library which seeks the minimizer of a scalar functional of multiple variables.


  1. Gene Golub, Christian Reinsch,
    Singular Value Decomposition and Least Squares Solutions,
    Numerische Mathematik,
    Volume 14, Number 5, April 1970, pages 403-420.
  2. Charles Lawson, Richard Hanson,
    Solving Least Squares Problems,
    SIAM, 1995,
    ISBN: 0898713560,
    LC: QA275.L38.

Source Code:

Examples and Tests:

List of Routines:

You can go up one level to the FORTRAN90 source codes.

Last revised on 21 October 2008.