Jenkins–Traub algorithm

This is an old revision of this page, as edited by LutzL (talk | contribs) at 16:25, 3 August 2009 (As inverse power iteration: restructured contents). 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 globally convergent iterative method. It has been described as practically a standard in black-box polynomial root-finders.

Given a polynomial P,

with complex coefficients compute approximations to the n zeros of P(z). There is a variation of the Jenkins-Traub algorithm which is faster if the coefficients are real. The Jenkins-Traub algorithm has stimulated considerable 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 complex coefficents. See Jenkins and Traub[1] . A description can also be found in Ralston and Rabinowitz[2] p. 383. The algorithm is similar in spirit to the two-stage algorithm studied by Traub[3].

During the stages of the algorithm, a sequence   of polynomials of degree (n-1) and a sequence of complex shifts   are constructed. The stages differ in the determination of the shifts, the construction of the polynomials is a recursive procedure dependent on the sequence of shifts, where   and

 .

Since the numerator has by construction a root at   the division can be carried out without remainder, for instance by using the Horner scheme or Ruffini rule to compute quotient and remainder in

 

The three-stages of the algorithm are these:

  • Stage One: No-Shift Process. For   set  . Usually M=5 is choosen for polynomials of moderate degrees up to n=50. This stage is not necessary from theoretical considerations alone, but is useful in practice.
  • Stage Two: Fixed-Shift Process. One tries to locate the smallest root of the polynomial by estimating the inner root radius and chosing a random point   on the circle of this radius. The sequence of polynomials  ,  , is generated with the fixed shift value  . Typically one uses L=M+9 for polynomials of moderate degree.
  • Stage Three: Variable-Shift Process. The   are now generated using the variable shifts   which are generated by
     
where   is   divided by its leading coefficient.

If the step size in stage three does not fall fast enough to zero, then stage two is restarted using a different random point. If this does not succeed after a small number of restarts, the number of steps in stage two is doubled.

It can be shown that, provided L is chosen sufficiently large, sλ always converges to a zero of P. After an approximate zero has been found the degree of P 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-Raphson iteration.

What gives the algorithm its power?

Compare with the Newton-Raphson iteration

 

The iteration uses the given P and  . In contrast the third-stage of Jenkins-Traub

 

is precisely a Newton-Raphson iteration performed on certain rational functions. More precisely, Newton-Raphson 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-Raphson iteration, differentiation is not performed.

As inverse power iteration

All stages of the Jenkins-Traub complex algorithm may be represented as the linear algebra problem of determining the eigenvalues of a special matrix. This matrix is the coordinate representation of a linear map in the n-dimensional space of polynomials of degree n-1 or less. The principal idea of this map is to interpret the factorization

 

with a root   and   the remaining factor of degree n-1 as the eigenvector equation for the multiplication with the variable X, followed by remainder computation with divisor P(X),

 

This maps polynomials of degree at most n-1 to polynomials of degree at most n-1. The eigenvalues of this map are the roots of P(X), since the eigenvector equation reads

 

which implies that  , that is,   is a linear factor of P(X). In the monomial basis the linear map   is represented by a companion matrix of the polynomial P, as

 

the resulting coefficient matrix is

 

To this matrix the inverse power iteration is applied in three variants in the three stages of the algorithm. It is more efficient to perform the linear algebra operations in polynomial arithmetic and not by matrix operations, however, the properties of the inverse power iteration remain the same.

Stage 1: Here the inverse power iteration without shift

  resp.  ,

is used. In the second variant   is a normalized multiple of  , with the normalization fixing the norm of the vector or some coordinate of it to be 1. This variant approximates the smallest eigenvalue, that is the smallest root of P(X). The convergence is of linear order with a factor that is the quotient of the smallest (in absolute value) and next-to-smallest eigenvalue. This only works if the there is only one eigenvalue with a minimal distance to zero.

Stage 2: This step uses the inverse power iteration in the variant with a constant shift s. In consequnce, it is computing the smallest eigenvalue of   by

  resp.  ,

If the shift s is close to the smallest eigenvalue  , then the smallest eigenvalue of the shifted matrix is   which is close to zero. The convergence has an order of

 

which is the faster the smaller   is.

Stage 3: Here the shift is updated every step using

  and  

to obtain an update to   from the growth factor between   and  ,

 

with some linear functional L. If   denotes the distance of the normalized iteration vector   from the eigenspace of  , then one gets the for the convergence speed the recursions

  and  

resulting in an asymptotic convergence order of  , where   is the golden ratio.


To solve the polynomial identity representing the inverse power iteration, one has to find a factor   such that

 

Evaluating at   one arrives at  , and by degree computation one concludes that   is a constant polynomial. Then the equation is solved by exact polynomial division giving

 

which is the unnormalized iteration for the polynomial sequence  . Comparing the leading coefficients (LC) of this sequence one finds that

 

such that the iteration for the normalized H polynomials reads as

 

In the additional evaluation of the third stage one only needs the fraction of the leading coefficients,

 

from where the update formula

  results.

Real coefficients

The Jenkins-Traub algorithm described earlier 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.[4] The algorithm finds either a linear or quadratic factor working completely in real arithmetic. If the complex and 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.[5] 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.[6] The software for the real algorithm was published as Jenkins Algorithm 493: Zeros of a Real Polynomial.[7]

The methods have been extensively tested by many people. As predicted they enjoy faster than quadratic convergence for all distributions of zeros. They have been described as practically a standard in black-box polynomial root finders; see Press, et al., Numerical Recipes,[8] p. 380.

However there are polynomials which can cause loss of precision as illustrated by the following example. The polynomial has all its zeros lying on two half-circles of different radii. Wilkinson recommends that it is desirable for stable deflation that smaller zeros be computed first. The second-stage shifts are chosen so that the zeros on the smaller half circle are found first. After deflation the polynomial with the zeros on the half circle is known to be ill-conditioned if the degree is large; see Wilkinson,[9] p. 64. The original polynomial was of degree 60 and suffered severe deflation instability.

References

  1. ^ Jenkins, M. A. and Traub, J. F. (1970), A Three-Stage Variables-Shift Iteration for Polynomial Zeros and Its Relation to Generalized Rayleigh Iteration, Numer. Math. 14, 252-263.
  2. ^ Ralston, A. and Rabinowitz, P. (1978), A First Course in Numerical Analysis, 2nd ed., McGraw-Hill, New York.
  3. ^ Traub, J. F. (1966), A Class of Globally Convergent Iteration Functions for the Solution of Polynomial Equations, Math. Comp., 20(93), 113-138.
  4. ^ 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.
  5. ^ Dekker, T. J. and Traub, J. F. (1971), The shifted QR algorithm for Hermitian matrices, Lin. Algebra Appl., 4(2), 137-154.
  6. ^ Jenkins, M. A. and Traub, J. F. (1972), Algorithm 419: Zeros of a Complex Polynomial, Comm. ACM, 15, 97-99.
  7. ^ Jenkins, M. A. (1975), Algorithm 493: Zeros of a Real Polynomial, ACM TOMS, 1, 178-189.
  8. ^ 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.
  9. ^ Wilkinson, J. H. (1963), Rounding Errors in Algebraic Processes, Prentice Hall, Englewood Cliffs, N.J.