Numerical computation of polynomial zeros by means of Aberth's method Article Received: 16 September 1995 DOI:
10.1007/BF02207694 Cite this article as: Bini, D.A. Numer Algor (1996) 13: 179. doi:10.1007/BF02207694 Abstract
An algorithm for computing polynomial zeros, based on Aberth's method, is presented. The starting approximations are chosen by means of a suitable application of Rouché's theorem. More precisely, an integer
q ≥ 1 and a set of annuli A i, i=1,..., q, in the complex plane, are determined together with the number k i of zeros of the polynomial contained in each annulus A i. As starting approximations we choose k i complex numbers lying on a suitable circle contained in the annulus A i, for i=1,..., q. The computation of Newton's correction is performed in such a way that overflow situations are removed. A suitable stop condition, based on a rigorous backward rounding error analysis, guarantees that the computed approximations are the exact zeros of a “nearby” polynomial. This implies the backward stability of our algorithm. We provide a Fortran 77 implementation of the algorithm which is robust against overflow and allows us to deal with polynomials of any degree, not necessarily monic, whose zeros and coefficients are representable as floating point numbers. In all the tests performed with more than 1000 polynomials having degrees from 10 up to 25,600 and randomly generated coefficients, the Fortran 77 implementation of our algorithm computed approximations to all the zeros within the relative precision allowed by the classical conditioning theorems with 11.1 average iterations. In the worst case the number of iterations needed has been at most 17. Comparisons with available public domain software and with the algorithm PA16AD of Harwell are performed and show the effectiveness of our approach. A multiprecision implementation in MATHEMATICA is presented together with the results of the numerical tests performed. ™ Keywords polynomial zeros Aberth's method numerical test starting approximations AMS subject classification 65H05 65Y20
Communicated by Å. Björck and M. Redivo-Zaglia
Work performed under the support of the ESPRIT BRA project 6846 POSSO (POlynomial System SOlving).
O. Aberth, Iteration methods for finding all zeros of a polynomial simultaneously, Math. Comp. 27(122) (1973) 339–344.
D. A. Adams, A stopping criterion for polynomial root finding, Comm. ACM 10 (1967) 655–658.
G. Alefeld and J. Herzberger, On the convergence speed of some algorithms for the simultaneous approximation of polynomial roots, SIAM J. Numer. Anal. 11(2) (1974) 237–243.
M. Ben-Or and P. Tiwari, Simple algorithms for approximating all roots of a polynomial with real roots, J. Complexity 6 (1990) 417–442.
D. Bini and G. Fiorentino, A multiprecision implementation of a poly-algorithm for univariate polynomial zeros, in:
Proc. of the POSSO Workshop on Software, eds. J. C. Faugère, J. Marchand and R. Rioboo (Paris, 1995).
W. Börsch-Supan, A-posteriori error bounds for the zeros of polynomials, Numer. Math. 5 (1963) 380–398.
D. Braess and K. P. Hadeler, Simultaneous inclusion of the zeros of a polynomial, Numer. Math. 21 (1973) 161–165.
C. Carstensen, Inclusion of the roots of a polynomial based on Gerschgorin's theorem, Numer. Math. 59 (1991) 349–360.
M. Cosnard and P. Fraigniaud, Asynchronous Durand-Kerner and Aberth polynomial root finding methods on a distributed memory multicomputer, Parallel Computing 89 (1990) 79–84.
D. K. Dunaway, Calculation of zeros of a real polynomial through factorization using Euclid's algorithm, SIAM J. Numer. Anal. 11(6) (1974) 1087–1104.
Solutions Numériques des Équations Algébriques, Tome 1: Equations du Type F(X)
Racines d'un Polynôme
(Masson, Paris 1960).
L. W. Ehrlich, A modified Newton method for polynomials, Comm. ACM 10(2) (1967) 107–108.
L. Elsener, A remark on simultaneous inclusions of the zeros of a polynomial by Gerschgorin's theorem, Numer. Math. 21 (1973) 425–427.
P. Fraigniaud, Analytic and asynchronous root finding methods on a distributed memory multicomputer, Research Report LIP-IMAG (1989).
P. Fraigniaud, The Durand-Kerner's polynomials root-finding method in case of multiple roots, BIT 31 (1991) 112–123.
I. Gargantini and P. Henrici, Circular arithmetic and the determination of polynomial zeros, Numer. Math. 18 (1972) 305–320.
W. Gautschi, Questions of numerical condition related to polynomials, in:
Recent Advances in Numerical Analysis
, eds. C. de Boor and G. H. Golub (Academic Press, New York, 1978) pp. 45–72.
M. W. Green, A. J. Korsak and M. C. Pease, Simultaneous iteration towards all roots of a complex polynomial, SIAM Rev. 18 (1976) 501–502.
H. Guggenheimer, Initial approximations in Durand-Kerner's root finding method, BIT 26 (1986) 537–539.
M. Gutknecht, A-posteriori error bounds for the zeros of a polynomial, Numer. Math. 20 (1972) 139–148.
E. Hansen, M. Patrick and J. Rusnak, Some modifications of Laguerre's method, BIT 17 (1977) 409–417.
Applied and Computational Complex Analysis, Vol. 1 (Wiley, 1974).
A. S. Householder, Generalization of an algorithm of Sebastião e Silva, Numer. Math. 16 (1971) 375–382.
A. S. Householder,
The Numerical Treatment of a Single Nonlinear Equation
(McGraw-Hill, Boston 1970).
M. Igarashi, A termination criterion for iterative methods used to find the zeros of polynomials, Math. Comp. 42 (1984) 165–171.
M. A. Jenkins and J. F. Traub, A three stage variable shift iteration for polynomial zeros and its relation to generalized Rayleigh iteration, Numer. Math. 14 (1970) 252–263.
I. O. Kerner, Ein Gesamtschrittverfahren zur Berechnung der Nullstellen von Polynomen, Numer. Math. 8 (1966) 290–294.
N. Kjurkchev and K. Mahdi, Some remarks on Dvorcuk's root-finding method, BIT 34 (1994) 318–322.
D. H. Lehmer, A machine method for solving polynomial equations, J. ACM 8 (1961) 151–162.
K. Madsen and K. Reid, Fortran subroutines for finding polynomial zeros, Report HL 75/1172(C13), Computer Science and Systems Divisions, A.E.R.E. Harwell, Oxford (1975).
J. M. McNamee, A bibliography on roots of polynomials, J. Comput. Appl. Math. 47 (1993) 391–394.
J. M. McNamee, A comparison of methods for terminating polynomial iterations, J. Comput. Appl. Math. 21 (1988) 239–244.
R. G. Moiser, Root neighborhoods of a polynomial, Math. Comp. 47 (1986) 265–273.
C. A. Neff, Specified precision polynomial root isolation is in NC, in:
Proc. 31st Annual IEEE Symp. on Foundation of Computer Science (IEEE Computer Science Press, 1990) pp. 152–162.
A. Ostrowski, On a theorem by J. L. Walsh concerning the moduli of roots of algebraic equations, Bull. Amer. Math. Soc. 47 (1941) 742–746.
V. Pan, On approximating complex polynomial zeros: modified quadtree (Weyl's) construction and improved Newton's iteration, in:
5th Annual ACM-SIAM Symposium on Discrete Algorithms, Arlington, VA (1994).
V. Pan, Sequential and parallel complexity of approximate evaluation of polynomial zeros, Comput. Math. Appl. 14(8) (1987) 591–622.
L. Pasquini and D. Trigiante, A globally convergent method for simultaneously finding polynomial roots, Math. Comp. 44(169) (1985) 135–149.
A. Schönhage, The fundamental theorem of algebra in terms of computational complexity, Technical Report, Mathematisches Institut der Universität Tübingen (1982).
Yu. V. Sidorov, M. V. Fedoryuk and M. I. Shabunin,
Lectures on the Theory of Functions of a Complex Variable
(Mir, Moscow, 1985).
S. Smale, The fundamental theorem of algebra and complexity theory, Bull. Amer. Math. Soc. 4(1) (1981) 1–36.
B. T. Smith, Error bounds for the zeros of a polynomial based upon Gerschgorin's theorem, J. ACM 17 (1970) 661–674.
G. W. Stewart, On the convergence of Sebastião e Silva's method for finding a zero of a polynomial, Math. Comp. 12 (1970) 458–460.
W. Werner, On the simultaneous determination of polynomial roots, in:
Lecture Notes in Mathematics 953
(Springer, Berlin, 1982) pp. 188–202.
J. H. Wilkinson, Practical problems arising in the solution of polynomial equations, J. Inst. Math. Appl. 8 (1971) 16–35.
Google Scholar Copyright information
© J.C. Baltzer AG, Science Publishers 1996