ZOOMIN
Scalar Zero Finders
ZOOMIN
is a FORTRAN90 library which
seeks a root of a scalar function.
The library is based primarily on a book by Joseph Traub.
These routines are each intended to find one of more solutions
of an equation in one unknown, written as
f(x) = 0
The wide variety of methods include
special rules for polynomials, multiple roots, bisection methods,
and methods that use no derivative information.
Licensing:
The computer code and data files described and made available on this web page
are distributed under
the GNU LGPL license.
Languages:
ZOOMIN is available in
a FORTRAN90 version.
Related Data and Programs:
BISECTION_INTEGER,
a FORTRAN90 library which
seeks an integer solution to the equation F(X)=0,
using bisection within a usersupplied change of sign interval [A,B].
BISECTION_RC,
a FORTRAN90 library which
seeks a solution to the equation F(X)=0 using bisection
within a usersupplied change of sign interval [A,B].
The procedure is written using reverse communication.
BRENT,
a FORTRAN90 library which
contains Richard Brent's routines for finding the zero, local minimizer,
or global minimizer of a scalar function of a scalar argument, without
the use of derivative information.
TEST_ZERO,
a FORTRAN90 library which
defines functions which can be used to test zero finders.
ZERO_RC,
a FORTRAN90 library which
seeks solutions of a scalar nonlinear equation f(x) = 0,
or a system of nonlinear equations,
using reverse communication.
Reference:

Richard Brent,
Algorithms for Minimization without Derivatives,
Dover, 2002,
ISBN: 0486419983,
LC: QA402.5.B74.

Eldon Hansen, Merrell Patrick,
A Family of Root Finding Methods,
Numerische Mathematik,
Volume 27, Number 3, September 1977, pages 257269.

P Jarratt,
Some fourthorder multipoint iterative methods for
solving equations,
Mathematics of Computation,
Volume 20, Number 95, July 1966, pages 434437.

Richard King,
A family of fourth order methods,
SIAM Journal on Numerical Analysis,
Volume 10, 1973, pages 876879.

Richard King,
Improving the van de Vel rootfinding method,
Computing,
Volume 30, 1983, pages 373378.

Werner Rheinboldt,
Algorithms for finding zeros of a function,
UMAP Journal,
Volume 2, Number 1, 1981, pages 4372.

Joseph Traub,
Iterative Methods for the Solution of Equations,
Prentice Hall, 1964.

Hugo vandeVel,
A method for computing a root of a single nonlinear equation,
including its multiplicity,
Computing,
Volume 14, 1975, pages 167171.
Source Code:
Examples and Tests:
List of Routines:

BISECT carries out the bisection method.

BRENT implements the Brent bisectionbased zero finder.

CAP_PHI_03 implements the Traub capital Phi(0,3) method.

CAP_PHI_21 implements the Traub capital PHI(2,1) function.

CHEBYSHEV implements Chebyshev's method.

DAGGER_E12 implements the dagger E 1,2 algorithm.

E3 implements the Traub E3 method.

E4 implements the Traub E4 method.

EULER implements the Euler method.

HALLEY1 implements Halley's method.

HALLEY2 implements Halley's method, with finite differences.

HALLEY_SUPER implements the super Halley method.

HANSEN implements the Hansen and Patrick method.

JARRATT implements the Jarratt fourth order method.

JARRATT2 implements the inversefree Jarratt fourth order method.

KING implements a family of fourth order methods.

LAGUERRE implements the Laguerre rootfinding method for polynomials.

MIDPOINT implements the midpoint method.

MULLER implements Muller's method.

NEWTON implements Newton's method.

NEWTON_MOD implements the modified Newton method.

NEWTON_SEC implements the Newton  secant method.

OSTROWSKI_SQRT implements the Ostrowski square root method.

PERP_E_12 implements the Traub E 1,2 algorithm.

PERP_E_21 implements the Traub perp E 21 method.

PHI_12 implements the Traub capital PHI(1,2) method.

PSI_21 implements the Traub PSI 2,1 method.

PSI_12 implements the Traub PSI 1,2 method.

R8_SWAP switches two real values.

RED_CAP_PHI_04 implements the Traub reduced capital PHI(0,4) method.

REGULA implements the Regula Falsi method.

RHEIN1 implements the Rheinboldt bisection  secant method.

RHEIN2 implements the Rheinboldt bisection  secant  inverse quadratic method.

SCRIPT_E2 implements the Traub script E  2 function.

SCRIPT_E3 implements the Traub script E  3 function.

SCRIPT_E4 implements the Traub script E  4 function.

SECANT implements the secant method.

SECANTX carries out the extended secant algorithm.

STAR_E12 implements the Traub *E12 method.

STAR_E21 implements the Traub *E21 method.

STEFFENSON implements Steffenson's method.

STIRLING implements Stirling's method.

T14 implements the Traub fourteenth function.

T15 implements the Traub fifteenth function.

T16 implements the Traub sixteenth function.

T_FAMILY1 implements the Traub first family of iterations.

T_FAMILY2 implements the Traub second family of iterations.

TE11F implements the Traub *E  1,1(f) function.

TE2U implements the Traub E  2(u) function.

TPHI1U implements the Traub phi  1,1(u) function.

TRAUB1 implements the Traub first method.

TRAUB4 implements the Traub fourth method.

TRAUB8 implements the Traub eighth function.

TRAUB9 implements the Traub ninth method.

TRAUB_OSTROWSKI implements the TraubOstrowksi method.

TT1F implements the Traub type 1 functions 10 and 11.

TTHIP implements the Traub third function.

VANDEV implements the Van de Vel iteration.

VANDEV2 implements the improved Van de Vel iteration.

WHITTAKER implements the convex acceleeration of Whittaker's method.

WHITTAKER2 implements the double convex acceleeration of Whittaker's method.

ZOOMIN calls all the zero finders for a given problem.
You can go up one level to
the FORTRAN90 source codes.
Last revised on 13 November 2005.