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.

FreudensteinRoth 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: 9780486605906,
LC: QB461.C46.

John Dennis, David Gay, Phuong Vu,
A new nonlinear equations test problem,
Technical Report 8316,
Mathematical Sciences Department,
Rice University, 1983.

John Dennis, Robert Schnabel,
Numerical Methods for Unconstrained Optimization
and Nonlinear Equations,
SIAM, 1996,
ISBN13: 9780898713640,
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 11391154.

Chris Fraley,
Solution of nonlinear leastsquares problems,
Technical Report STANCS1165,
Computer Science Department,
Stanford University, 1987.

Chris Fraley,
Software performance on nonlinear leastsquares problems,
Technical Report SOL 8817,
Systems Optimization Laboratory,
Department of Operations Research,
Stanford University, 1988.

JJ McKeown,
Specialized versus generalpurpose algorithms for functions
that are sums of squared terms,
Mathematical Programming,
Volume 9, 1975, pages 5768.

JJ McKeown,
On algorithms for sums of squares problems,
in Towards Global Optimisation,
edited by Laurence Dixon, Gabor Szego,
NorthHolland, 1975, pages 229257,
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 1741.

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 136140.

James Ortega, Werner Rheinboldt
Iterative Solution of Nonlinear Equations in Several Variables,
SIAM, 1987,
ISBN13: 9780898714616,
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 655671.
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.