Numerical Algorithms

, Volume 13, Issue 2, pp 179–200 | Cite as

Numerical computation of polynomial zeros by means of Aberth's method

  • Dario Andrea Bini
Article

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 annuliAi,i=1,...,q, in the complex plane, are determined together with the numberki of zeros of the polynomial contained in each annulusAi. As starting approximations we chooseki complex numbers lying on a suitable circle contained in the annulusAi, 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 

References

  1. [1]
    O. Aberth, Iteration methods for finding all zeros of a polynomial simultaneously, Math. Comp. 27(122) (1973) 339–344.Google Scholar
  2. [2]
    D. A. Adams, A stopping criterion for polynomial root finding, Comm. ACM 10 (1967) 655–658.Google Scholar
  3. [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. [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. [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. [6]
    W. Börsch-Supan, A-posteriori error bounds for the zeros of polynomials, Numer. Math. 5 (1963) 380–398.Google Scholar
  7. [7]
    D. Braess and K. P. Hadeler, Simultaneous inclusion of the zeros of a polynomial, Numer. Math. 21 (1973) 161–165.Google Scholar
  8. [8]
    C. Carstensen, Inclusion of the roots of a polynomial based on Gerschgorin's theorem, Numer. Math. 59 (1991) 349–360.Google Scholar
  9. [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. [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. [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. [12]
    L. W. Ehrlich, A modified Newton method for polynomials, Comm. ACM 10(2) (1967) 107–108.Google Scholar
  13. [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. [14]
    P. Fraigniaud, Analytic and asynchronous root finding methods on a distributed memory multicomputer, Research Report LIP-IMAG (1989).Google Scholar
  15. [15]
    P. Fraigniaud, The Durand-Kerner's polynomials root-finding method in case of multiple roots, BIT 31 (1991) 112–123.Google Scholar
  16. [16]
    I. Gargantini and P. Henrici, Circular arithmetic and the determination of polynomial zeros, Numer. Math. 18 (1972) 305–320.Google Scholar
  17. [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. [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. [19]
    H. Guggenheimer, Initial approximations in Durand-Kerner's root finding method, BIT 26 (1986) 537–539.Google Scholar
  20. [20]
    M. Gutknecht, A-posteriori error bounds for the zeros of a polynomial, Numer. Math. 20 (1972) 139–148.Google Scholar
  21. [21]
    E. Hansen, M. Patrick and J. Rusnak, Some modifications of Laguerre's method, BIT 17 (1977) 409–417.Google Scholar
  22. [22]
    P. Henrici,Applied and Computational Complex Analysis, Vol. 1 (Wiley, 1974).Google Scholar
  23. [23]
    A. S. Householder, Generalization of an algorithm of Sebastião e Silva, Numer. Math. 16 (1971) 375–382.Google Scholar
  24. [24]
    A. S. Householder,The Numerical Treatment of a Single Nonlinear Equation (McGraw-Hill, Boston 1970).Google Scholar
  25. [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. [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. [27]
    I. O. Kerner, Ein Gesamtschrittverfahren zur Berechnung der Nullstellen von Polynomen, Numer. Math. 8 (1966) 290–294.Google Scholar
  28. [28]
    N. Kjurkchev and K. Mahdi, Some remarks on Dvorcuk's root-finding method, BIT 34 (1994) 318–322.Google Scholar
  29. [29]
    D. H. Lehmer, A machine method for solving polynomial equations, J. ACM 8 (1961) 151–162.Google Scholar
  30. [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. [31]
    J. M. McNamee, A bibliography on roots of polynomials, J. Comput. Appl. Math. 47 (1993) 391–394.Google Scholar
  32. [32]
    J. M. McNamee, A comparison of methods for terminating polynomial iterations, J. Comput. Appl. Math. 21 (1988) 239–244.Google Scholar
  33. [33]
    R. G. Moiser, Root neighborhoods of a polynomial, Math. Comp. 47 (1986) 265–273.Google Scholar
  34. [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. [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. [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. [37]
    V. Pan, Sequential and parallel complexity of approximate evaluation of polynomial zeros, Comput. Math. Appl. 14(8) (1987) 591–622.Google Scholar
  38. [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. [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. [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. [41]
    S. Smale, The fundamental theorem of algebra and complexity theory, Bull. Amer. Math. Soc. 4(1) (1981) 1–36.Google Scholar
  42. [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. [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. [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. [45]
    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

Authors and Affiliations

  • Dario Andrea Bini
    • 1
  1. 1.Dipartimento di MatematicaUniversità di PisaPisaItaly

Personalised recommendations