TEST_NONLIN
Nonlinear Equation Tests
TEST_NONLIN
is a FORTRAN77 library which
defines a set of test problems for nonlinear
equation system solvers.
A few of the problems are small (2, 3, or 4 equations in 4
unknowns), but most of the problems may be set to any size whatsoever.
The software includes routines defining the initial approximation to the
solution of the system, the N function values at any point, and the N by
N jacobian matrix at any point.
The list of problems includes:
-
Generalized Rosenbrock function, 1 < N.
-
Powell singular function, N = 4.
-
Powell badly scaled function, N = 2.
-
Wood function, N = 4.
-
Helical valley function, N = 3.
-
Watson function, 1 < N.
-
Chebyquad function, N arbitrary.
-
Brown almost linear function, N arbitrary.
-
Discrete boundary value function, N arbitrary.
-
Discrete integral equation function, N arbitrary.
-
Trigonometric function, N arbitrary.
-
Variably dimensioned function, N arbitrary.
-
Broyden tridiagonal function, N arbitrary.
-
Broyden banded function, N arbitrary.
-
Hammarling 2 by 2 matrix square root problem, N = 4.
-
Hammarling 3 by 3 matrix square root problem, N = 9.
-
Dennis and Schnabel example, N = 2.
-
Sample problem 18, N = 2.
-
Sample problem 19, N = 2.
-
Scalar problem, N = 1.
-
Freudenstein-Roth function, N = 2.
-
Boggs function, N = 2.
-
Chandrasekhar function, N arbitrary.
Licensing:
The computer code and data files described and made available on this web page
are distributed under
the GNU LGPL license.
Languages:
TEST_NONLIN is available in
a FORTRAN77 version and
a FORTRAN90 version.
Related Data and Programs:
GSL,
a C++ library which
can perform multidimensional root-finding.
KELLEY,
a MATLAB library which
can seek solutions of systems of nonlinear equations.
MINPACK,
a FORTRAN90 library which
is a minimization
package for which most of these problems were used as tests,
as part of ACM TOMS algorithm 566.
Reference:
-
Subramanyan Chandrasekhar,
Radiative Transfer,
Dover, 1960,
ISBN13: 978-0486605906,
LC: QB461.C46.
-
John Dennis, David Gay, Phuong Vu,
A new nonlinear equations test problem,
Technical Report 83-16,
Mathematical Sciences Department,
Rice University, 1983.
-
John Dennis, Robert Schnabel,
Numerical Methods for Unconstrained Optimization
and Nonlinear Equations,
SIAM, 1996,
ISBN13: 978-0-898713-64-0,
LC: QA402.5.D44.
-
Noel deVilliers, David Glasser,
A continuation method for nonlinear regression,
SIAM Journal on Numerical Analysis,
Volume 18, Number 6, December 1981, pages 1139-1154.
-
Chris Fraley,
Solution of nonlinear least-squares problems,
Technical Report STAN-CS-1165,
Computer Science Department,
Stanford University, 1987.
-
Chris 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,
Mathematical Programming,
Volume 9, 1975, pages 57-68.
-
JJ McKeown,
On algorithms for sums of squares problems,
in Towards Global Optimisation,
edited by Laurence Dixon, Gabor Szego,
North-Holland, 1975, pages 229-257,
ISBN: 0444109552,
LC: QA402.5.T7.
-
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.
-
James Ortega, Werner Rheinboldt
Iterative Solution of Nonlinear Equations in Several Variables,
SIAM, 1987,
ISBN13: 978-0898714616,
LC: QA297.8.O77.
-
Werner Rheinboldt,
Methods for Solving Systems of Nonlinear Equations,
SIAM, 1998,
ISBN: 089871415X,
LC: QA214.R44.
-
Douglas Salane,
A continuation approach for solving large residual nonlinear
least squares problems,
SIAM Journal on Scientific and Statistical Computing,
Volume 8, Number 4, July 1987, pages 655-671.
Source Code:
Examples and Tests:
List of Routines:
-
P00_DIF approximates the jacobian via finite differences.
-
P00_FX evaluates the function for any problem.
-
P00_JAC evaluates the jacobian for any problem.
-
P00_N returns the number of equations for a problem.
-
P00_PROBLEM_NUM returns the number of problems available.
-
P00_SOL returns the solution of any problem.
-
P00_START specifies a standard approximate solution.
-
P00_TITLE returns the title of the problem.
-
P01_FX evaluates the function for problem 1.
-
P01_N returns the number of equations for problem 1.
-
P01_JAC sets the jacobian for problem 1.
-
P01_SOL returns the solution of problem 1.
-
P01_START specifies a standard approximate solution for problem 1.
-
P01_TITLE returns the title of problem 1.
-
P02_FX evaluates the function for problem 2.
-
P02_JAC sets the jacobian for problem 2.
-
P02_N returns the number of equations for problem 2.
-
P02_SOL returns the solution of problem 2.
-
P02_START specifies a standard approximate solution for problem 2.
-
P02_TITLE returns the title of problem 2.
-
P03_FX evaluates the function for problem 3.
-
P03_JAC sets the jacobian for problem 3.
-
P03_N returns the number of equations for problem 3.
-
P03_SOL returns the solution of problem 3.
-
P03_START specifies a standard approximate solution for problem 3.
-
P03_TITLE returns the title of problem 3.
-
P04_FX evaluates the function for problem 4.
-
P04_JAC sets the jacobian for problem 4.
-
P04_N returns the number of equations for problem 4.
-
P04_SOL returns the solution of problem 4.
-
P04_START specifies a standard approximate solution for problem 4.
-
P04_TITLE returns the title of problem 4.
-
P05_FX evaluates the function for problem 4.
-
P05_JAC sets the jacobian for problem 5.
-
P05_N returns the number of equations for problem 5.
-
P05_SOL returns the solution of problem 5.
-
P05_START specifies a standard approximate solution for problem 5.
-
P05_TITLE returns the title of problem 5.
-
P06_FX evaluates the function for problem 6.
-
P06_JAC sets the jacobian for problem 6.
-
P06_N returns the number of equations for problem 6.
-
P06_SOL returns the solution of problem 6.
-
P06_START specifies a standard approximate solution for problem 6.
-
P06_TITLE returns the title of problem 6.
-
P07_FX evaluates the function for problem 7.
-
P07_JAC sets the jacobian for problem 7.
-
P07_N returns the number of equations for problem 7.
-
P07_SOL returns the solution of problem 7.
-
P07_START specifies a standard approximate solution for problem 7.
-
P07_TITLE returns the title of problem 7.
-
P08_FX evaluates the function for problem 8.
-
P08_JAC sets the jacobian for problem 8.
-
P08_N returns the number of equations for problem 8.
-
P08_SOL returns the solution of problem 8.
-
P08_START specifies a standard approximate solution for problem 8.
-
P08_TITLE returns the title of problem 8.
-
P09_FX evaluates the function for problem 9.
-
P09_JAC sets the jacobian for problem 9.
-
P09_N returns the number of equations for problem 9.
-
P09_SOL returns the solution of problem 9.
-
P09_START specifies a standard approximate solution for problem 9.
-
P09_TITLE returns the title of problem 9.
-
P10_FX evaluates the function for problem 10.
-
P10_JAC sets the jacobian for problem 10.
-
P10_N returns the number of equations for problem 10.
-
P10_SOL returns the solution of problem 10.
-
P10_START specifies a standard approximate solution for problem 10.
-
P10_TITLE returns the title of problem 10.
-
P11_FX evaluates the function for problem 11.
-
P11_JAC sets the jacobian for problem 11.
-
P11_N returns the number of equations for problem 11.
-
P11_SOL returns the solution of problem 11.
-
P11_START specifies a standard approximate solution for problem 11.
-
P11_TITLE returns the title of problem 11.
-
P12_FX evaluates the function for problem 12.
-
P12_JAC sets the jacobian for problem 12.
-
P12_N returns the number of equations for problem 12.
-
P12_SOL returns the solution of problem 12.
-
P12_START specifies a standard approximate solution for problem 12.
-
P12_TITLE returns the title of problem 12.
-
P13_FX evaluates the function for problem 13.
-
P13_JAC sets the jacobian for problem 13.
-
P13_N returns the number of equations for problem 13.
-
P13_SOL returns the solution of problem 13.
-
P13_START specifies a standard approximate solution for problem 13.
-
P13_TITLE returns the title of problem 13.
-
P14_FX evaluates the function for problem 14.
-
P14_JAC sets the jacobian for problem 14.
-
P14_N returns the number of equations for problem 14.
-
P14_SOL returns the solution of problem 14.
-
P14_START specifies a standard approximate solution for problem 14.
-
P14_TITLE returns the title of problem 14.
-
P15_FX evaluates the function for problem 15.
-
P15_JAC sets the jacobian for problem 15.
-
P15_N returns the number of equations for problem 15.
-
P15_SOL returns the solution of problem 15.
-
P15_START specifies a standard approximate solution for problem 15.
-
P15_TITLE returns the title of problem 15.
-
P16_FX evaluates the function for problem 16.
-
P16_JAC sets the jacobian for problem 16.
-
P16_N returns the number of equations for problem 16.
-
P16_SOL returns the solution of problem 16.
-
P16_START specifies a standard approximate solution for problem 16.
-
P16_TITLE returns the title of problem 16.
-
P17_FX evaluates the function for problem 17.
-
P17_JAC sets the jacobian for problem 17.
-
P17_N returns the number of equations for problem 17.
-
P17_SOL returns the solution of problem 17.
-
P17_START specifies a standard approximate solution for problem 17.
-
P17_TITLE returns the title of problem 17.
-
P18_FX evaluates the function for problem 18.
-
P18_JAC sets the jacobian for problem 18.
-
P18_N returns the number of equations for problem 18.
-
P18_SOL returns the solution of problem 18.
-
P18_START specifies a standard approximate solution for problem 18.
-
P18_TITLE returns the title of problem 18.
-
P19_FX evaluates the function for problem 19.
-
P19_JAC sets the jacobian for problem 19.
-
P19_N returns the number of equations for problem 19.
-
P19_SOL returns the solution of problem 19.
-
P19_START specifies a standard approximate solution for problem 19.
-
P19_TITLE returns the title of problem 19.
-
P20_FX evaluates the function for problem 20.
-
P20_JAC sets the jacobian for problem 20.
-
P20_N returns the number of equations for problem 20.
-
P20_SOL returns the solution of problem 20.
-
P20_START specifies a standard approximate solution for problem 20.
-
P20_TITLE returns the title of problem 20.
-
P21_FX evaluates the function for problem 21.
-
P21_JAC sets the jacobian for problem 21
-
P21_N returns the number of equations for problem 21.
-
P21_SOL returns the solution of problem 21.
-
P21_START specifies a standard approximate solution for problem 21.
-
P21_TITLE returns the title of problem 21.
-
P22_FX evaluates the function for problem 22.
-
P22_JAC sets the jacobian for problem 22.
-
P22_N returns the number of equations for problem 22.
-
P22_SOL returns the solution of problem 22.
-
P22_START specifies a standard approximate solution for problem 22.
-
P22_TITLE returns the title of problem 22.
-
P23_FX evaluates the function for problem 23.
-
P23_N returns the number of equations for problem 23.
-
P23_JAC sets the jacobian for problem 23.
-
P23_SOL returns the solution of problem 23.
-
P23_START specifies a standard approximate solution for problem 23.
-
P23_TITLE returns the title of problem 23.
-
R8_SWAP switches two R8's.
-
R8VEC_NORM2 returns the 2-norm of a vector.
-
R8GE_FA factors a general matrix.
-
R8GE_SL solves a system factored by SGE_FA.
-
TIMESTAMP prints the current YMDHMS date as a time stamp.
You can go up one level to
the FORTRAN77 source codes.
Last revised on 04 January 2009.