You are on page 1of 5

Root-nding algorithm

A root-nding algorithm is a numerical method, or and b, such that f(a) and f(b) have opposite signs. Alalgorithm, for nding a value x such that f(x) = 0, for a though it is reliable, it converges slowly, gaining one bit
given function f. Such an x is called a root of the function of accuracy with each iteration.
f.
This article is concerned with nding scalar, real or
complex roots, approximated as oating point numbers.
Finding integer roots or exact algebraic roots are separate
problems, whose algorithms have little in common with
those discussed here. (See: Diophantine equation for integer roots)

1.2 False position (regula falsi)


The false position method, also called the regula falsi
method, is like the secant method. However, instead of
retaining the last two points, it makes sure to keep one
point on either side of the root. The false position method
can be faster than the bisection method and will never diverge like the secant method, but fails to converge under
some naive implementations. Ridders method is a variant on the false-position method that also evaluates the
function at the midpoint of the interval, giving faster convergence with similar robustness.

Finding a root of f(x) g(x) = 0 is the same as solving


the equation f(x) = g(x). Here, x is called the unknown
in the equation. Conversely, any equation can take the
canonical form f(x) = 0, so equation solving is the same
thing as computing (or nding) a root of a function.

Numerical root-nding methods use iteration, producing


a sequence of numbers that hopefully converge towards
a limit (the so-called "xed point") which is a root. The
rst values of this series are initial guesses. The method
1.3 Interpolation
computes subsequent values based on the old ones and the
function f.
Regula falsi is an interpolation method because it apThe behaviour of root-nding algorithms is studied in proximates the function with a line between two points.
numerical analysis. Algorithms perform best when they Higher degree polynomials can also be used to approxitake advantage of known characteristics of the given mate the function and its root, while bracketing the root.
function. Thus an algorithm to nd isolated real roots For example, Mullers method can be easily modied so
of a low-degree polynomial in one variable may bear that rather than always keeping the last 3 points, it tracks
little resemblance to an algorithm for complex roots the last two points to bracket the root and the best curof a black-box function which is not even known to rent approximation. Such methods combine good averbe dierentiable. Questions include ability to separate age performance with absolute bounds on the worst-case
close roots, robustness against failures of continuity and performance.
dierentiability, reliability despite inevitable numerical
errors, and rate of convergence.

2 Open methods
1

Bracketing methods

2.1 Newtons method (and


derivative-based methods)
Bracketing methods track the end points of an interval

similar

containing a root. This allows them to provide absolute


error bounds on a roots location when the function is Newtons method assumes the function f to have a conknown to be continuous. Bracketing methods require two tinuous derivative. Newtons method may not converge
initial conditions, one on either side of the root.
if started too far away from a root. However, when it
does converge, it is faster than the bisection method, and
is usually quadratic. Newtons method is also important
1.1 Bisection method
because it readily generalizes to higher-dimensional problems. Newton-like methods with higher orders of converThe simplest root-nding algorithm is the bisection gence are the Householders methods. The rst one after
method. It works when f is a continuous function and Newtons method is Halleys method with cubic order of
it requires previous knowledge of two initial guesses, a convergence.
1

2.2

4 FINDING ROOTS OF POLYNOMIALS

Secant method

Replacing the derivative in Newtons method with a nite


dierence, we get the secant method. This method
does not require the computation (nor the existence) of
a derivative, but the price is slower convergence (the order is approximately 1.6). A generalization of the secant
method in higher dimensions is Broydens method.

2.3

Interpolation

The secant method also arises if one approximates the unknown function f by linear interpolation. When quadratic
interpolation is used instead, one arrives at Mullers
method. It converges faster than the secant method. A
particular feature of this method is that the iterates xn
may become complex.

care to ensure numerical stability. The closed-form solutions for degrees three (cubic polynomial) and four (quartic polynomial) are complicated and require much more
care; consequently, numerical methods such as Bairstows
method may be easier to use. Fifth-degree (quintic) and
higher-degree polynomials do not have a general solution
according to the AbelRuni theorem (1824, 1799).

4.1 Finding one root at a time


The general idea is to nd a root of the polynomial and
then apply Horners method to remove the corresponding
factor according to the Runi rule.

This iterative scheme is numerically unstable; the approximation errors accumulate during the successive factorizations, so that the last roots are determined with a polynomial that deviates widely from a factor of the original
Sidis method allows for interpolation with an arbitrarily polynomial. To reduce this error, it is advisable to nd
high degree polynomial. The higher the degree of the in- the roots in increasing order of magnitude.
terpolating polynomial, the faster the convergence. Sidis
method allows for convergence with an order arbitrarily Wilkinsons polynomial illustrates that high precision
may be necessary when computing the roots of a polyclose to 2.
nomial given its coecients: the problem of nding the
roots from the coecients is in general ill-conditioned.

2.4

Inverse interpolation

The appearance of complex values in interpolation methods can be avoided by interpolating the inverse of f,
resulting in the inverse quadratic interpolation method.
Again, convergence is asymptotically faster than the secant method, but inverse quadratic interpolation often behaves poorly when the iterates are not close to the root.

The most simple method to nd a single root fast is Newtons method. One can use Horners method twice to
eciently evaluate the value of the polynomial function
and its rst derivative; this combination is called Birge
Vietas method. This method provides quadratic convergence for simple roots at the cost of two polynomial evaluations per step.

Closely related to Newtons method are Halleys method


and Laguerres method. Using one additional Horner
evaluation, the value of the second derivative is used to
3 Combinations of methods
obtain methods of cubic convergence order for simple
roots. If one starts from a point x close to a root and
uses the same complexity of 6 function evaluations, these
3.1 Brents method
methods perform two steps with a residual of O(|f(x)|9 ),
Brents method is a combination of the bisection method, compared to three steps of Newtons method with an
8
the secant method and inverse quadratic interpolation. At reduction O(|f(x)| ), giving a slight advantage to these
every iteration, Brents method decides which method out methods.
of these three is likely to do best, and proceeds by doing a When applying these methods to polynomials with real
step according to that method. This gives a robust and fast coecients and real starting points, Newtons and Halmethod, which therefore enjoys considerable popularity. leys method stay inside the real number line. One has to
choose complex starting points to nd complex roots. In
contrast, the Laguerre method with a square root in its
evaluation will on itself leave the real axis.
4 Finding roots of polynomials
Much attention has been given to the special case that
the function f is a polynomial, and there are several
root-nding algorithms for polynomials. For univariate
polynomials of degrees one (linear polynomial) through
four (quartic polynomial), there are closed-form solutions which produce all roots. Linear polynomials are
easy to solve, but using the quadratic formula to solve
quadratic (second degree) equations may require some

Another class of methods is based on translating the problem of nding polynomial roots to the problem of nding eigenvalues of the companion matrix of the polynomial. In principle, one can use any eigenvalue algorithm
to nd the roots of the polynomial. However, for eciency reasons one prefers methods that employ the structure of the matrix, that is, can be implemented in matrixfree form. Among these methods are the power method,
whose application to the transpose of the companion ma-

4.5

Method based on the BudanFourier theorem or Sturm chains

trix is the classical Bernoullis method to nd the root of


greatest modulus. The inverse power method with shifts,
which nds some smallest root rst, is what drives the
complex (cpoly) variant of the JenkinsTraub method and
gives it its numerical stability. Additionally, it is insensitive to multiple roots and has fast convergence with order
1 + 2.6 even in the presence of clustered roots. This
fast convergence comes with a cost of three Horner evaluations per step, resulting in a residual of O(|f(x)|2+3 ),
which is slower than three steps of Newtons method.

provide guides to locating and separating roots. This


plus interval arithmetic combined with Newtons method
yields robust and fast algorithms.
The LehmerSchur algorithm uses the SchurCohn test
for circles, Wilfs global bisection algorithm uses a winding number computation for rectangular regions in the
complex plane.

The splitting circle method uses FFT-based polynomial


transformations to nd large-degree factors corresponding to clusters of roots. The precision of the factorization is maximized using a Newton-type iteration. This
4.2 Finding roots in pairs
method is useful for nding the roots of polynomials of
high degree to arbitrary precision; it has almost optimal
If the given polynomial only has real coecients, one complexity in this setting.
may wish to avoid computations with complex numbers. To that eect, one has to nd quadratic factors
for pairs of conjugate complex roots. The application 4.5 Method based on the BudanFourier
of the multi-dimensional Newtons method to this task
theorem or Sturm chains
results in Bairstows method. In the framework of inverse power iterations of the companion matrix, the dou- The methods in this class give for polynomials with rable shift method of Francis results in the real (rpoly) vari- tional coecients, and when carried out in rational arithant of the JenkinsTraub method.
metic, provably complete enclosures of all real roots by

4.3

Finding all roots at once

The simple DurandKerner and the slightly more complicated Aberth methods simultaneously nd all of the roots
using only simple complex number arithmetic. Accelerated algorithms for multi-point evaluation and interpolation similar to the fast Fourier transform can help speed
them up for large degrees of the polynomial. It is advisable to choose an asymmetric, but evenly distributed set
of initial points.
Another method with this style is the Dandelin
Gre method (sometimes also falsely ascribed to
Lobachevsky), which uses polynomial transformations to
repeatedly and implicitly square the roots. This greatly
magnies variances in the roots. Applying Vietes formulas, one obtains easy approximations for the modulus of
the roots, and with some more eort, for the roots themselves.

4.4

Exclusion and enclosure methods

Several fast tests exist that tell if a segment of the real line
or a region of the complex plane contains no roots. By
bounding the modulus of the roots and recursively subdividing the initial region indicated by these bounds, one
can isolate small regions that may contain roots and then
apply other methods to locate them exactly.
All these methods require to nd the coecients of
shifted and scaled versions of the polynomial. For large
degrees, FFT-based accelerated methods become viable.
For real roots, Sturms theorem and Descartes rule of
signs with its extension in the BudanFourier theorem

rational intervals. The test of an interval for real roots using Budans theorem is computationally simple but may
yield false positive results. However, these will be reliably detected in the following transformation and renement of the interval. The test based on Sturm chains is
computationally more involved but gives always the exact
number of real roots in the interval.
The algorithm for isolating the roots, using Descartes
rule of signs and Vincents theorem, had been originally called modied Uspenskys algorithm by its inventors
Collins and Akritas.[1] After going through names like
CollinsAkritas method and Descartes method (too
confusing if ones considers Fouriers article[2] ), it was nally Franois Boulier, of Lille University, who gave it
the name VincentCollinsAkritas (VCA) method,[3] p.
24, based on Uspenskys method not existing[4] and
neither does Descartes method.[5] This algorithm has
been improved by Rouillier and Zimmerman,[6] and the
resulting implementation is, to date, the fastest bisection
method. It has the same worst case complexity as the
Sturm algorithm, but is almost always much faster. It
is the default algorithm of Maple root-nding function
fsolve. Another method based on Vincents theorem is
the VincentAkritasStrzeboski (VAS) method;[7] it has
been shown[8] that the VAS (continued fractions) method
is faster than the fastest implementation of the VCA (bisection) method,[6] which was independently conrmed
elsewhere;[9] more precisely, for the Mignotte polynomials of high degree, VAS is about 50,000 times faster than
the fastest implementation of VCA. VAS is the default algorithm for root isolation in Mathematica, Sage, SymPy,
Xcas. See Budans theorem for a description of the historical background of these methods. For a comparison
between Sturms method and VAS, use the functions realroot(poly) and time(realroot(poly)) of Xcas. By default,

to isolate the real roots of poly realroot uses the VAS


method; to use Sturms method, write realroot(sturm,
poly). See also the External links for a pointer to an
iPhone/iPod/iPad application that does the same thing.

4.6

Finding multiple roots of polynomials

Main article: Square-free factorization


Most root-nding algorithms behave badly when there are
multiple roots or very close roots. However, for polynomials whose coecients are exactly given as integers or
rational numbers, there is an ecient method to factorize
them into factors that have only simple roots and whose
coecients are also exactly given. This method, called
square-free factorization, is based on the multiple roots
of a polynomial being the roots of the greatest common
divisor of the polynomial and its derivative.
The square-free factorization of a polynomial p is a factorization p = p1 p22 pkk where each pi is either 1 or a
polynomial without multiple roots, and two dierent pi
do not have any common root.
An ecient method to compute this factorization is Yuns
algorithm.

See also
nth root algorithm
Broydens method
Multiplicity (mathematics)
Polynomial greatest common divisor
Polynomial
Graees method
Cryptographically secure pseudorandom number
generator a class of functions designed specically to be unsolvable by root-nding algorithms.
System of polynomial equations root-nding algorithms in the multivariate case

EXTERNAL LINKS

[1] Collins, George E.; Alkiviadis G. Akritas (1976).


Polynomial Real Root Isolation Using Descartes Rule of
Signs. SYMSAC '76, Proceedings of the third ACM symposium on Symbolic and algebraic computation. Yorktown Heights, NY, USA: ACM. pp. 272275.
[2] Fourier, Jean Baptiste Joseph (1820). Sur l'usage du
thorme de Descartes dans la recherche des limites des
racines (PDF). Bulletin des Sciences, par la Socit Philomatique de Paris: 156165.
[3] Boulier, Franois (2010). Systmes polynomiaux : que signie " rsoudre " ? (PDF). Universit Lille 1.
[4] Akritas, Alkiviadis G. (1986). Theres no Uspenskys
Method. In: Proceedings of the fth ACM Symposium
on Symbolic and Algebraic Computation (SYMSAC '86,
Waterloo, Ontario, Canada), pp. 8890.
[5] Akritas, Alkiviadis G. (2008). There is no Descartes
method (PDF). In: M.J.Wester and M. Beaudin (Eds),
Computer Algebra in Education, AullonaPress, USA, pp.
1935.
[6] F. Rouillier and P. Zimmerman, Ecient isolation of polynomials real roots, Journal of Computational and Applied
Mathematics 162 (2004)
[7] Akritas, Alkiviadis G.; A.W. Strzeboski, P.S. Vigklas
(2008). Improving the performance of the continued
fractions method using new bounds of positive roots
(PDF). Nonlinear Analysis: Modelling and Control 13:
265279.
[8] Akritas, Alkiviadis G.; Adam W. Strzeboski (2005). A
Comparative Study of Two Real Root Isolation Methods
(PDF). Nonlinear Analysis: Modelling and Control 10 (4):
297304.
[9] Tsigaridas, P.E.; I.Z. Emiris, (2006). Univariate polynomial real root isolation: Continued fractions revisited.
LNCS 4168: 817828. doi:10.1007/11841036_72.

Sources
Press, WH; Teukolsky, SA; Vetterling, WT; Flannery, BP (2007). Chapter 9. Root Finding and
Nonlinear Sets of Equations. Numerical Recipes:
The Art of Scientic Computing (3rd ed.). New
York: Cambridge University Press. ISBN 978-0521-88068-8.

7 External links
Animations for Fixed Point Iteration

MPSolve

GAMS: Roots of polynomials with real coecients

GNU Scientic Library

Free online polynomial root nder for both real and


complex coecients

References

Notes

Kehagias, Spyros: RealRoots, a free App for


iPhone, iPod Touch and iPad to compare Sturms
method and VAS https://itunes.apple.com/gr/app/
realroots/id483609988?mt=8

Text and image sources, contributors, and licenses

8.1

Text

Root-nding algorithm Source: http://en.wikipedia.org/wiki/Root-finding_algorithm?oldid=661463829 Contributors: The Anome,


Michael Hardy, Oyd11, Stevenj, Hike395, Charles Matthews, Jitse Niesen, Robbot, Jaredwf, Fredrik, Diberri, Giftlite, David Johnson, Leonard G., Frencheigh, Bender235, Elwikipedista~enwiki, Army1987, LutzL, Hermitian, Oleg Alexandrov, Linas, Decrease789,
Oliphaunt, Marshcmb, Rjwilmsi, Mathbot, RussBot, KSmrq, Cat2020, Bo Jacoby, KnightRider~enwiki, SmackBot, Adam majewski,
Bluebot, Berland, Wonderstruck, Romanski, Jrvz, EmreDuran, Rschwieb, Magmait, Gco, JRSpriggs, CRGreathouse, Catslash, Glrx,
JonMcLoone, Kakoui, Lingwitt, Anonymous Dissident, Raymondwinn, YSSYguy, Prohlep, Jaded-view, Mild Bill Hiccup, Rhubbarb,
Niceguyedc, UKoch, El bot de la dieta, Qwfp, Addbot, Ronhjones, Favonian, Uscitizenjason, Ptbotgourou, Hvestermark, QueenCake,
KamikazeBot, Joule36e5, Gtz, Ahmadabdolkader, Happyrabbit, GrouchoBot, FrescoBot, Lostella~enwiki, Denitsa The Truth Seeker,
Pinethicket, CaritasUbi, Jujutacular, Matthewmoncek, Dinamik-bot, EmausBot, John of Reading, WikitanvirBot, Immunize, Mmeijeri,
Access Denied, Quondum, D.Lazard, EdoBot, Thetwentyone, Frietjes, Mjpnijmeijer, Akritas2, Ahmadyan, Mogism, Lukesalamone, Mark
viking, Pdecalculus, Lakshmi7977, Ccmcc2012, Monkbot and Anonymous: 62

8.2

Images

8.3

Content license

Creative Commons Attribution-Share Alike 3.0

You might also like