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 user-supplied 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 user-supplied 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: 0-486-41998-3,
LC: QA402.5.B74.
-
Eldon Hansen, Merrell Patrick,
A Family of Root Finding Methods,
Numerische Mathematik,
Volume 27, Number 3, September 1977, pages 257-269.
-
P Jarratt,
Some fourth-order multipoint iterative methods for
solving equations,
Mathematics of Computation,
Volume 20, Number 95, July 1966, pages 434-437.
-
Richard King,
A family of fourth order methods,
SIAM Journal on Numerical Analysis,
Volume 10, 1973, pages 876-879.
-
Richard King,
Improving the van de Vel root-finding method,
Computing,
Volume 30, 1983, pages 373-378.
-
Werner Rheinboldt,
Algorithms for finding zeros of a function,
UMAP Journal,
Volume 2, Number 1, 1981, pages 43-72.
-
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 167-171.
Source Code:
Examples and Tests:
List of Routines:
-
BISECT carries out the bisection method.
-
BRENT implements the Brent bisection-based 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 inverse-free 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 Traub-Ostrowksi 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.