TEST_NLS
Nonlinear least squares test problems
TEST_NLS
is a FORTRAN90 library which
defines test problems for
least squares minimization.
The typical problem comprises M functions in N variables,
and it is desired to minimize the sum of squares of the values of
the functions. Each problem is specified by a starting point, a
function and jacobian routines.
The problems include:
-
Linear function, full rank
-
Linear function, rank 1.
-
Linear function, rank 1, zero columns and rows.
-
Rosenbrock function.
-
Helical valley function.
-
Powell singular function.
-
Freudenstein/Roth function.
-
Bard function.
-
Kowalik and Osborne function.
-
Meyer function.
-
Watson function.
-
Box 3-dimensional function.
-
Jennrich and Sampson function.
-
Brown and Dennis function.
-
Chebyquad function.
-
Brown almost-linear function.
-
Osborne function 1.
-
Osborne function 2.
-
Hanson function 1
-
Hanson function 2
-
McKeown function 1
-
McKeown function 2
-
McKeown function 3
-
Devilliers and Glasser function 1
-
Devilliers and Glasser function 2
-
Madsen example
Licensing:
The computer code and data files described and made available on this web page
are distributed under
the GNU LGPL license.
Languages:
TEST_NLS is available in
a FORTRAN90 version.
Related Data and Programs:
DQED,
a FORTRAN90 library which
seeks the solution of bounded or constrained minimization problems.
MINPACK,
a FORTRAN90 library which
seeks the solution of nonlinear equations, or the least squares minimization
of the residual.
Reference:
-
John Dennis, David Gay, and Phuong Vu,
A new nonlinear equations test problem,
Technical Report 83-16,
Mathematical Sciences Department,
Rice University, (1983 - revised 1985).
-
N. de Villiers and D. Glasser,
A continuation method for nonlinear regression,
SIAM Journal of Numerical Analysis,
Volume 18, pages 1139-1154, 1981.
-
C. Fraley,
Solution of nonlinear least-squares problems,
Technical Report STAN-CS-1165,
Computer Science Department,
Stanford University, 1987.
-
C. Fraley,
Software performance on nonlinear least-squares problems,
Technical Report SOL 88-17,
Systems Optimization Laboratory,
Department of Operations Research,
Stanford University, 1988.
-
JJ McKeown,
Specialized versus general-purpose algorithms for functions that
are sums of squared terms,
Math. Prog.,
Volume 9, pages 57-68, 1975.
-
JJ McKeown,
On algorithms for sums of squares problems,
in Towards Global Optimization,
L. C. W. Dixon and G. Szego (editors),
North-Holland, pages 229-257, 1975.
-
Jorge More, Burton Garbow, Kenneth Hillstrom,
Testing unconstrained optimization software,
ACM Transactions on Mathematical Software,
Volume 7, Number 1, March 1981, pages 17-41.
-
Jorge More, Burton Garbow, Kenneth Hillstrom,
Algorithm 566:
FORTRAN Subroutines for Testing unconstrained optimization software,
ACM Transactions on Mathematical Software,
Volume 7, Number 1, March 1981, pages 136-140.
-
Douglas Salane,
A continuation approach for solving large residual nonlinear
least squares problems,
SIAM Journal of Scientific and Statistical Computing,
Volume 8, pages 655-671, 1987.
Source Code:
Examples and Tests:
List of Routines:
-
P00_F evaluates the M nonlinear functions for any problem.
-
P00_G evaluates the least squares gradient for any problem.
-
P00_J evaluates the jacobian for any problem.
-
P00_MN reports the default sizes M and N for the least squares problems.
-
P00_MPROB returns the number of problems available.
-
P00_SOL returns the solution of the problem, if known.
-
P00_START sets a starting point for any problem.
-
P00_title sets the title of any problem.
-
P01_F evaluates the M nonlinear functions for problem 1.
-
P01_J evaluates the jacobian for problem 1.
-
P01_SOL returns the solution of problem 1.
-
P01_START sets a starting point for problem 1.
-
P01_title specifies the title for problem 1.
-
P02_F evaluates the M nonlinear functions for problem 2.
-
P02_J evaluates the jacobian for problem 2.
-
P02_SOL returns the solution of problem 2.
-
P02_START sets a starting point for problem 2.
-
P02_title specifies the title for problem 2.
-
P03_F evaluates the M nonlinear functions for problem 3.
-
P03_J evaluates the jacobian for problem 3.
-
P03_START sets a starting point for problem 3.
-
P03_SOL returns the solution of problem 3.
-
P03_title specifies the title for problem 3.
-
P04_F evaluates the M nonlinear functions for problem 4.
-
P04_J evaluates the jacobian for problem 4.
-
P04_SOL returns the solution of problem 4.
-
P04_START sets a starting point for problem 4.
-
P04_title specifies the title for problem 4.
-
P05_F evaluates the M nonlinear functions for problem 5.
-
P05_J evaluates the jacobian for problem 5.
-
P05_SOL returns the solution of problem 5.
-
P05_START sets a starting point for problem 5.
-
P05_title specifies the title for problem 5.
-
P06_F evaluates the M nonlinear functions for problem 6.
-
P06_J evaluates the jacobian for problem 6.
-
P06_SOL returns the solution of problem 6.
-
P06_START sets a starting point for problem 6.
-
P06_title specifies the title for problem 6.
-
P07_F evaluates the M nonlinear functions for problem 7.
-
P07_J evaluates the jacobian for problem 7.
-
P07_SOL returns the solution of problem 7.
-
P07_START sets a starting point for problem 7.
-
P07_title specifies the title for problem 7.
-
P08_F evaluates the M nonlinear functions for problem 8.
-
P08_J evaluates the jacobian for problem 8.
-
P08_SOL returns the solution of problem 8.
-
P08_START sets a starting point for problem 8.
-
P08_title specifies the title for problem 8.
-
P09_F evaluates the M nonlinear functions for problem 9.
-
P09_J evaluates the jacobian for problem 9.
-
P09_SOL returns the solution of problem 9.
-
P09_START sets a starting point for problem 9.
-
P09_title specifies the title for problem 9.
-
P10_F evaluates the M nonlinear functions for problem 10.
-
P09_J evaluates the jacobian for problem 9.
-
P10_SOL returns the solution of problem 10.
-
P10_START sets a starting point for problem 10.
-
P10_title specifies the title for problem 10.
-
P11_F evaluates the M nonlinear functions for problem 11.
-
P11_J evaluates the jacobian for problem 11.
-
P11_SOL returns the solution of problem 11.
-
P11_START sets a starting point for problem 11.
-
P11_title specifies the title for problem 11.
-
P12_F evaluates the M nonlinear functions for problem 12.
-
P12_J evaluates the jacobian for problem 12.
-
P12_SOL returns the solution of problem 12.
-
P12_START sets a starting point for problem 12.
-
P12_title specifies the title for problem 12.
-
P13_F evaluates the M nonlinear functions for problem 13.
-
P13_J evaluates the jacobian for problem 13.
-
P13_SOL returns the solution of problem 13.
-
P13_START sets a starting point for problem 13.
-
P13_title specifies the title for problem 13.
-
P14_F evaluates the M nonlinear functions for problem 14.
-
P14_J evaluates the jacobian for problem 14.
-
P14_SOL returns the solution of problem 14.
-
P14_START sets a starting point for problem 14.
-
P14_title specifies the title for problem 14.
-
P15_F evaluates the M nonlinear functions for problem 15.
-
P15_J evaluates the jacobian for problem 15.
-
P15_SOL returns the solution of problem 15.
-
P15_START sets a starting point for problem 15.
-
P15_title specifies the title for problem 15.
-
P16_F evaluates the M nonlinear functions for problem 16.
-
P16_J evaluates the jacobian for problem 16.
-
P16_SOL returns the solution of problem 16.
-
P16_START sets a starting point for problem 16.
-
P16_title specifies the title for problem 16.
-
P17_F evaluates the M nonlinear functions for problem 17.
-
P17_J evaluates the jacobian for problem 17.
-
P17_SOL returns the solution of problem 17.
-
P17_START sets a starting point for problem 17.
-
P17_title specifies the title for problem 17.
-
P18_F evaluates the M nonlinear functions for problem 18.
-
P18_J evaluates the jacobian for problem 18.
-
P18_SOL returns the solution of problem 18.
-
P18_START sets a starting point for problem 18.
-
P18_title specifies the title for problem 18.
-
P19_F evaluates the M nonlinear functions for problem 19.
-
P19_J evaluates the jacobian for problem 19.
-
P19_SOL returns the solution of problem 19.
-
P19_START sets a starting point for problem 19.
-
P19_title specifies the title for problem 19.
-
P20_F evaluates the M nonlinear functions for problem 20.
-
P20_J evaluates the jacobian for problem 20.
-
P20_SOL returns the solution of problem 20.
-
P20_START sets a starting point for problem 20.
-
P20_title specifies the title for problem 20.
-
P21_F evaluates the M nonlinear functions for problem 21.
-
P21_J evaluates the jacobian for problem 21.
-
P21_SOL returns the solution of problem 21.
-
P21_START sets a starting point for problem 21.
-
P21_title specifies the title for problem 21.
-
P22_F evaluates the M nonlinear functions for problem 22.
-
P22_J evaluates the jacobian for problem 22.
-
P22_SOL returns the solution of problem 22.
-
P22_START sets a starting point for problem 22.
-
P22_title specifies the title for problem 22.
-
P23_F evaluates the M nonlinear functions for problem 23.
-
P23_J evaluates the jacobian for problem 23.
-
P23_SOL returns the solution of problem 23.
-
P23_START sets a starting point for problem 23.
-
P23_title specifies the title for problem 23.
-
P24_F evaluates the M nonlinear functions for problem 24.
-
P24_J evaluates the jacobian for problem 24.
-
P24_SOL returns the solution of problem 24.
-
P24_START sets a starting point for problem 24.
-
P24_title specifies the title for problem 24.
-
P25_F evaluates the M nonlinear functions for problem 25.
-
P25_J evaluates the jacobian for problem 25.
-
P25_SOL returns the solution of problem 25.
-
P25_START sets a starting point for problem 25.
-
P25_title specifies the title for problem 25.
-
P26_F evaluates the M nonlinear functions for problem 26.
-
P26_J evaluates the jacobian for problem 26.
-
P26_SOL returns the solution of problem 26.
-
P26_START sets a starting point for problem 26.
-
P26_title specifies the title for problem 26.
-
R_PI returns the value of pi.
-
RMAT_PRINT prints a real matrix.
-
RVEC_PRINT prints a real vector.
-
TIMESTAMP prints the current YMDHMS date as a time stamp.
You can go up one level to
the FORTRAN90 source codes.
Last revised on 30 August 2005.