Problems/
Software

Benchmarks

Testcases

Books/
Tutorials

Tools

Websub-
mission

Other
Sources

 
              

ZERO -- Zeros of Functions and Systems

The following table shows performance of Newtons method for the problem f1=x**2-y-2=0 and f2=x*y+1=0 with initial guess -4,4
x1 x2 f1 f2 ||inv(jacob)||
-4.0000 4.0000 10.000 -15.000 .33333
-2.4722 1.7778 2.3341 -3.3951 .48011
-1.8176 .87522 .42851 -.59082 .60279
-1.6346 .63831 .33506E-01 -.43366E-01 .65321
-1.6182 .61819 .26912E-03 -.33013E-03 .65832

See also the picture. The solutions of the system occur where the three colors corresponding to the surfaces z=f1(x,y), z=f2(x,y) and z=0 (red , dark blue and light blue) meet. The iterates are represented by vertical bars.

Single Variable

f77-zero,
C++ version,
C version
f is a function of one real variable (Brent-Decker method), using function values only, zerofinder , needs inclusion by change of sign on interval
SERVER server routines for brent.shar (C)
polyzero f is a polynomial of one complex variable and has real coefficients (least squares method, interactive/file input, f77/C)
companion
C-version
f polynomial with real coefficients, QR for eigenvalues of companion matrix
Aberth
C-version
f is a polynomial with complex coefficients
Muller
C-version
f is a general function of one complex variable
ZERO search for a zero in a given interval
RPOLY find all zeroes of a real polynomial (Jenkins-Traub method) f90-version
Madsen find all zeroes of a real polynomial, C++ version
CPOLY find all zeroes of a complex polynomial (Jenkins-Traub method) f90-version, C++-version
RROOT safely enclosing zeroes of a continuous function in an interval
WINSOLVE Windows application, 11 methods to find polynomial zeros

Multiple Variable

box_zeros f depends on one or more complex variables, zeros sought in box (based on TOMS666)
HYBRJ f not too nonlinear, exact Jacobian (Powell's hybrid method)
HYBRDnot too nonlinear, Powells hybrid method, finite difference Jacobian
DogLegPowell's dogleg method (Matlab)
Filtrane part of Galahad, nonlinear constraint solver, filter method, f90
PITCON f not too nonlinear, no good initial guess available, continuation method
ALCON1 Continuation method for systems of algebraic equations f(x,tau)=0. Optional computation of turning and (simple) bifurcation points (by Deuflhard and Kunkel)
ALCON2 Continuation method for systems of algebraic equations f(x,tau)=0. Optional computation of turning and (simple) bifurcation points (by Deulfhard, Fiedler and Kunkel). Optional automatic construction of complete bifurcation diagrams.
ALCON_S Continuation method for systems of algebraic equations f(x,tau)=0. Large and sparse systems. (from elib/codelib, author Klein-Robbenhaar)
Continuation Toolbox Includes continuation of limit cycles and codim 1 bifurcations (Matlab)
codelib/nleq1 f strongly nonlinear, damped Newtons method
codelib/nleq1s damped Newtons method, large and sparse problems, direct linear algebra
codelib/nleq2 damped Newtons method, provision for singular Jacobian
NLEQ-paper postscript file on above nleq* codes
PEQN/PEQL inexact Newton and inverse column update methods, for large/sparse problems
codelib/giant damped Newtons method, large and sparse problems, iterative linear algebra
nnes zeros sought in box: l<=x<=u, see also users' guide
DAFNEdifferential equations approach with second order system inspired by mechanics
CHABIS characteristic bisection method
EPSILON Maple-based package for operations on polynomials including solving systems
HOMPACK globally convergent continuation method for polynomial systems
HOMPACK90 f90 version of HOMPACK
POLSYS_PLP more sophisticated version of HOMPACK90
PHoM Polyhedral Homotopy Continuation Method for Polynomial Systems (C++), module CMPS also in Matlab
TENSOLVE A Software Package for Solving Systems of Nonlinear Equations and Nonlinear Least-squares Problems Using Tensor Methods f90 version
toms/795 , PHCPACK A general-purpose solver for polynomial systems by homotopy continuation
INTOPT_90 f90, see under Interval software

(Constrained) minimization approach

Rootfinders based on Newtons method or its modification will run into considerable trouble when presented with a problem where singularities of the Jacobian occur. In this case the use of unconstrained or constrained minimization might help, since there exist minimization methods which are rather robust if the constraints gradients are linearly dependent. To use an unconstrained minimizer, choose e.g. f(x)=||F(X)||^2 (the Euclidean length squared) and minimize this with some code proposed in the unconstrained minimization section. To use a constrained minimizer, choose simply f==0 as an objective function and minimize this under the constraint F(x)=0. The following code works often successfully in this situation:
LANCELOT A or LANCELOT B augmented Lagrangian based method

 Back to the top!

Date last revised: 10-17-2003