Jenkins–Traub algorithm

This is an old revision of this page, as edited by Apapageorgiou (talk | contribs) at 14:12, 6 July 2007. The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

The Jenkins-Traub algorithm for polynomial zeros is a fast globaly convergent iterative method. It has been described as practically a standard in black-box polynomial root-finders.

Given a polynomial ,

with complex coefficients compute approximations to the zeros of .

There is a variation of the Jenkins-Traub algorithm which is faster if the coefficients are real. The Jenkins-Traub algorithm has stimulated considerably research on theory and software for methods of this type.

Overview

The Jenkins-traub algorithm is a three-stage process for calculating the zeros of a polynomial with complexi coefficents. See Jenkins and Traub A Three-Stage Variable-Shift Iteration for Polynomial Zeros and Its Relation to Generalized Rayleigh Iteration.[1] The algorithm is similar in spirit to the two-stage algorithm studied by Traub; A class of Globally Convergent Iteration Functions for the Solution of Polynomial Equations.[2]

The three-stages of the Jenkins-traub algorith follow:

  • Stage One: No-Shift Process.

This stage is not necessay from theoretical considerations but is useful in practice.

  • Stage Two: Fixed-Shisft Process.

A sequence of polynomials   is generated,  .

  • Stage Three: Variable-Shift Process.

The   are now generated using the variable shift   which are generated by

 

where   is   divided by its leading coefficient.

It can be shown that provided   chosen sufficiently large   always converges to a zero of   and that the rate of convergence is faster than quadratic. After an approximate zero has been found the degree of   is reduced by one by deflation and the algorithm is performed on the new polynomial until all the zeros have been computed.

The algorithm converges for any distribution of zeros. Furthermore, the convergence is faster than the quadratic convergence of Newton-Raphon iteration.

What Gives the Algorithm its Power?

What gives the jenkins-Traub algorithm its power? Lets compare with Newton-Raphson iteration

 

Note the iteration used the given   and  . In contrast the thirg-stage of Jenkins-Traub

 

is precisely a Newton-Raphson iteration performed on certain rational functions. More precisely, Newton-Raphon is being performed on a sequence of rational functions  . For   sufficiently large,   is as close as desired to a first degree polynomial  , where   is one of the zeros of  . Even though Stage 3 is precisely a Newton-raphons iteration differentiation is not performed.

Real Coefficients

The Jenkins-Traub algorithm described in the previous Section works for polynomials with complex coefficients. The same authors also created a three-stage algorithm for polynomials with real coefficients. See Jenkins and Traub A Three-Stage Algorithm for Real Polynomials Using Quadratic Iteration.[3] The algorithm finds either a linear or quadratic factor working completely in real arithmetic. If the complex and the real algorithms are applied to the same real polynomial, the real algorithm is about four times as fast. The real algorithm always converges and the rate of convergence is greater than second order.

A Connection with the Shifted QR Algorithm

There is a surprising connection with the shifted QR algorithm for computing matrix eigenvalues. See Dekker and Traub The shifted QR algorithm for Hermitian matrices.[4] Again the shifts may be viewed as Newton-Raphson iteration on a sequence of rational functions converging to a first degree polynomial.

Software and Testing

The software for the Jenkins-traub algorithm was published as Jenkins and Traub Algorithm 419: Zeros of a Complex Polynomial.[5] The software for the real algorithm was published as Jenkins Algorithm 493: Zeros of a Real Polynomial.[6]

The software has been extensively tested by many people and shown to be very robust in fixed precision floating point arithmetic. It has been described as practically a standard in black-box polynomial root finders; see Press, et al. Numerical Recipes.[7]. However there are polunomials which can cause loss of precision. Here's an example from ????

The polynomial has all its zeros lying on two half-circles of different radii. Wilkinson recommends that it is desirable for ???? deflation that smaller zeros be computed first. The second-stage shifts are closer so that the zeros on the smaller half circle are found first. After deflation the polynomial with the zeros on on the half circle is known to be ill-conditioned if the degree is large. See Wilkinson[8], p. 64. The original polynomial was of degree 60 and suffered severe deflation instability.

References

Ralston, A. and Rabinowitz, P. (1978), A First Course in Numerical Analysis, 2nd ed., McGraw-Hill, New York.

  1. ^ Jenkins, M. A. and Traub, J. F. (1968), A Three-Stage Variables-Shift Iteration for Polynomial Zeros and Its Relation to Generalized Rayleigh Iteration, Numer. Math. 14, 252-263.
  2. ^ Traub, J. F. (1966), A Class of Globally Convergent Iteration Functions for the Solution of Polynomial Equations, Math. Comp., 20(93), 113-138.
  3. ^ Jenkins, M. A. and Traub, J. F. (1970), A Three-Stage Algorithm for Real Polynomials Using Quadratic Iteration, SIAM J. Numer. Anal., 7(4), 545-566.
  4. ^ Dekker, T. J. and Traub, J. F. (1971), The shifted QR algorithm for Hermitian matrices, Lin. Algebra Appl., 4(2), 137-154.
  5. ^ Jenkins, M. A. and Traub, J. F. (1972), Algorithm 419: Zeros of a Complex Polynomial, Comm. ACM, 15, 97-99.
  6. ^ Jenkins, M. A. (1975), Algorithm 493: Zeros of a Real Polynomial, ACM TOMS, 1, 178-189.
  7. ^ Press, W. H., Teukolsky, S. A., Vetterling, W. T. and Flannery, B. P. (2002), Numerical Recipes in C++: The Art of Scientific Computing, 2nd. ed., Cambridge University Press, New York.
  8. ^ Wilkinson, J. H. (1963), Rounding Errors in Algebraic Processes, Prentice Hall, Englewood Cliffs, N.J.