Sturm's theorem

From Wikipedia, the free encyclopedia
Jump to: navigation, search

In mathematics, Sturm's theorem yields a symbolic procedure to count the number of distinct real roots of a polynomial located in an interval. It was named for Jacques Charles François Sturm. Whereas the fundamental theorem of algebra readily yields the overall number of complex roots, counted with multiplicity, Sturm's theorem gives information about their location, albeit limited only to the real roots and without counting multiplicity.

Contents

[edit] Sturm chains

A Sturm chain or Sturm sequence is a finite sequence of polynomials

p_0, p_1, \dots, p_m

of decreasing degree with these following properties:

  • p_0= p is square free (no square factors, i.e., no repeated roots);
  • if p(\xi)=0, then \operatorname{sign}(p_1(\xi))= \operatorname{sign}(p'(\xi));
  • if p_i(\xi)=0 for 0<i<m then \operatorname{sign}(p_{i-1}(\xi))= -\operatorname{sign}(p_{i+1}(\xi));
  • p_m does not change its sign.

To obtain a Sturm chain, Sturm himself proposed to choose the intermediary results when applying Euclid's algorithm to p and its derivative:

\begin{align}
p_0(x) & := p(x),\\
p_1(x) & := p'(x),\\
p_2(x) & := -{\rm rem}(p_0, p_1) = p_1(x) q_0(x)- p_0(x),\\
p_3(x) & := -{\rm rem}(p_1,p_2) = p_2(x) q_1(x) - p_1(x),\\
&{}\  \  \vdots\\
0 & = -\text{rem}(p_{m-1}, p_m).
\end{align}

That is, successively take the remainders with polynomial division and change their signs. Since \operatorname{deg}(p_{i+1}) < \operatorname{deg} (p_i) for 0 \le i < m, the algorithm terminates. The final polynomial, pm, is the greatest common divisor of p and its derivative. If p is square free, it shares no roots with its derivative, hence pm will be a non-zero constant polynomial. The Sturm chain, called the canonical Sturm chain, then is

p_0,p_1,p_2,\ldots,p_m . \,

If p is not square-free, this sequence does not formally satisfy the definition of a Sturm chain above, nevertheless it still satisfies the conclusion of Sturm's theorem (see below).

[edit] Statement

Let p_0=p, p_1, \dots, p_m be a Sturm chain, where p is a square-free polynomial, and let σ(ξ) denote the number of sign changes (zeroes are not counted) in the sequence

p_0(\xi), p_1(\xi), p_2(\xi),\ldots, p_m(\xi). \,\!

Sturm's theorem then states that for two real numbers a < b, the number of distinct roots of p in the half-open interval (a,b] is σ(a) − σ(b).

[edit] The non-square-free case

Let p_0=p, p_1, \dots, p_m be the canonical Sturm sequence of a polynomial p, not necessarily square-free. Then σ(a) − σ(b) is the number of distinct roots of p in (a,b] whenever a < b are real numbers such that neither a nor b is a multiple root of p.

[edit] Proof

Polynomials are continuous functions, and any sign change must occur at a root, so consider the behavior of a Sturm chain around the roots of its constituent polynomials.

First, note that two adjacent polynomials can share a common root only when it is a multiple root of p (in which case it is a root of every pi). Indeed, if pi and pi−1 are both zero at \xi, then pi+1 also have to be zero at \xi, since \operatorname{sign}(p_{i-1}(\xi))= -\operatorname{sign}(p_{i+1}(\xi)). The zero then propagates recursively up and down the chain, so that \xi is a root of all the polynomials p0, ..., pm.

Next, consider roots of polynomials in the interior (i.e., 0<i<m) of the Sturm chain that are not multiple roots of p. If p_i(\xi)=0, then we know from the previous paragraph that p_{i-1}(\xi)\ne 0 and p_{i+1}(\xi)\ne 0. Furthermore, \operatorname{sign}(p_{i-1}(\xi))= -\operatorname{sign}(p_{i+1}(\xi)), so in the vicinity of \xi we've got a single sign change across pi−1, pi, pi+1. In other words, sign changes in the interior of the Sturm chain do not affect the total number of sign changes across the chain.

So only roots of the original polynomial, at the top of the chain, can affect the total number of sign changes. Consider a root \xi, so p(\xi)=0, and assume first that it is a simple root. Then p's derivative, which is p1, must be non-zero at \xi, so p must be either increasing or decreasing at \xi. If it's increasing, then its sign is changing from negative to positive as we move from left to right while its derivative (again, p1) is positive, so the total number of sign changes decreases by one. Conversely, if it's decreasing, then its sign changes from positive to negative while its derivative is negative, so again the total number of sign changes decreases by one.

Finally, let \xi be a multiple root of p, and let p0, ..., pm be the canonical Sturm chain. Let d = gcd(p,p'), q = p/d, and let q0, ..., qm' be the canonical Sturm chain of q. Then m = m' and pi = qid for every i. In particular, σ(x) is the same for both chains whenever x is not a root of d. Then the number of sign changes (in either chain) around \xi decreases by one, since \xi is a simple root of q.

In summary, only sign changes at roots of the original polynomial affect the total number of sign changes across the chain, and the total number of sign changes always decreases by one as we pass a root. The theorem follows directly.

[edit] Applications

[edit] Bounds

This can be used to compute the total number of real roots a polynomial has (to use, for example, as an input to a numerical root finder) by choosing a and b appropriately. For example, a bound due to Cauchy says that all real roots of a polynomial with coefficients ai are in the interval [−MM], where

M = 1 + \frac{\max_{i=0}^{n-1} |a_i|}{|a_n|} . \,\!

Alternatively, we can use the fact that for large x, the sign of

p(x)=a_n x^n+\cdots \,\!

is \text{sign}(a_n), whereas \text{sign}(p(-x)) is (-1)^n a_n.

In this way, simply counting the sign changes in the leading coefficients in the Sturm chain readily gives the number of distinct real roots of a polynomial.

We can also determine the multiplicity of a given root, say ξ, with the help of Sturm's theorem. Indeed, suppose we know a and b bracketing ξ, with σ(a) − σ(b) = 1. Then, ξ has multiplicity k precisely when ξ is a root with multiplicity k − 1 of pm (since it is the GCD of p and its derivative).

[edit] Quotient

The remainder is needed to compute the chain using Euclid's algorithm. For two polynomials p(x)=\sum_{k=0}^i p_k x^k and \tilde p(x)=\sum_{k=0}^{i-1}\tilde p_k x^k this is accomplished (for non-vanishing \tilde p_{i-1}) by

{\rm rem}(p, \tilde p)= \tilde p_{i-1}\cdot p(x)- p_i\cdot\tilde p(x)\left(x+\frac{p_{i-1}}{p_i}-\frac{\tilde p_{i-2}}{\tilde p_{i-1}}\right),

where the quotient is built solely of the first two leading coefficients.

[edit] Generalized Sturm chains

Let ξ be in the compact interval [a,b]. A generalized Sturm chain over [a,b] is a finite sequence of real polynomials (X0,X1,…,Xr) such that:

  1. X(a)X(b) ≠ 0
  2. sign(Xr) is constant on [a,b]
  3. If Xi(ξ) = 0 for 1 ≤ ir−1, then Xi−1(ξ)Xi+1(ξ) < 0.

One can check that each Sturm chain is indeed a generalized Sturm chain.

[edit] See also

[edit] References

  • Sylvester, J. J. (1853). "On a theory of the syzygetic relations of two rational integral functions, comprising an application to the theory of Sturm's functions, and that of the greatest algebraical common measure". Phil. Trans. Roy. Soc. London 143: 407-548. JSTOR 108572. 
  • Thomas, Joseph Miller (1941). "Sturm's theorem for multiple roots". National Mathematics Magazine 15 (8): 391-394. JSTOR 3028551. MR0005945. 
  • Heindel, Lee E. (1971), "Integer arithmetic algorithms for polynonial real zero determination", Proc. SYMSAC '71: 415, doi:10.1145/800204.806312, MR0300434 
  • Collins, George E.; Akritas, Alkiviadis G. (1976), "Polynomial real root isolationusing Descarte's rule of signs", Proc. SYMSAC '76: 272, doi:10.1145/800205.806346 
  • Panton, Don B.; Verdini, William A. (1981). "A fortran program for applying Sturm's theorem in counting internal rates of return". J. Financ. Quant. Anal. 16 (3): 381-388. JSTOR 2330245. 
  • Akritas, Alkiviadis G. (1982). "Reflections on a pair of theorems by Budan and Fourier". Math. Mag. 55 (5): 292-298. JSTOR 2690097. MR0678195. 
  • Petersen, Paul (1991). "Multivariate Sturm theory". Lecture Notes in Comp. Science 539: 318-332. doi:10.1007/3-540-54522-0_120. MR1229329. 
  • Yap, Chee (2000). Fundamental Problems in Algorithmic Algebra. Oxford University Press. ISBN 0-19-512516-9. http://www.cs.nyu.edu/yap/book/berlin/. 

[edit] External links

  • C code from Graphic Gems by D.G. Hook and P.R. McAree.
Personal tools
Namespaces

Variants
Actions
Navigation
Interaction
Toolbox
Print/export
Languages