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

Dario Andrea Bini
DOI: https://doi.org/10.1007/bf02207694
IF: 2.37
1996-02-01
Numerical Algorithms
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.
mathematics, applied
What problem does this paper attempt to address?