Lehmer–Schur algorithm
In mathematics, the Lehmer–Schur algorithm (named after Derrick Henry Lehmer and Issai Schur) is a root-finding algorithm extending the idea of enclosing roots like in the one-dimensional bisection method to the complex plane. It uses the Schur–Cohn test to test increasingly smaller disks for the presence or absence of roots. Alternative methods like Wilf's algorithm apply different tests to differently shaped areas but keep the idea of descent by subdivision.
The Lehmer method
The Schur–Cohn test described below allows to determine if a polynomial has no roots in the unit disk and in some cases to determine the exact number of roots. The method proposed by Lehmer test for the presence of roots of a polynomial on a collection of disks in the complex plane by applying the Schur–Cohn test to the shifted and scaled polynomial
Starting with c=0 and ρ=1, the radius in increased or decreased by factors of 2 until the annulus is found to contain roots. Then the method is recursively applied to the 8 disks with center , and initial radius (originally , which is slightly too small to cover the full annulus).
If after some recursions a small disk is found that contains only one root, this root is further approximated using Newton's method and then the polynomial is deflated by splitting off the corresponding linear factor. After that, the whole procedure is restarted.
Schur transformation of polynomials
Consider, as before, a polynomial with complex coefficients
Denote the reverse conjugate polynomial as . Then the Schur transform of is the polynomial
Since the highest degree coefficients cancel, , and the constant coefficient of is
- Lemma
- If , then and have the same number of roots inside the unit disk and on the unit circle.
- If , then has the same number of roots inside the unit disk as (and ) has outside, and both have the same number of roots on the unit circle.
This result is a consequence of Rouché's theorem.
Schur–Cohn test
Apply the Schur transform repeatedly, , let K be the first index with . Denote , and .
- Theorem
- If for all k = 1, 2, ..., K, then has no roots inside the unit disk.
- If exactly once, for , then p has roots inside the unit disk.
The first follows from the root number preserving property of the Schur transform. For the second, have no roots inside the unit disk or on the unit circle. has roots outside the unit disk, so that and thus also have the same number of roots inside the unit disk.
Variations on the subdivision idea
Wilf's global bisection algorithm
The aim of this algorithm is to find the roots of a function of one complex variable inside any rectangular region of the function's holomorphicity (i.e., analyticity).
The rectangle in question is quadrisected into four, congruent quarter rectangles. For each quarter, the image of the boundary is a curve in the complex plane. The argument principle is then applied to this path to find the winding number about the origin. Given that the function is analytic within each of these quarters, a nonzero winding number N (always an integer) identifies N zeros of the function inside the quarter in question by Rouché's theorem, each zero counted as many times as its multiplicity.
Analogously with the bisection method, the algorithm is then applied recursively to any quarter whose boundary has nonzero winding number to further refine the estimates of the zeros. The recursion is repeated until the zero-containing rectangles are either small enough that their centres give sufficiently accurate zero estimates or, alternatively, that another root-finding algorithm can be applied to the estimates to further refine them.
References
- D. H. Lehmer, (April 1961), "A Machine Method for Solving Polynomial Equations", Journal of the ACM 8 (2): 151–162, doi:10.1145/321062.321064
- Herbert S. Wilf (1978), "A Global Bisection Algorithm for Computing the Zeros of Polynomials in the Complex Plane", Journal of the ACM 25 (3), doi:10.1145/322077.322084
- Acton, Foreman S. (1970), "Chapter 7", Numerical Methods That Work (corrected ed.), Washington: Mathematical Association of America (published 1990), ISBN 0-88385-450-3.
- W. H. Press; B. P. Flannery; S. A. Teukolsky; W. T. Vetterling (1992), "9.5 Roots of Polynomials", Numerical Recipes in C: The Art of Scientific Computing, Cambridge University Press, p. 369, ISBN 0-521-43108-5
External links
- GAP Library, Lehrstuhl D fuer Mathematik, RWTH Aachen, Germany
- Jan van Leeuwen (January 1979): "On program efficiency and algebraic complexity" (or: how to compute the Schur transform of a complex polynomial). technical report RUU-CS-79~1. Department of Computer Science, University of Utrecht