Lehmer–Schur algorithm: Difference between revisions

Content deleted Content added
eponyms
Added short description
Tags: Mobile edit Mobile app edit Android app edit App description add
 
(48 intermediate revisions by 27 users not shown)
Line 1:
{{Short description|Root-finding algorithm}}
In [[mathematics]], the '''Lehmer–Schur algorithm''' (named after [[Derrick Henry Lehmer]] and [[Issai Schur]]) is a [[root-finding algorithm]] for [[complex polynomial]]s, extending the one-dimensionalidea bracketingof usedenclosing byroots like in the one-dimensional [[bisection method]] to find the rootscomplex ofplane. aIt functionuses ofthe oneSchur-Cohn complextest variableto insidetest anyincreasingly rectangularsmaller regiondisks offor the function'spresence [[Holomorphicor function|holomorphicity]]absence (''i.e.'',of [[Analytic function|analyticity]])roots.
 
==Schur-Cohn algorithm==
The rectangle in question is quadrisected into four, [[Congruence (geometry)|congruent]] quarter rectangles. The [[argument principle]] is then applied to the boundary of each quarter to find the [[winding number]] (about the origin) for the boundary. Given that the function is [[Analytic function|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, each zero counted as many times as its [[multiplicity]].
This [[algorithm]] allows one to find the distribution of the roots of a complex polynomial with respect to the [[unit circle]] in the complex plane.<ref>{{cite journal |last1=Cohn |first1=A |title=Uber die Anzahl der Wurzeln einer algebraischen Gleichung in einem Kreise. |journal=Math. Z. |date=1922 |volume=14 |pages=110–148 |doi=10.1007/BF01215894 |url=http://gdz.sub.uni-goettingen.de/dms/load/img/?PPN=PPN266833020_0014&DMDID=dmdlog10|hdl=10338.dmlcz/102550 |s2cid=123129925 |hdl-access=free }}</ref><ref name="Henrici">{{cite book |last1=Henrici |first1=Peter |title=Applied and computational complex analysis. Volume I: Power series- integration-conformal mapping-___location of zeros. |date=1988 |publisher=New York etc.: John Wiley |isbn=0-471-60841-6 |pages=xv + 682 |edition= Repr. of the orig., publ. 1974 by John Wiley \& Sons Ltd., Paperback}}</ref><ref>{{cite book |last1=Marden |first1=Morris |title=The geometry of the zeros of a polynomial in a complex variable. |date=1949 |publisher=Mathematical Surveys. No. 3. New York: American Mathematical Society (AMS). |page=148 }}</ref> It is based on two auxiliary polynomials, introduced by Schur.<ref>{{cite journal |last1=Schur |first1=I |title=Über Potenzreihen, die im Innern des Einheitskreises beschränkt sind. |journal=Journal für die reine und angewandte Mathematik |date=1917 |volume=1917 |issue=147 |pages=205–232 |doi=10.1515/crll.1917.147.205 |s2cid=199546483 |url=http://gdz.sub.uni-goettingen.de/dms/load/img/?PID=GDZPPN00216860X}}</ref>
 
For a complex polynomial <math>p</math> of [[degree of a polynomial|degree]] <math>n</math> its ''reciprocal adjoint polynomial'' <math>p^{*}</math> is defined by <math>p^{*}(z) = z^{n}\overline{p(\bar{z}^{-1})} </math> and its ''Schur Transform'' <math>Tp</math> by
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.
 
:<math>
==References==
Tp =\overline{p(0)}p-\overline{p^*(0)}p^*,
</math>
where a bar denotes [[complex conjugate|complex conjugation]].
 
So, if <math> p(z) = a_{n}z^{n}+\cdots+a_{1}z +a_{0} </math> with <math>a_n\neq 0</math>, then
* {{cite
<math> p^{*}(z) = \bar{a}_{0}z^{n}+ \bar{a}_{1}z^{n-1}+\cdots+\bar{a}_{n}</math>,
|author=Acton, Foreman S.
with [[polynomial|leading zero-terms]], if any, removed. The [[polynomial|coefficients]] of <math>Tp</math> can therefore be directly expressed in those of <math>p</math> and, since one or more leading coefficients cancel, <math>Tp</math> has lower degree than <math>p</math>. The roots of <math>p</math>, <math>p^{*}</math>, and <math>Tp</math> are related as follows.
|title=Numerical Methods That Work
|date=1970
|publication-date=1990
|edition=corrected
|place=Washington
|publisher=[[Mathematical Association of America]]
|page=Chapter 7
|isbn=0-88385-450-3}}.
 
;Lemma
* W. H. Press, B. P. Flannery, S. A. Teukolsky, W. T. Vetterling, ''[[Numerical Recipes|Numerical Recipes in C: The Art of Scientific Computing]]'', Cambridge University Press, 1992. ISBN 0-521-43108-5 (available free online, with code samples: [http://www.nrbook.com/a/bookcpdf.html]), section 9.5.
Let <math>p</math> be a complex polynomial and <math>\delta = (Tp)(0)</math>.
*The roots of <math>p^{*}</math>, including their [[Multiplicity (mathematics)|multiplicities]], are the images under [[Circle inversion|inversion]] in the unit circle of the non-zero roots of <math>p</math>.
* If <math>\delta \neq 0</math>, then <math>p,\,p^*</math>, and <math>Tp</math> share roots on the unit circle, including their multiplicities.
* If <math>\delta>0</math>, then <math>p</math> and <math>Tp</math> have the same number of roots inside the unit circle.
* If <math>\delta<0</math>, then <math>p^*</math> and <math>Tp</math> have the same number of roots inside the unit circle.
 
;Proof
For <math>z\neq 0</math> we have <math>p^*(z)=z^n \overline{p(z/|z|^2)}</math> and, in particular,
<math>|p^*(z)| = |p(z)|</math> for <math>|z|=1</math>.
Also <math>\delta \neq 0</math> implies <math>|p(0)| \neq |p^*(0)|</math>. From this and the definitions above the first two statements follow.
The other two statements are a consequence of [[Rouché's theorem]] applied on the unit circle to the functions <math>\overline{p(0)}p(z)/r(z)</math> and <math>-\overline{p^*(0)}p^*(z)/r(z)</math> , where <math>r</math> is a polynomial that has as its roots the roots of <math>p</math> on the unit circle, with the same multiplicities. □
 
For a more accessible representation of the lemma,
let <math>n^-_p,n^0_p</math>, and <math>n^+_p</math> denote the number of roots of <math>p</math> inside, on, and outside the unit circle respectively and similarly for <math>Tp</math>.
Moreover let <math>d</math> be the difference in degree of <math>p</math> and <math>Tp</math>. Then the lemma implies that
<math> (n^-_p,\;n^0_p,\;n^+_p)=(n^-_{Tp},\;n^0_{Tp},\;n^+_{Tp}+d)</math> if <math>\delta>0</math> and
<math> (n^-_p,\;n^0_p,\;n^+_p)=(n^+_{Tp}+d,\;n^0_{Tp},\;n^-_{Tp})</math> if <math>\delta<0</math>
(note the interchange of <math>^+</math> and <math>^-</math>).
 
Now consider the sequence of polynomials <math>T^{k}p</math> <math>(k=0,1,\ldots)</math>, where <math>T^0 p=p</math> and <math>T^{k+1}p=T(T^{k}p)</math>.
Application of the foregoing to each pair of consecutive members of this sequence gives the following result.
 
;Theorem[Schur-Cohn test]
Let <math>p</math> be a complex polynomial with <math>Tp\neq0</math> and let <math>K</math> be the smallest number such that <math>T^{K+1}p=0</math>. Moreover let <math>\delta_k=(T^{k}p)(0)</math> for <math>k=1,\ldots,K</math> and <math>d_{k}= \deg T^{k}p</math> for <math>k=0,\ldots,K</math>.
* All roots of <math>p</math> lie inside the unit circle if and only if
<math>\delta_1<0</math>, <math>\delta_k>0</math> for <math>k=2,\ldots,K</math>, and <math>d_{K}=0</math>.
* All roots of <math>p</math> lie outside the unit circle if and only if
<math>\delta_k>0</math> for <math>k=1,\ldots,K</math> and <math>d_{K}=0</math>.
* If <math>d_{K}=0</math> and if <math>\delta_k < 0 </math> for <math>k=k_0,k_1 \ldots k_m</math> (in increasing order) and <math>\delta_k > 0 </math> otherwise, then <math>p</math> has no roots on the unit circle and the number of roots of <math>p</math> inside the unit circle is
:<math>
\sum_{i=0}^m (-1)^i d_{k_i-1}
</math>.
 
More generally, the distribution of the roots of a polynomial <math>p</math> with respect to an arbitrary circle in the complex plane, say one with centre <math>c</math> and radius <math>\rho</math>, can be found by application of the Schur-Cohn test to the 'shifted and scaled' polynomial <math>q</math> defined by <math>q(z)=p(c+\rho\,z)</math>.
 
Not every scaling factor is allowed, however, for the Schur-Cohn test can be applied to the polynomial <math>q</math> only if none of the following equalities occur: <math>T^{k}q(0)=0</math> for some <math>k=1,\ldots K</math> or <math>T^{K+1}q=0</math> while <math>d_K>0</math>. Now, the coefficients of the polynomials <math>T^{k}q</math> are polynomials in <math>\rho</math> and the said equalities result in polynomial equations for <math>\rho</math>, which therefore hold for only finitely many values of <math>\rho</math>. So a suitable scaling factor can always be found, even arbitrarily close to <math>1</math>.
 
==Lehmer's method==
 
Lehmers method is as follows.
<ref>{{cite journal |last1=Lehmer |first1=D.H. |title=A machine method for solving polynomial equations. |journal=Journal of the Association for Computing Machinery |date=1961 |volume=8 |issue=2 |pages=151–162 |doi=10.1145/321062.321064|s2cid=17667943 |doi-access=free }}</ref>
For a given complex polynomial <math>p</math>, with the Schur-Cohn test a circular disk can be found large enough to contain all roots of <math>p</math>. Next this disk can be covered with a set of overlapping smaller disks, one of them placed concentrically and the remaining ones evenly spread over the annulus yet to be covered. From this set, using the test again, disks containing no root of <math>p</math> can be removed. With each of the remaining disks this procedure of covering and removal can be repeated and so any number of times, resulting in a set of arbitrarily small disks that together contain all roots of <math>p</math>.
 
The merits of the method are that it consists of repetition of a single procedure and that all roots are found simultaneously, whether they are real or complex, single, multiple or clustered. Also deflation, i.e. removal of roots already found, is not needed and every test starts with the full-precision, original polynomial. And, remarkably, this polynomial has never to be evaluated.
 
However, the smaller the disks become, the more the coefficients of the corresponding 'scaled' polynomials will differ in relative magnitude. This may cause overflow or underflow of computer computations, thus limiting the radii of the disks from below and thereby the precision of the computed roots.
<ref name="Henrici" />
.<ref>{{cite journal |last1=Stewart |first1=G.W.III |title=On Lehmer's method for finding the zeros of a polynomial. |journal=Math. Comput. |date=1969 |volume=23 |issue=108 |pages=829–835 |doi=10.2307/2004970|jstor=2004970 }}</ref>
To avoid extreme scaling, or just for the sake of efficiency, one may start with testing a number of concentric disks for the number of included roots and thus reduce the region where roots occur to a number of narrow, concentric annuli. Repeating this procedure with another centre and combining the results, the said region becomes the union of intersections of such annuli.
<ref>{{cite journal |last1=Loewenthal |first1=Dan |title=Improvement on the Lehmer-Schur root detection method. |journal=J. Comput. Phys. |date=1993 |volume=109 |issue=2 |pages=164–168 |doi=10.1006/jcph.1993.1209|bibcode=1993JCoPh.109..164L }}</ref>
Finally, when a small disk is found that contains a single root, that root may be further approximated using other methods, e.g. [[Newton's method]].
 
==References==
{{Reflist}}
 
[[Category:Root{{root-finding algorithms]]}}
==External links==
* [https://svn.ece.lsu.edu/svn/dmk/trunk/benchmarks/simtools/scpu2k/gap/polystff.g GAP Library, Lehrstuhl D fuer Mathematik, RWTH Aachen, Germany]
* [http://www.cs.uu.nl/research/techreps/repo/CS-1979/1979-01.pdf "On program efficiency and algebraic complexity" Jan Van Leeuwen]
 
[[Category:Polynomial factorization algorithms]]
{{DEFAULTSORT:Lehmer-Schur Algorithm}}
[[Category:Root-finding algorithms]]