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 integerq ≥ 1 and a set of annuliA _{i} ,i =1,...,q , in the complex plane, are determined together with the numberk _{i} of zeros of the polynomial contained in each annulusA _{i} . As starting approximations we choosek _{i} complex numbers lying on a suitable circle contained in the annulusA _{i} , fori =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).

References [1]

O. Aberth, Iteration methods for finding all zeros of a polynomial simultaneously, Math. Comp. 27(122) (1973) 339–344.

Google Scholar [2]

D. A. Adams, A stopping criterion for polynomial root finding, Comm. ACM 10 (1967) 655–658.

Google Scholar [3]

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.

Google Scholar [4]

M. Ben-Or and P. Tiwari, Simple algorithms for approximating all roots of a polynomial with real roots, J. Complexity 6 (1990) 417–442.

Google Scholar [5]

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).

Google Scholar [6]

W. Börsch-Supan, A-posteriori error bounds for the zeros of polynomials, Numer. Math. 5 (1963) 380–398.

Google Scholar [7]

D. Braess and K. P. Hadeler, Simultaneous inclusion of the zeros of a polynomial, Numer. Math. 21 (1973) 161–165.

Google Scholar [8]

C. Carstensen, Inclusion of the roots of a polynomial based on Gerschgorin's theorem, Numer. Math. 59 (1991) 349–360.

Google Scholar [9]

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.

Google Scholar [10]

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.

Google Scholar [11]

E. Durand,

Solutions Numériques des Équations Algébriques, Tome 1: Equations du Type F(X) =0;

Racines d'un Polynôme (Masson, Paris 1960).

Google Scholar [12]

L. W. Ehrlich, A modified Newton method for polynomials, Comm. ACM 10(2) (1967) 107–108.

Google Scholar [13]

L. Elsener, A remark on simultaneous inclusions of the zeros of a polynomial by Gerschgorin's theorem, Numer. Math. 21 (1973) 425–427.

Google Scholar [14]

P. Fraigniaud, Analytic and asynchronous root finding methods on a distributed memory multicomputer, Research Report LIP-IMAG (1989).

Google Scholar [15]

P. Fraigniaud, The Durand-Kerner's polynomials root-finding method in case of multiple roots, BIT 31 (1991) 112–123.

Google Scholar [16]

I. Gargantini and P. Henrici, Circular arithmetic and the determination of polynomial zeros, Numer. Math. 18 (1972) 305–320.

Google Scholar [17]

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.

Google Scholar [18]

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.

Google Scholar [19]

H. Guggenheimer, Initial approximations in Durand-Kerner's root finding method, BIT 26 (1986) 537–539.

Google Scholar [20]

M. Gutknecht, A-posteriori error bounds for the zeros of a polynomial, Numer. Math. 20 (1972) 139–148.

Google Scholar [21]

E. Hansen, M. Patrick and J. Rusnak, Some modifications of Laguerre's method, BIT 17 (1977) 409–417.

Google Scholar [22]

P. Henrici,

Applied and Computational Complex Analysis , Vol. 1 (Wiley, 1974).

Google Scholar [23]

A. S. Householder, Generalization of an algorithm of Sebastião e Silva, Numer. Math. 16 (1971) 375–382.

Google Scholar [24]

A. S. Householder,

The Numerical Treatment of a Single Nonlinear Equation (McGraw-Hill, Boston 1970).

Google Scholar [25]

M. Igarashi, A termination criterion for iterative methods used to find the zeros of polynomials, Math. Comp. 42 (1984) 165–171.

Google Scholar [26]

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.

Google Scholar [27]

I. O. Kerner, Ein Gesamtschrittverfahren zur Berechnung der Nullstellen von Polynomen, Numer. Math. 8 (1966) 290–294.

Google Scholar [28]

N. Kjurkchev and K. Mahdi, Some remarks on Dvorcuk's root-finding method, BIT 34 (1994) 318–322.

Google Scholar [29]

D. H. Lehmer, A machine method for solving polynomial equations, J. ACM 8 (1961) 151–162.

Google Scholar [30]

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).

Google Scholar [31]

J. M. McNamee, A bibliography on roots of polynomials, J. Comput. Appl. Math. 47 (1993) 391–394.

Google Scholar [32]

J. M. McNamee, A comparison of methods for terminating polynomial iterations, J. Comput. Appl. Math. 21 (1988) 239–244.

Google Scholar [33]

R. G. Moiser, Root neighborhoods of a polynomial, Math. Comp. 47 (1986) 265–273.

Google Scholar [34]

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.

Google Scholar [35]

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.

Google Scholar [36]

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).

Google Scholar [37]

V. Pan, Sequential and parallel complexity of approximate evaluation of polynomial zeros, Comput. Math. Appl. 14(8) (1987) 591–622.

Google Scholar [38]

L. Pasquini and D. Trigiante, A globally convergent method for simultaneously finding polynomial roots, Math. Comp. 44(169) (1985) 135–149.

Google Scholar [39]

A. Schönhage, The fundamental theorem of algebra in terms of computational complexity, Technical Report, Mathematisches Institut der Universität Tübingen (1982).

Google Scholar [40]

Yu. V. Sidorov, M. V. Fedoryuk and M. I. Shabunin,

Lectures on the Theory of Functions of a Complex Variable (Mir, Moscow, 1985).

Google Scholar [41]

S. Smale, The fundamental theorem of algebra and complexity theory, Bull. Amer. Math. Soc. 4(1) (1981) 1–36.

Google Scholar [42]

B. T. Smith, Error bounds for the zeros of a polynomial based upon Gerschgorin's theorem, J. ACM 17 (1970) 661–674.

Google Scholar [43]

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.

Google Scholar [44]

W. Werner, On the simultaneous determination of polynomial roots, in:

Lecture Notes in Mathematics 953 (Springer, Berlin, 1982) pp. 188–202.

Google Scholar [45]

J. H. Wilkinson, Practical problems arising in the solution of polynomial equations, J. Inst. Math. Appl. 8 (1971) 16–35.

Google Scholar © J.C. Baltzer AG, Science Publishers 1996

Authors and Affiliations 1. Dipartimento di Matematica Università di Pisa Pisa Italy