Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Sturm's theorem
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
{{Short description|Counting polynomial roots in an interval}} In [[mathematics]], the '''Sturm sequence''' of a [[univariate polynomial]] {{mvar|p}} is a sequence of polynomials associated with {{mvar|p}} and its derivative by a variant of [[Euclid's algorithm for polynomials]]. '''Sturm's theorem''' expresses the number of distinct [[real number|real]] [[Root of a function|root]]s of {{mvar|p}} located in an [[interval (mathematics)|interval]] in terms of the number of changes of signs of the values of the Sturm sequence at the bounds of the interval. Applied to the interval of all the real numbers, it gives the total number of real roots of {{mvar|p}}.<ref name=bpr>{{harv|Basu|Pollack|Roy|2006}}</ref> Whereas the [[fundamental theorem of algebra]] readily yields the overall number of [[complex number|complex]] roots, counted with [[multiplicity (mathematics)|multiplicity]], it does not provide a procedure for calculating them. Sturm's theorem counts the number of distinct real roots and locates them in intervals. By subdividing the intervals containing some roots, it can isolate the roots into arbitrarily small intervals, each containing exactly one root. This yields the oldest [[real-root isolation]] algorithm, and arbitrary-precision [[root-finding algorithm]] for univariate polynomials. For computing over the [[real number|reals]], Sturm's theorem is less efficient than other methods based on [[Descartes' rule of signs]]. However, it works on every [[real closed field]], and, therefore, remains fundamental for the theoretical study of the [[computational complexity]] of [[decidability of first-order theories of the real numbers|decidability]] and [[quantifier elimination]] in the [[first order theory]] of real numbers. The Sturm sequence and Sturm's theorem are named after [[Jacques Charles François Sturm]], who discovered the theorem in 1829.<ref>{{MacTutor Biography|id=Sturm|mode=cs1}}</ref> ==The theorem== The '''Sturm chain''' or '''Sturm sequence''' of a [[univariate polynomial]] {{math|''P''(''x'')}} with real coefficients is the sequence of polynomials <math>P_0, P_1, \ldots,</math> such that :<math>\begin{align} P_0&=P,\\ P_1&=P',\\ P_{i+1}&=-\operatorname{rem}(P_{i-1},P_i), \end{align}</math> for {{math|''i'' ≥ 1}}, where {{math|''P'{{void}}''}} is the [[derivative]] of {{mvar|P}}, and <math>\operatorname{rem}(P_{i-1},P_i)</math> is the remainder of the [[Euclidean division of polynomials|Euclidean division]] of <math>P_{i-1}</math> by <math>P_{i}.</math> The length of the Sturm sequence is at most the degree of {{mvar|P}}. The number of [[sign variation]]s at {{mvar|ξ}} of the Sturm sequence of {{mvar|P}} is the number of sign changes (ignoring zeros) in the sequence of real numbers :<math>P_0(\xi), P_1(\xi),P_2(\xi),\ldots.</math> This number of sign variations is denoted here {{math|''V''(''ξ'')}}. Sturm's theorem states that, if {{mvar|P}} is a [[square-free polynomial]], the number of distinct real roots of {{mvar|P}} in the [[half-open interval]] {{math|(''a'', ''b'']}} is {{math|''V''(''a'') − ''V''(''b'')}} (here, {{mvar|a}} and {{mvar|b}} are real numbers such that {{math|''a'' < ''b''}}).<ref name="bpr" /> The theorem extends to unbounded intervals by defining the sign at {{math|+∞}} of a polynomial as the sign of its [[leading coefficient]] (that is, the coefficient of the term of highest degree). At {{math|–∞}} the sign of a polynomial is the sign of its leading coefficient for a polynomial of even degree, and the opposite sign for a polynomial of odd degree. In the case of a non-square-free polynomial, if neither {{mvar|a}} nor {{mvar|b}} is a multiple root of {{mvar|p}}, then {{math|''V''(''a'') − ''V''(''b'')}} is the number of ''distinct'' real roots of {{mvar|P}}. The proof of the theorem is as follows: when the value of {{mvar|x}} increases from {{mvar|a}} to {{mvar|b}}, it may pass through a zero of some <math>P_i</math> ({{math|''i'' > 0}}); when this occurs, the number of sign variations of <math>(P_{i-1}, P_i, P_{i+1})</math> does not change. When {{mvar|x}} passes through a root of <math>P_0=P,</math> the number of sign variations of <math>(P_0, P_1)</math> decreases from 1 to 0. These are the only values of {{mvar|x}} where some sign may change. ==Example== Suppose we wish to find the number of roots in some range for the polynomial <math>p(x)=x^4+x^3-x-1</math>. So :<math>\begin{align} p_0(x) &=p(x)=x^4+x^3-x-1 \\ p_1(x)&=p'(x)=4x^3+3x^2-1 \end{align}</math> The remainder of the [[Euclidean division of polynomials|Euclidean division]] of {{math|''p''<sub>0</sub>}} by {{math|''p''<sub>1</sub>}} is <math>-\tfrac{3}{16}x^2-\tfrac{3}{4}x-\tfrac{15}{16};</math> multiplying it by {{math|−1}} we obtain :<math>p_2(x)=\tfrac{3}{16}x^2+\tfrac{3}{4}x+\tfrac{15}{16}</math>. Next dividing {{math|''p''<sub>1</sub>}} by {{math|''p''<sub>2</sub>}} and multiplying the remainder by {{math|−1}}, we obtain :<math>p_3(x)=-32x-64</math>. Now dividing {{math|''p''<sub>2</sub>}} by {{math|''p''<sub>3</sub>}} and multiplying the remainder by {{math|−1}}, we obtain :<math>p_4(x)=-\tfrac{3}{16}</math>. As this is a constant, this finishes the computation of the Sturm sequence. To find the number of real roots of <math>p_0</math> one has to evaluate the sequences of the signs of these polynomials at {{math|−∞}} and {{math|∞}}, which are respectively {{math|(+, −, +, +, −)}} and {{math|(+, +, +, −, −)}}. Thus :<math>V(-\infty)-V(+\infty) = 3-1=2,</math> where {{mvar|V}} denotes the number of sign changes in the sequence, which shows that {{mvar|p}} has two real roots. This can be verified by noting that {{math|''p''(''x'')}} can be factored as {{math|(''x''<sup>2</sup> − 1)(''x''<sup>2</sup> + ''x'' + 1)}}, where the first factor has the roots {{math|−1}} and {{math|1}}, and second factor has no real roots. This last assertion results from the [[quadratic formula]], and also from Sturm's theorem, which gives the sign sequences {{math|(+, –, –)}} at {{math|−∞}} and {{math|(+, +, –)}} at {{math|+∞}}. ==Generalization== Sturm sequences have been generalized in two directions. To define each polynomial in the sequence, Sturm used the negative of the remainder of the [[Euclidean division of polynomials|Euclidean division]] of the two preceding ones. The theorem remains true if one replaces the negative of the remainder by its product or quotient by a positive constant or the square of a polynomial. It is also useful (see below) to consider sequences where the second polynomial is not the derivative of the first one. A ''generalized Sturm sequence'' is a finite sequence of polynomials with real coefficients :<math>P_0, P_1, \dots, P_m</math> such that * the degrees are decreasing after the first one: <math>\deg P_{i} <\deg P_{i-1}</math> for {{math|1=''i'' = 2, ..., ''m''}}; * <math>P_m</math> does not have any real root or has no sign changes near its real roots. * if {{math|''P<sub>i</sub>''(''ξ'') {{=}} 0}} for {{math|0 < ''i'' < ''m''}} and {{mvar|ξ}} a real number, then {{math|''P''<sub>''i'' −1 </sub>(''ξ'') ''P''<sub>''i'' + 1</sub>(''ξ'') < 0}}. The last condition implies that two consecutive polynomials do not have any common real root. In particular the original Sturm sequence is a generalized Sturm sequence, if (and only if) the polynomial has no multiple real root (otherwise the first two polynomials of its Sturm sequence have a common root). When computing the original Sturm sequence by Euclidean division, it may happen that one encounters a polynomial that has a factor that is never negative, such a <math>x^2</math> or <math>x^2+1</math>. In this case, if one continues the computation with the polynomial replaced by its quotient by the nonnegative factor, one gets a generalized Sturm sequence, which may also be used for computing the number of real roots, since the proof of Sturm's theorem still applies (because of the third condition). This may sometimes simplify the computation, although it is generally difficult to find such nonnegative factors, except for even powers of {{mvar|x}}. ==Use of pseudo-remainder sequences== In [[computer algebra]], the polynomials that are considered have integer coefficients or may be transformed to have integer coefficients. The Sturm sequence of a polynomial with integer coefficients generally contains polynomials whose coefficients are not integers (see above example). To avoid computation with [[rational number]]s, a common method is to replace [[Euclidean division of polynomials|Euclidean division]] by [[pseudo-remainder|pseudo-division]] for computing [[polynomial greatest common divisor]]s. This amounts to replacing the remainder sequence of the [[Euclidean algorithm for polynomials|Euclidean algorithm]] by a [[pseudo-remainder sequence]], a pseudo remainder sequence being a sequence <math>p_0, \ldots, p_k</math> of polynomials such that there are constants <math>a_i</math> and <math>b_i</math> such that <math>b_ip_{i+1}</math> is the remainder of the Euclidean division of <math>a_ip_{i-1}</math> by <math>p_i.</math> (The different kinds of pseudo-remainder sequences are defined by the choice of <math>a_i</math> and <math>b_i;</math> typically, <math>a_i</math> is chosen for not introducing denominators during Euclidean division, and <math>b_i</math> is a common divisor of the coefficients of the resulting remainder; see [[Pseudo-remainder sequence]] for details.) For example, the remainder sequence of the Euclidean algorithm is a pseudo-remainder sequence with <math>a_i=b_i=1</math> for every {{mvar|i}}, and the Sturm sequence of a polynomial is a pseudo-remainder sequence with <math>a_i=1</math> and <math>b_i=-1</math> for every {{mvar|i}}. Various pseudo-remainder sequences have been designed for computing greatest common divisors of polynomials with integer coefficients without introducing denominators (see [[Pseudo-remainder sequence]]). They can all be made generalized Sturm sequences by choosing the sign of the <math>b_i</math> to be the opposite of the sign of the <math>a_i.</math> This allows the use of Sturm's theorem with pseudo-remainder sequences. ==Root isolation== For a polynomial with real coefficients, ''root isolation'' consists of finding, for each real root, an interval that contains this root, and no other roots. This is useful for [[root-finding algorithm|root finding]], allowing the selection of the root to be found and providing a good starting point for fast numerical algorithms such as [[Newton's method]]; it is also useful for certifying the result, as if Newton's method converge outside the interval one may immediately deduce that it converges to the wrong root. Root isolation is also useful for computing with [[algebraic numbers]]. For computing with algebraic numbers, a common method is to represent them as a pair of a polynomial to which the algebraic number is a root, and an isolation interval. For example <math>\sqrt 2</math> may be unambiguously represented by <math>(x^2-2, [0,2]).</math> Sturm's theorem provides a way for isolating real roots that is less efficient (for polynomials with integer coefficients) than other methods involving [[Descartes' rule of signs]]. However, it remains useful in some circumstances, mainly for theoretical purposes, for example for algorithms of [[real algebraic geometry]] that involve [[infinitesimal]]s.<ref name=mpi>{{harv|de Moura|Passmore|2013}}</ref> For isolating the real roots, one starts from an interval <math>(a,b]</math> containing all the real roots, or the roots of interest (often, typically in physical problems, only positive roots are interesting), and one computes <math>V(a)</math> and <math>V(b).</math> For defining this starting interval, one may use bounds on the size of the roots (see {{slink|Properties of polynomial roots|Bounds on (complex) polynomial roots}}). Then, one divides this interval in two, by choosing {{mvar|c}} in the middle of <math>(a,b].</math> The computation of <math>V(c)</math> provides the number of real roots in <math>(a,c]</math> and <math>(c,b],</math> and one may repeat the same operation on each subinterval. When one encounters, during this process an interval that does not contain any root, it may be suppressed from the list of intervals to consider. When one encounters an interval containing exactly one root, one may stop dividing it, as it is an isolation interval. The process stops eventually, when only isolating intervals remain. This isolating process may be used with any method for computing the number of real roots in an interval. Theoretical [[complexity analysis]] and practical experiences show that methods based on [[Descartes' rule of signs]] are more efficient. It follows that, nowadays, Sturm sequences are rarely used for root isolation. ==Application== Generalized Sturm sequences allow counting the roots of a polynomial where another polynomial is positive (or negative), without computing these root explicitly. If one knows an isolating interval for a root of the first polynomial, this allows also finding the sign of the second polynomial at this particular root of the first polynomial, without computing a better approximation of the root. Let {{math|''P''(''x'')}} and {{math|''Q''(''x'')}} be two polynomials with real coefficients such that {{mvar|P}} and {{mvar|Q}} have no common root and {{mvar|P}} has no multiple roots. In other words, {{mvar|P}} and {{math|''P'{{space|hair}}Q''}} are [[coprime|coprime polynomials]]. This restriction does not really affect the generality of what follows as [[polynomial greatest common divisor|GCD]] computations allows reducing the general case to this case, and the cost of the computation of a Sturm sequence is the same as that of a GCD. Let {{math|''W''(''a'')}} denote the number of sign variations at {{mvar|a}} of a generalized Sturm sequence starting from {{mvar|P}} and {{math|''P'{{space|hair}}Q''}}. If {{math|''a'' < ''b''}} are two real numbers, then {{math|''W''(''a'') – ''W''(''b'')}} is the number of roots of {{mvar|P}} in the interval <math>(a,b]</math> such that {{math|''Q''(''a'') > 0}} minus the number of roots in the same interval such that {{math|''Q''(''a'') < 0}}. Combined with the total number of roots of {{mvar|P}} in the same interval given by Sturm's theorem, this gives the number of roots of {{mvar|P}} such that {{math|''Q''(''a'') > 0}} and the number of roots of {{mvar|P}} such that {{math|''Q''(''a'') < 0}}.<ref name="bpr" /> ==See also== {{Div col|colwidth=25em}} * [[Routh–Hurwitz theorem]] * [[Hurwitz's theorem (complex analysis)]] * [[Descartes' rule of signs]] * [[Rouché's theorem]] * [[Properties of polynomial roots]] * [[Gauss–Lucas theorem]] * [[Turán's inequalities]] {{div col end}} ==References== {{reflist}} * {{cite book |first1=Saugata |last1=Basu |first2=Richard |last2=Pollack |authorlink2=Richard M. Pollack |first3=Marie-Françoise |last3=Roy |authorlink3=Marie-Françoise Roy |title=Algorithms in real algebraic geometry |year=2006 |publisher=[[Springer Science+Business Media|Springer]] |pages=52–57 |section=Section 2.2.2 |isbn=978-3-540-33098-1 |edition=2nd }} * {{cite journal |first1=Jacques Charles François |last1=Sturm |year=1829 |title=Mémoire sur la résolution des équations numériques |journal=Bulletin des Sciences de Férussac |volume=11 |pages=419–425 }} * {{cite journal |first1=J. J. |last1=Sylvester |year=1853 |title=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 |journal=Phil. Trans. R. Soc. Lond. |volume=143 |pages=407–548 |jstor=108572 |doi=10.1098/rstl.1853.0018 |url=https://zenodo.org/record/1432412 |doi-access=free }} * {{cite journal |first1=Joseph Miller |last1=Thomas |title=Sturm's theorem for multiple roots |year=1941 |journal=National Mathematics Magazine |volume=15 |number=8 |pages=391–394 |jstor=3028551 |mr=0005945 |doi=10.2307/3028551 }} * {{cite conference |first1=Lee E. |last1=Heindel |title=Integer arithmetic algorithms for polynomial real zero determination |journal=Proc. SYMSAC '71 |year=1971 |page=415 |mr=0300434 |doi=10.1145/800204.806312 |s2cid=9971778 }} * {{cite book |first1=Leonardo |last1=de Moura |first2=Grant Olney |last2=Passmore |title=Automated Deduction – CADE-24 |chapter=Computation in Real Closed Infinitesimal and Transcendental Extensions of the Rationals |series=Lecture Notes in Computer Science |year=2013 |volume=7898 |page=178-192 |doi=10.1007/978-3-642-38574-2_12 |isbn=978-3-642-38573-5 |s2cid=9308312 |chapter-url=https://www.research.ed.ac.uk/en/publications/6875c2b6-d53a-4ec7-b353-550d902756d0 }} * {{cite journal |first1=Don B. |last1=Panton |first2=William A. |last2=Verdini |title=A fortran program for applying Sturm's theorem in counting internal rates of return |journal=J. Financ. Quant. Anal. |year=1981 |volume=16 |number=3 |pages=381–388 |jstor=2330245 |doi=10.2307/2330245 |s2cid=154334522 }} * {{cite journal |title=Reflections on a pair of theorems by Budan and Fourier |journal=Math. Mag. |first1=Alkiviadis G. |last1=Akritas |mr=0678195 |year=1982 |volume=55 |number=5 |pages=292–298 |jstor=2690097 |doi=10.2307/2690097 }} *{{cite conference | last = Pedersen | first = Paul | editor1-last = Mattson | editor1-first = Harold F. | editor2-last = Mora | editor2-first = Teo | editor3-last = Rao | editor3-first = T. R. N. | contribution = Multivariate Sturm theory | doi = 10.1007/3-540-54522-0_120 | isbn = 978-3-540-54522-4 | location = Berlin | mr = 1229329 | pages = 318–332 | publisher = Springer | series = Lecture Notes in Computer Science | title = Applied Algebra, Algebraic Algorithms and Error-Correcting Codes, 9th International Symposium, AAECC-9, New Orleans, LA, USA, October 7–11, 1991, Proceedings | volume = 539 | year = 1991}} * {{cite book|first1=Chee |last1=Yap |url=http://www.cs.nyu.edu/yap/book/berlin/ |title=Fundamental Problems in Algorithmic Algebra |publisher=[[Oxford University Press]] |year=2000 |isbn=0-19-512516-9 }} * {{cite book | last1=Rahman | first1=Q. I. | last2=Schmeisser | first2=G. | title=Analytic theory of polynomials | series=London Mathematical Society Monographs. New Series | volume=26 | location=Oxford | publisher=[[Oxford University Press]] | year=2002 | isbn=0-19-853493-0 | zbl=1072.30006 }} *Baumol, William. ''Economic Dynamics'', chapter 12, Section 3, "Qualitative information on real roots" * D.G. Hook and P. R. McAree, "Using Sturm Sequences To Bracket Real Roots of Polynomial Equations" in Graphic Gems I (A. Glassner ed.), Academic Press, pp. 416–422, 1990. {{DEFAULTSORT:Sturm's Theorem}} [[Category:Theorems in real analysis]] [[Category:Articles containing proofs]] [[Category:Theorems about polynomials]] [[Category:Computer algebra]] [[Category:Real algebraic geometry]]
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)
Pages transcluded onto the current version of this page
(
help
)
:
Template:Cite book
(
edit
)
Template:Cite conference
(
edit
)
Template:Cite journal
(
edit
)
Template:Div col
(
edit
)
Template:Div col end
(
edit
)
Template:Harv
(
edit
)
Template:MacTutor Biography
(
edit
)
Template:Math
(
edit
)
Template:Mvar
(
edit
)
Template:Reflist
(
edit
)
Template:Short description
(
edit
)
Template:Slink
(
edit
)