TEST_NONLIN
Nonlinear Equation Tests
TEST_NONLIN,
an Octave code 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 MIT license
Languages:
test_nonlin is available in
a FORTRAN90 version and
a MATLAB version and
an Octave version and
a Python version.
Related Data and Programs:
fsolve_test,
an Octave code which
calls fsolve() which
seeks the solution x of one or more nonlinear equations f(x)=0.
test_nonlin_test
test_zero,
an Octave code which
implements test problems for the solution
of a single nonlinear equation in one variable.
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:
-
p00_dif.m,
for any problem, estimates the jacobian matrix using finite differences.
-
p00_fx.m,
for any problem, evaluates the function.
-
p00_jac.m,
for any problem, evaluates the jacobian matrix.
-
p00_n.m,
for any problem, returns legal problem sizes.
-
p00_problem_num.m,
returns the number of problems.
-
p00_sol.m,
for any problem, returns an estimated root, if known.
-
p00_start.m,
for any problem, returns a starting point.
-
p00_title.m,
for any problem, returns the title.
-
p01_fx.m,
for problem 01, evaluates the function.
-
p01_jac.m,
for problem 01, evaluates the jacobian matrix.
-
p01_n.m,
for problem 01, returns legal problem sizes.
-
p01_sol.m,
for problem 01, returns an estimated root, if known.
-
p01_start.m,
for problem 01, returns a starting point.
-
p01_title.m,
for problem 01, returns the title.
-
p02_fx.m,
for problem 02, evaluates the function.
-
p02_jac.m,
for problem 02, evaluates the jacobian matrix.
-
p02_n.m,
for problem 02, returns legal problem sizes.
-
p02_sol.m,
for problem 02, returns an estimated root, if known.
-
p02_start.m,
for problem 02, returns a starting point.
-
p02_title.m,
for problem 02, returns the title.
-
p03_fx.m,
for problem 03, evaluates the function.
-
p03_jac.m,
for problem 03, evaluates the jacobian matrix.
-
p03_n.m,
for problem 03, returns legal problem sizes.
-
p03_sol.m,
for problem 03, returns an estimated root, if known.
-
p03_start.m,
for problem 03, returns a starting point.
-
p03_title.m,
for problem 03, returns the title.
-
p04_fx.m,
for problem 04, evaluates the function.
-
p04_jac.m,
for problem 04, evaluates the jacobian matrix.
-
p04_n.m,
for problem 04, returns legal problem sizes.
-
p04_sol.m,
for problem 04, returns an estimated root, if known.
-
p04_start.m,
for problem 04, returns a starting point.
-
p04_title.m,
for problem 04, returns the title.
-
p05_fx.m,
for problem 05, evaluates the function.
-
p05_jac.m,
for problem 05, evaluates the jacobian matrix.
-
p05_n.m,
for problem 05, returns legal problem sizes.
-
p05_sol.m,
for problem 05, returns an estimated root, if known.
-
p05_start.m,
for problem 05, returns a starting point.
-
p05_title.m,
for problem 05, returns the title.
-
p06_fx.m,
for problem 06, evaluates the function.
-
p06_jac.m,
for problem 06, evaluates the jacobian matrix.
-
p06_n.m,
for problem 06, returns legal problem sizes.
-
p06_sol.m,
for problem 06, returns an estimated root, if known.
-
p06_start.m,
for problem 06, returns a starting point.
-
p06_title.m,
for problem 06, returns the title.
-
p07_fx.m,
for problem 07, evaluates the function.
-
p07_jac.m,
for problem 07, evaluates the jacobian matrix.
-
p07_n.m,
for problem 07, returns legal problem sizes.
-
p07_sol.m,
for problem 07, returns an estimated root, if known.
-
p07_start.m,
for problem 07, returns a starting point.
-
p07_title.m,
for problem 07, returns the title.
-
p08_fx.m,
for problem 08, evaluates the function.
-
p08_jac.m,
for problem 08, evaluates the jacobian matrix.
-
p08_n.m,
for problem 08, returns legal problem sizes.
-
p08_sol.m,
for problem 08, returns an estimated root, if known.
-
p08_start.m,
for problem 08, returns a starting point.
-
p08_title.m,
for problem 08, returns the title.
-
p09_fx.m,
for problem 09, evaluates the function.
-
p09_jac.m,
for problem 09, evaluates the jacobian matrix.
-
p09_n.m,
for problem 09, returns legal problem sizes.
-
p09_sol.m,
for problem 09, returns an estimated root, if known.
-
p09_start.m,
for problem 09, returns a starting point.
-
p09_title.m,
for problem 09, returns the title.
-
p10_fx.m,
for problem 10, evaluates the function.
-
p10_jac.m,
for problem 10, evaluates the jacobian matrix.
-
p10_n.m,
for problem 10, returns legal problem sizes.
-
p10_sol.m,
for problem 10, returns an estimated root, if known.
-
p10_start.m,
for problem 10, returns a starting point.
-
p10_title.m,
for problem 10, returns the title.
-
p11_fx.m,
for problem 11, evaluates the function.
-
p11_jac.m,
for problem 11, evaluates the jacobian matrix.
-
p11_n.m,
for problem 11, returns legal problem sizes.
-
p11_sol.m,
for problem 11, returns an estimated root, if known.
-
p11_start.m,
for problem 11, returns a starting point.
-
p11_title.m,
for problem 11, returns the title.
-
p12_fx.m,
for problem 12, evaluates the function.
-
p12_jac.m,
for problem 12, evaluates the jacobian matrix.
-
p12_n.m,
for problem 12, returns legal problem sizes.
-
p12_sol.m,
for problem 12, returns an estimated root, if known.
-
p12_start.m,
for problem 12, returns a starting point.
-
p12_title.m,
for problem 12, returns the title.
-
p13_fx.m,
for problem 13, evaluates the function.
-
p13_jac.m,
for problem 13, evaluates the jacobian matrix.
-
p13_n.m,
for problem 13, returns legal problem sizes.
-
p13_sol.m,
for problem 13, returns an estimated root, if known.
-
p13_start.m,
for problem 13, returns a starting point.
-
p13_title.m,
for problem 13, returns the title.
-
p14_fx.m,
for problem 14, evaluates the function.
-
p14_jac.m,
for problem 14, evaluates the jacobian matrix.
-
p14_n.m,
for problem 14, returns legal problem sizes.
-
p14_sol.m,
for problem 14, returns an estimated root, if known.
-
p14_start.m,
for problem 14, returns a starting point.
-
p14_title.m,
for problem 14, returns the title.
-
p15_fx.m,
for problem 15, evaluates the function.
-
p15_jac.m,
for problem 15, evaluates the jacobian matrix.
-
p15_n.m,
for problem 15, returns legal problem sizes.
-
p15_sol.m,
for problem 15, returns an estimated root, if known.
-
p15_start.m,
for problem 15, returns a starting point.
-
p15_title.m,
for problem 15, returns the title.
-
p16_fx.m,
for problem 16, evaluates the function.
-
p16_jac.m,
for problem 16, evaluates the jacobian matrix.
-
p16_n.m,
for problem 16, returns legal problem sizes.
-
p16_sol.m,
for problem 16, returns an estimated root, if known.
-
p16_start.m,
for problem 16, returns a starting point.
-
p16_title.m,
for problem 16, returns the title.
-
p17_fx.m,
for problem 17, evaluates the function.
-
p17_jac.m,
for problem 17, evaluates the jacobian matrix.
-
p17_n.m,
for problem 17, returns legal problem sizes.
-
p17_sol.m,
for problem 17, returns an estimated root, if known.
-
p17_start.m,
for problem 17, returns a starting point.
-
p17_title.m,
for problem 17, returns the title.
-
p18_fx.m,
for problem 18, evaluates the function.
-
p18_jac.m,
for problem 18, evaluates the jacobian matrix.
-
p18_n.m,
for problem 18, returns legal problem sizes.
-
p18_sol.m,
for problem 18, returns an estimated root, if known.
-
p18_start.m,
for problem 18, returns a starting point.
-
p18_title.m,
for problem 18, returns the title.
-
p19_fx.m,
for problem 19, evaluates the function.
-
p19_jac.m,
for problem 19, evaluates the jacobian matrix.
-
p19_n.m,
for problem 19, returns legal problem sizes.
-
p19_sol.m,
for problem 19, returns an estimated root, if known.
-
p19_start.m,
for problem 19, returns a starting point.
-
p19_title.m,
for problem 19, returns the title.
-
p20_fx.m,
for problem 20, evaluates the function.
-
p20_jac.m,
for problem 20, evaluates the jacobian matrix.
-
p20_n.m,
for problem 20, returns legal problem sizes.
-
p20_sol.m,
for problem 20, returns an estimated root, if known.
-
p20_start.m,
for problem 20, returns a starting point.
-
p20_title.m,
for problem 20, returns the title.
-
p21_fx.m,
for problem 21, evaluates the function.
-
p21_jac.m,
for problem 21, evaluates the jacobian matrix.
-
p21_n.m,
for problem 21, returns legal problem sizes.
-
p21_sol.m,
for problem 21, returns an estimated root, if known.
-
p21_start.m,
for problem 21, returns a starting point.
-
p21_title.m,
for problem 21, returns the title.
-
p22_fx.m,
for problem 22, evaluates the function.
-
p22_jac.m,
for problem 22, evaluates the jacobian matrix.
-
p22_n.m,
for problem 22, returns legal problem sizes.
-
p22_sol.m,
for problem 22, returns an estimated root, if known.
-
p22_start.m,
for problem 22, returns a starting point.
-
p22_title.m,
for problem 22, returns the title.
-
p23_fx.m,
for problem 23, evaluates the function.
-
p23_jac.m,
for problem 23, evaluates the jacobian matrix.
-
p23_n.m,
for problem 23, returns legal problem sizes.
-
p23_sol.m,
for problem 23, returns an estimated root, if known.
-
p23_start.m,
for problem 23, returns a starting point.
-
p23_title.m,
for problem 23, returns the title.
Last revised on 10 October 2020.