Fact-checked by Grok 2 weeks ago

Sturm's theorem

Sturm's theorem is a result in that determines the exact number of distinct real roots of a univariate with real coefficients lying in a given open interval, assuming the endpoints of the interval are not roots of the . The theorem provides an algorithmic method to compute this count without explicitly finding the roots, making it valuable for root isolation and analysis in computational algebra. Named after the Charles-François Sturm, who developed it in 1829 and published it in his Mémoire sur la résolution des équations numériques, the theorem builds on earlier work by on sign changes in polynomials and improves upon methods proposed by . Sturm's approach was praised for its elegance and simplicity, with Charles Hermite noting its superiority over prior techniques for solving numerical equations. Building on earlier algebraic work, the theorem quickly became a standard tool in education and theoretical . The core of the theorem relies on the Sturm sequence, a chain of polynomials derived from the original polynomial f(x) and its derivative f'(x) via a Euclidean algorithm-like process: the sequence begins with f_0(x) = f(x), f_1(x) = f'(x), and subsequent terms f_{i+1}(x) are the negative remainders of dividing f_{i-1}(x) by f_i(x), continuing until a constant is reached. For an interval (a, b), the number of distinct real roots of f(x) in (a, b) is given by the difference in the number of sign variations (changes in sign when evaluating the sequence from left to right, ignoring zeros) at x = a and x = b: V(a) - V(b), where V denotes the variation count. This sequence has the property that between consecutive roots of any f_i(x), the sign pattern of the sequence remains constant, ensuring the sign change difference accurately reflects root crossings. Beyond its classical application to root counting, Sturm's theorem has influenced broader areas, including the Sturm-Tarski theorem, which extends sign determination to in real closed fields, and formal verifications in proof assistants like Isabelle/HOL for . It remains relevant in systems for tasks such as real root isolation and generalizations, though modern variants incorporate gcd computations and subresultant sequences for efficiency. The theorem's enduring impact underscores its role as a foundational tool for understanding the real geometry of polynomials.

Background

Historical Context

Charles-François Sturm (1803–1855) was a Swiss-French born in , who made significant contributions to and the theory of differential equations. Educated at the Geneva Academy, Sturm moved to in 1823, where he worked as an assistant to and later became a professor at the and the . His broader work included foundational developments in Sturm-Liouville theory, which addressed eigenvalue problems for second-order linear differential equations, influencing . Sturm's theorem originated in his 1829 memoir titled Mémoire sur la résolution des équations numériques, presented to the and published in full in 1835 in the Mémoires présentés par divers savants à l'Académie Royale des Sciences. In this work, he introduced a to determine the exact number of real roots of a within a given interval, building directly on earlier efforts to isolate roots of algebraic equations. The theorem quickly became a classic in , providing an efficient alternative to prior numerical approaches. This advancement connected to Joseph Fourier's 1820 investigation into the number of real roots of polynomials, published as Sur l'usage du théorème de Descartes dans la recherche des limites des racines in the Bulletin des Sciences de la Société Philomathique de Paris. Fourier's method offered bounds on root counts using derivatives and but did not yield exact numbers; Sturm refined this into a precise . Sturm's approach also refined methods proposed by in his 1823 analysis of polynomial equations.

Mathematical Prerequisites

A polynomial with real coefficients is an expression of the form P(x) = a_n x^n + a_{n-1} x^{n-1} + \cdots + a_1 x + a_0, where each a_i is a real number and n is a non-negative integer known as the degree of the polynomial (with the leading coefficient a_n \neq 0). Such polynomials form the polynomial ring \mathbb{R}, which is a Euclidean domain under the standard degree valuation. A real root of a polynomial P(x) is a real number r such that P(r) = 0. Roots may be distinct or occur with multiplicity greater than one; the multiplicity of a root r is the largest integer m such that (x - r)^m divides P(x) in \mathbb{R}, with simple roots having multiplicity one and multiple roots having multiplicity at least two. Distinguishing between distinct and multiple roots is essential because multiple roots affect the smoothness of the graph at that point and complicate exact counts of unique solutions to P(x) = 0. A over the reals is one that is not divisible by the square of any non-constant in \mathbb{R}, equivalently meaning it has no multiple and factors uniquely into distinct irreducible polynomials (linear or with negative ). In root counting, square-free polynomials ensure all are simple, allowing direct enumeration of distinct real via without accounting for multiplicities, which simplifies analysis in algebraic methods for determining the number of real solutions. The Euclidean algorithm for polynomials over the reals proceeds by repeated division: given polynomials f(x) and g(x) in \mathbb{R} with \deg f \geq \deg g, there exist unique quotient q(x) and remainder r(x) such that f(x) = q(x) g(x) + r(x) and either r(x) = 0 or \deg r < \deg g. Replacing f with g and g with r, the process continues until the remainder is zero, at which point the last non-zero remainder is a greatest common divisor (GCD) of f and g, up to scalar multiple; monic GCDs are often normalized for uniqueness. This algorithm computes the GCD efficiently and underpins factorization and root isolation techniques for polynomials. Sign variations in a sequence of real numbers a_1, a_2, \dots, a_n are defined by first removing or ignoring any zero entries to consider only the non-zero terms, then counting the number of positions i where consecutive non-zero terms a_i and a_{i+1} have opposite signs (positive to negative or vice versa). This count, often denoted V(a_1, \dots, a_n), provides an upper bound on the number of positive real roots in polynomial contexts via rules like , emphasizing the role of coefficient sign patterns in bounding root locations without solving the equation.

Sturm Sequence

Definition and Properties

The Sturm sequence of a polynomial p(x) with real coefficients is a finite sequence of polynomials p_0(x), p_1(x), \dots, p_m(x), where p_0(x) = p(x), p_1(x) = p'(x), and for k \geq 2, p_k(x) = -\operatorname{rem}(p_{k-2}(x), p_{k-1}(x)), with \operatorname{rem} denoting the remainder upon polynomial division, and the sequence terminates when p_m(x) is a nonzero constant (assuming p(x) is square-free). A key property of the Sturm sequence is that it terminates at a nonzero constant that is a multiple of the greatest common divisor of p(x) and p'(x); if p(x) has no multiple roots, this constant equals the GCD up to sign. Additionally, if p(x) has integer coefficients, then all polynomials in the sequence also have integer coefficients, provided the divisions are performed using pseudo-division to avoid fractional coefficients. The sequence is unique up to scaling of its terms, as it arises deterministically from the Euclidean algorithm applied to p(x) and p'(x). At any real number a, the evaluations p_k(a) for k = 0, 1, \dots, m form a sequence of real numbers whose number of sign variations (ignoring zeros) provides information about the distribution of the real roots of p(x) relative to a. Specifically, neighboring terms in the sequence do not vanish simultaneously at any real point, ensuring that sign changes are well-defined and directly tied to the locations of distinct real roots.

Construction via Euclidean Algorithm

The construction of a Sturm sequence for a given polynomial p(x) with real coefficients relies on a modified version of the Euclidean algorithm for polynomials, which systematically generates a chain of polynomials starting from p(x) and its derivative. This process ensures that the resulting sequence has strictly decreasing degrees and terminates with a constant polynomial, providing the foundation for counting real roots via sign variations. Begin by setting p_0(x) = p(x) and p_1(x) = p'(x), where p'(x) denotes the formal derivative of p(x). For each subsequent index k \geq 2, apply polynomial division: divide p_{k-2}(x) by p_{k-1}(x) to obtain a quotient q(x) and remainder r(x) satisfying p_{k-2}(x) = q(x) \, p_{k-1}(x) + r(x), where \deg r < \deg p_{k-1}. Then define p_k(x) = -r(x). This negation step ensures the sequence satisfies the sign conditions required for . The degrees of the polynomials in the sequence strictly decrease at each step: \deg p_k < \deg p_{k-1} for all k \geq 1, since the remainder has lower degree than the divisor. Consequently, the process terminates after finitely many steps—specifically, at most \deg p + 1 steps—when p_m(x) is reached, a non-zero constant polynomial representing the greatest common divisor of p(x) and p'(x) up to sign. For polynomials with no multiple roots, this constant is non-zero everywhere. When p(x) has integer coefficients, the basic construction over the rationals may introduce fractional coefficients in the remainders due to division by leading coefficients. To mitigate this and preserve integer coefficients, the polynomials are often normalized at each step to be monic (leading coefficient 1) or scaled appropriately before division. This normalization does not affect the sign variation properties essential to the theorem.

Efficient Computation with Pseudo-Remainders

When constructing Sturm sequences using the standard Euclidean algorithm with polynomials over the integers, the leading coefficients tend to grow exponentially, leading to either very large integers or the need to introduce fractions, which complicates numerical stability and increases computational cost. To mitigate this, pseudo-remainders are utilized, defined as \mathrm{prem}(a, b) = \mathrm{lc}(b)^{\deg(a) - \deg(b) + 1} \cdot \mathrm{rem}(a, b), where \mathrm{rem}(a, b) denotes the usual polynomial remainder upon division of a by b, and \mathrm{lc}(b) is the leading coefficient of b. This operation ensures that if a and b have integer coefficients, so does \mathrm{prem}(a, b), thereby preserving integrality without fractions. The Sturm sequence is adapted accordingly, starting with p_0(x) = p(x) and p_1(x) = p'(x), and for k \geq 2, p_k(x) = -\frac{\mathrm{prem}(p_{k-2}(x), p_{k-1}(x))}{\mathrm{lc}(p_{k-1})^{\deg(p_{k-2}) - \deg(p_{k-1}) + 1}}, with the scaling chosen to align the sequence with the standard Euclidean construction over the rationals. This approach may introduce rational coefficients but produces the same pattern of sign variations as the classical sequence when evaluated at real points (assuming appropriate sign adjustments for negative leading coefficients), ensuring compatibility with . For fully integer-preserving variants, one can use p_k(x) = -\mathrm{prem}(p_{k-2}(x), p_{k-1}(x)), with potential additional sign normalization. These pseudo-remainder-based methods are routinely implemented in computer algebra systems such as , enabling efficient computation of Sturm sequences for high-degree polynomials where standard methods would fail due to coefficient overflow.

The Theorem

Precise Statement

Sturm's theorem applies to a square-free polynomial p(x) \in \mathbb{R} of degree n \geq 1, meaning p(x) and its derivative p'(x) share no common roots. The associated Sturm sequence is the sequence of polynomials (p_0(x), p_1(x), \dots, p_m(x)), where p_0(x) = p(x), p_1(x) = p'(x), and for k \geq 1, p_{k+1}(x) = -\operatorname{rem}(p_{k-1}(x), p_k(x)), with \operatorname{rem} denoting the remainder of polynomial division, until p_m(x) is the constant (nonzero) gcd. For a real number a, the Sturm function V(a) is defined as the number of sign variations in the sequence (p_0(a), p_1(a), \dots, p_m(a)), obtained by omitting any zero values and counting the number of times consecutive nonzero terms have opposite signs. Let a < b be real numbers such that p(a) \neq 0 and p(b) \neq 0. Then the number of distinct real roots of p(x) = 0 in the open interval (a, b) is V(a) - V(b). In particular, the total number of distinct real roots of p(x) = 0 on the entire real line is V(-\infty) - V(+\infty), where V(-\infty) and V(+\infty) are determined by the signs of the leading coefficients of the Sturm sequence polynomials, adjusted for V(-\infty) by multiplying each sign by (-1)^{\deg p_k}.

Interpretation of Sign Variations

The sign variations in a Sturm sequence evaluated at a point a, denoted V(a), provide an intuitive measure of how the polynomials in the sequence "oscillate" relative to the roots of the original polynomial f(x). Specifically, each sign change within the sequence at a indicates a potential crossing or transition in the behavior of the polynomials, which collectively tracks the locations of real roots of f(x). As a varies continuously across the real line, these variations capture the cumulative effect of root passages, with the difference V(a) - V(b) for a < b equaling the number of distinct real roots in the open interval (a, b), assuming f(x) is square-free (i.e., has no multiple roots). Intuitively, as a moves from -\infty to +\infty, V(a) starts at a value determined by the initial sign pattern and decreases by exactly 1 each time a passes a simple real root of f(x), reflecting a single sign flip in the leading polynomial f_0(a) = f(a) while the rest of the sequence adjusts accordingly. This stepwise decrease arises because, at a simple root c where f(c) = 0 but f'(c) \neq 0, the evaluation just left of c shows a different sign configuration than just right of c, causing a net loss of one variation without affecting the overall count of distinct roots. The total number of such decreases over the entire real line thus equals the number of distinct real roots. For polynomials with multiple roots, the theorem's mechanism breaks down, as passing a root of multiplicity greater than 1 does not produce a consistent decrease of 1 in V(a); instead, the variation may remain unchanged or jump by an even number, failing to accurately count the root's contribution. This occurs because both f(c) = 0 and f'(c) = 0 at such a point, nullifying the sign alternation in the sequence at c (i.e., V(c) = 0), and the square-free assumption ensures the sequence properly detects each root as a simple crossing. Graphically, plotting the values of the Sturm sequence polynomials as functions of a reveals oscillations where sign changes cluster near the roots of f(x), with each simple root corresponding to a localized "wiggle" or transition in the sign pattern that propagates through the sequence, visually tying the variations to the polynomial's zero crossings. At the extremes, as a \to \pm \infty, the signs of the sequence terms stabilize based on the parities of their and the signs of their leading coefficients: for even degrees, the sign matches the leading coefficient at both ends, while for odd degrees, it flips at -\infty, determining the baseline V(\pm \infty) from which root-induced decreases are measured.

Proof Sketch

The proof of Sturm's theorem relies on examining the behavior of the sign variation function V(x), which counts the number of sign changes in the Sturm sequence \{p_0(x), p_1(x), \dots, p_m(x)\} evaluated at x, as x moves along the real line. A key observation is that V(x) remains constant in open intervals where none of the polynomials p_i vanish, because each p_i maintains a constant sign in such intervals, preserving the overall pattern of sign changes. At a simple root r of the leading polynomial p_0, where p_0(r) = 0 but p_1(r) = p_0'(r) \neq 0, the sign of p_0 changes across r, while the signs of the subsequent polynomials remain constant in a neighborhood of r due to the non-vanishing of p_1(r). This results in exactly one fewer sign change after crossing r: for instance, if the pair (p_0(r^-), p_1(r)) shows a sign change (e.g., positive to negative), it becomes no change after (e.g., negative to negative), decreasing V by 1. An essential property underpinning this is the interlacing of roots analogous to Rolle's theorem: between any two consecutive roots of p_{k-1}, there is exactly one root of p_k, ensuring that roots of successive polynomials in the sequence do not coincide and that sign patterns evolve predictably without multiple changes at the same point. The full argument proceeds by induction on the degree n of p_0. For the base case n = 1, V(-\infty) - V(+\infty) = 1 matches the single real root. Assuming the theorem holds for degrees less than n, the sequence properties allow recursive application, showing that the total decrease in V from -\infty to +\infty equals precisely the number of distinct real roots of p_0, as each root contributes exactly one decrease without compensation from other variations. A fundamental lemma supporting this structure is that the Sturm sequence for polynomials mimics the behavior of a Sturm chain in the theory of second-order linear differential equations, where sign changes track oscillations and root counts, but adapted here through the to guarantee the required sign and root separation properties.

Examples

Basic Polynomial Example

Consider the quadratic polynomial p(x) = x^2 - 3x + 2. This factors as (x-1)(x-2), confirming two distinct real roots at x=1 and x=2. To apply Sturm's theorem, construct the Sturm sequence starting with p_0(x) = p(x) = x^2 - 3x + 2 and p_1(x) = p'(x) = 2x - 3. The next term is the negative of the remainder when p_0(x) is divided by p_1(x). For this quadratic, the remainder is a constant, yielding p_2(x) = [1](/page/1). The sequence terminates here: p_0(x) = x^2 - 3x + 2, p_1(x) = 2x - 3, p_2(x) = [1](/page/1). The number of distinct real roots is given by the in the number of sign variations in the sequence evaluated at -\infty and +\infty. At x = -\infty, the signs are determined by the leading terms: p_0(-\infty) > 0 (positive leading coefficient, even degree), p_1(-\infty) < 0 (positive leading coefficient, odd degree), and p_2(-\infty) = [1](/page/1) > 0. The sign is +, -, +, with two variations. At x = +\infty, the signs are p_0(+\infty) > 0, p_1(+\infty) > 0, and p_2(+\infty) = [1](/page/1) > 0, yielding the +, +, + with zero variations. Thus, the is $2 - [0](/page/0) = 2, matching the two real roots.

Illustration of Root Counting

To illustrate how Sturm's theorem enables the counting of distinct real within specific intervals, consider the cubic p(x) = x^3 - x, which factors as x(x-1)(x+1) and has three distinct real at x = -1, 0, 1. The Sturm sequence for this is constructed starting with p_0(x) = x^3 - x and p_1(x) = p_0'(x) = 3x^2 - 1. Applying the with the convention that each subsequent is the negative of the from the previous yields p_2(x) = \frac{2}{3}x and p_3(x) = 1. The number of distinct real in an open interval (a, b), assuming no roots at the endpoints, is given by the difference in the number of sign variations V(a) - V(b), where V(c) counts the sign changes in the sequence p_0(c), p_1(c), p_2(c), p_3(c), ignoring zero values. For the interval (-2, -0.5), evaluate the sequence at the endpoints:
PolynomialValue at x = -2SignValue at x = -0.5Sign
p_0(x)-6$0.375+
p_1(x)$11+-0.25
p_2(x)-\frac{4}{3}-\frac{1}{3}
p_3(x)$1+$1+
At x = -2, the signs are −, +, −, + , yielding three sign changes (V(-2) = 3). At x = -0.5, the signs are +, −, −, + , yielding two sign changes (V(-0.5) = 2). The difference $3 - 2 = 1 confirms one distinct real root in (-2, -0.5), namely at x = -1. Similarly, for the interval (0.5, 2):
PolynomialValue at x = 0.5Value at x = 2
p_0(x)-0.375$6+
p_1(x)-0.25$11+
p_2(x)\frac{1}{3}+\frac{4}{3}+
p_3(x)$1+$1+
At x = 0.5, the signs are −, −, +, + , yielding one sign change (V(0.5) = 1). At x = 2, all values are positive, yielding zero sign changes (V(2) = 0). The difference $1 - 0 = 1 indicates one distinct real root in (0.5, 2), at x = 1. These interval-specific counts demonstrate Sturm's theorem's utility in isolating roots without solving the polynomial explicitly, confirming the total of three real roots when combined with analysis of other intervals such as (-0.5, 0.5), which contains the root at x = 0.

Applications

Real Root Isolation

Sturm's theorem facilitates the isolation of real roots of a square-free polynomial f(x) of degree n by leveraging the sign variation function V(x) derived from its Sturm sequence. The process begins with an initial interval (-\infty, +\infty) that encompasses all real roots, often bounded practically by [-M, M] where M is a root magnitude bound such as Cauchy's estimate. The number of real roots in this interval is given by V(-\infty) - V(+\infty), which equals the total number of distinct real roots. To isolate, the interval is subdivided at a midpoint c, and V is evaluated at the endpoints and c; subintervals where the difference in V indicates exactly one root—specifically, V(a) - V(c) = 1 or V(c) - V(b) = 1—are selected for further recursion. For refinement, once an isolating interval (a, b) is found with V(a) - V(b) = 1, bisection is applied iteratively: evaluate V at the midpoint m = (a + b)/2, and choose the subinterval (a, m) or (m, b) containing the based on where the sign variation difference remains 1. This continues until the interval width falls below a prescribed precision \epsilon > 0, yielding disjoint isolating intervals each containing exactly one real . The sign variation interpretation from Sturm's theorem ensures no interval contains multiple roots or misses any, providing certified isolation without root multiplicity issues for square-free polynomials. Computing the Sturm sequence requires O(n^3) arithmetic operations, and each V evaluation at a point costs O(n^2) thereafter, leading to O(n^3) per full evaluation including initial setup. The total complexity for isolating all real roots to \epsilon is O(n^3 \log(1/\epsilon)) in the model, accounting for the bisection tree depth of O(\log(1/\epsilon)) and up to O(n) branches per level. In the bit-complexity model, it extends to O(n^3 (\log n + \beta(f)) \log(1/\epsilon)), where \beta(f) measures the bit size of coefficients. Compared to , which provides only an upper bound on the number of positive or negative real roots based on changes, Sturm's method offers the advantage of an exact count of distinct real roots within any specified interval, enabling precise isolation rather than mere bounding. A key limitation is that the theorem addresses only real roots, leaving complex roots unlocated despite their guaranteed existence via the .

Numerical Implementation

Implementing Sturm's theorem numerically requires careful selection of to maintain accuracy, particularly when dealing with of moderate to high . To avoid issues with floating-point precision, which can lead to incorrect sign variations in the Sturm sequence, pseudo-remainders are employed instead of standard remainders. These pseudo-remainders ensure that computations stay within or rational , preserving exactness without coefficient explosion in many cases. Exact rational is preferred for general real coefficients, while suffices for with coefficients, leveraging libraries that support arbitrary-precision operations. Several software tools facilitate the numerical implementation of Sturm's theorem. In , the library provides a sturm function that computes the Sturm using subresultant remainder in the rational \mathbb{Q}, avoiding pseudo-divisions and ensuring results through determinant-based computations. For MATLAB, the Sturm toolbox implements manipulation and Sturm construction via a Poly class for real coefficients, enabling root separation into intervals and refinement, though it relies on floating-point for evaluations unless integrated with the Symbolic Math Toolbox for symbolic operations. For high-degree requiring large integer arithmetic, the GNU Multiple Precision Arithmetic Library (GMP) underpins tools like FLINT, which supports efficient operations suitable for building Sturm without precision loss. Error handling is crucial, especially near multiple roots where sign variations may fail to detect roots accurately. For near-multiple roots, one approach is to perturb the evaluation points by a small \epsilon > 0 to shift potential multiple roots away from endpoints, ensuring the assumptions of Sturm's theorem hold. Alternatively, precomputing the square-free factorization of the polynomial removes multiplicities, allowing the theorem to count distinct roots reliably before addressing multiplicities separately; this step is numerically stable when using exact arithmetic. Performance considerations arise for polynomials of degree greater than 50, where the O(n^3) arithmetic of Sturm sequence computation becomes computationally intensive due to repeated polynomial divisions, especially in bit model with large coefficients. In such cases, hybrid methods combine Sturm's theorem with Vincent's theorem for initial root isolation via sign variation reduction, accelerating the process by up to orders of magnitude compared to pure Sturm approaches. A practical case study in involves using Sturm's theorem to isolate roots of high-degree for assessing global in nonlinear polynomial systems. By applying the theorem to count real roots in intervals derived from system parameters, the method confirms without solving the full eigenvalue problem, as demonstrated in algorithms for multidimensional systems where exact root counts guide analysis. Recent applications as of 2025 include the use of Sturm's theorem in Sturm-Liouville problems for reconstructing potentials from data, and in analyzing dynamic pull-in instabilities in graphene-based devices.

Generalizations and Extensions

Non-Square-Free Polynomials

Sturm's theorem counts the number of distinct real of a , and this holds even if the is not square-free, meaning it has multiple . The of the Sturm sequence proceeds via the as usual, and the difference in sign variations gives the correct number of distinct real , with multiple counted only once. The theorem's proof relies on the sequence's properties between , which remain valid without the square-free assumption, though some presentations impose it for simplicity in analysis. For counting the total number of real roots including multiplicities, Sturm's theorem alone is insufficient, as it inherently counts distinct roots. Instead, one can employ sequences of successive derivatives, as formalized in the Budan-Fourier theorem, which provides upper bounds on the number of real roots in an interval by analyzing sign variations in the derivative chain {p(x), p'(x), \dots, p^{(n)}(x)}. The variation in this sequence at interval endpoints over-approximates the total root count with multiplicity, with the difference being even; by refining intervals or combining with Sturm's method, exact multiplicity information can be derived. Tarski queries, in the context of , offer another computational avenue for exact counts including multiplicities via , though they are more general and computationally intensive. A concrete illustration is the polynomial p(x) = (x-1)^2 = x^2 - 2x + 1, which has a double root at x=1. The Sturm sequence is f_0(x) = x^2 - 2x + 1, f_1(x) = 2x - 2 (remainder 0). At -\infty, signs are +, − (1 variation); at +\infty, +, + (0 variations), giving a difference of 1, correctly indicating one distinct real root. To account for multiplicity, the Budan-Fourier sequence {p(x), p'(x)} shows variations consistent with two total roots (one with multiplicity two). Budan's theorem complements this by providing bounds on the number of multiple ; for instance, the sign variations in higher derivatives offer even-indexed overestimates of with multiplicity at least k, aiding in isolating and quantifying multiples.

Extensions to Other Domains

Sturm's theorem generalizes to any real closed field, an ordered field where every positive element has a and every odd-degree has a , such as the field of real algebraic numbers. In this setting, the Sturm-Tarski theorem states that for f(x), g(x) over the field K with a standard Sturm sequence \langle h_0(x), \dots, h_s(x) \rangle, the difference in sign variations of the sequence evaluated at the endpoints a and b of an interval equals the number of distinct of f in (a, b) where g > 0 minus those where g < 0. Sign variations are defined using the field's order, omitting zeros and counting transitions from positive to negative or vice versa, enabling root counting without relying on the completeness of the reals. This abstraction preserves the theorem's utility for symbolic computation in algebraic extensions of . For polynomials with complex coefficients, Sturm's theorem cannot be applied directly due to the absence of a on the complex numbers, which prevents meaningful sign variations. Adaptations involve decomposing the polynomial into real and imaginary parts to apply the theorem separately for real roots, or combining Sturm sequences with the argument principle—a contour integral method from —to isolate and count all roots in the . For instance, an algebraic algorithm uses Sturm sequences to bound regions and the argument principle to enumerate zeros within annuli or disks, achieving exact for univariate polynomials over the complexes. These methods extend root-finding beyond the reals but require hybrid real-complex techniques. In the p-adic numbers \mathbb{Q}_p, a complete non-Archimedean , analogous Sturm sequences count roots within p-adic disks, adapting the variation to the and topology. The algorithm computes isolating balls for all of a rational , with complexity polynomial in the input size and independent of the prime p, by constructing sequences that track root multiplicities in disks of varying precision. This p-adic variant facilitates root isolation in applications, such as solving Diophantine equations, mirroring the real case but using ultrametric distances instead of intervals. A historical extension by Obreschkoff generalizes Sturm-inspired criteria to count roots of real in complex half-planes, using sign variations to bound the number in geometric regions like Obreschkoff lenses or disks. Obreschkoff's theorem (1963) states that for a degree-n and I with v sign variations, the number of roots (counting multiplicity) in the lens L_{n-q} is at most v if it contains at least q roots, providing lower and upper bounds via convex sets in the . The two-circle theorem further refines this for half-plane-like domains, ensuring v = 0 or $1 based on root locations in specific disks centered at midpoints. These results extend root distribution analysis to non-real domains for stability studies in . Despite these extensions, Sturm's theorem fails in non-ordered fields like the complexes without additional structure, as the core mechanism relies on an order to define signs and variations; in unordered settings, root counting requires auxiliary tools like valuations or , limiting direct applicability. Sturm-Habicht sequences provide a of Sturm's theorem to multivariate systems, enabling the counting of real zeros for square systems in \mathbb{R}^n. These sequences are constructed using subresultants and functions associated with a zero-dimensional generated by the polynomials, allowing the number of real solutions within an n-dimensional to be determined via sign variations at the rectangle's vertices, analogous to the univariate case. Specifically, for a defining a zero-dimensional ideal J and a suitable projection polynomial \ell, the number of real roots in the rectangle R = \prod [a_i, b_i] is given by \sum (-1)^i s[v_i], where s[v_i] is the Sturm variation of the univariate sequence V_{\ell, J}(U, v_i) evaluated from -\infty to 0 at vertex v_i. This approach, developed by González-Vega and Trujillo, extends the sign-testing mechanism of Sturm's theorem to higher dimensions while maintaining finite complexity quadratic in the degree of the ideal. In the multivariate setting, counting real roots of polynomial systems draws an analogy to , which bounds the total number of complex intersection points, but requires additional tools like resultants or Gröbner bases to isolate and count the real ones. Resultants can eliminate variables stepwise, reducing the system to a univariate whose real roots correspond to projections of the multivariate real solutions, upon which Sturm's theorem is applied for exact counting. Gröbner bases, on the other hand, facilitate triangularization of the system, enabling real root isolation through univariate factors and subsequent Sturm-based sign analysis. These methods, as detailed in comprehensive treatments of computational , ensure that real root counts remain tractable despite the exponential growth in complex solutions predicted by . A related theorem building on Sturm's ideas is the Routh-Hurwitz , which determines the number of roots in the right-half for in systems. The constructs a Routh array from the coefficients, where the number of sign changes in the first column equals the number of right-half plane roots, directly extending Sturm's root-counting principle via the and Cauchy index concepts. This connection allows the to avoid explicit root solving, relying instead on determinant-based entries that mimic Sturm sequences for complex domains. The original formulation by Routh and Hurwitz has been rigorously linked to Sturm's theorem in modern derivations, confirming its algebraic foundation. Khovanskii's theory of fewnomials extends Sturm-like chains to sparse multivariate , providing sharp upper bounds on the number of real that are independent of total but depend only on the number of monomials. For a system of n equations in n variables with at most k+1 monomials per equation, the bound is on the order of e^{c n k^2} isolated real solutions, derived using chains—sequences of functions generalizing the polynomial remainders in Sturm's —to track sign changes and topological properties of solution sets. This framework, seminal in , reveals that sparsity drastically reduces the number of real compared to dense cases, with proofs relying on oriented matroid theory and Viro patches. Khovanskii's bounds have been applied to enumerate real solutions in systems arising from optimization and . In optimization, generalizations of Sturm's theorem underpin real algebraic geometry techniques for semidefinite programming (SDP), particularly in sum-of-squares hierarchies for certifying non-negativity of multivariate polynomials. These hierarchies relax polynomial optimization over semi-algebraic sets to SDPs, where real root counting via Sturm-Habicht sequences or resultant-based reductions ensures convergence rates and duality gaps by quantifying the algebraic degree of solutions. For instance, SDP relaxations achieve global optima for quadratic forms, with higher-order cases using real tools rooted in Sturm's sign variation method to bound the number of critical points. This integration, as explored in foundational works on in real geometry, enables practical solvers for non-convex problems in control and .

References

  1. [1]
    Sturm Theorem -- from Wolfram MathWorld
    The number of real roots of an algebraic equation with real coefficients whose real roots are simple over an interval, the endpoints of which are not roots,
  2. [2]
    None
    Summary of each segment:
  3. [3]
    Charles-François Sturm (1803 - 1855) - Biography - MacTutor
    Sturm achieved fame with his paper which, using ideas of Fourier, gave a simple solution. Hermite wrote:- Sturm's theorem had the good fortune of ...
  4. [4]
    Sturm's Theorem - Archive of Formal Proofs
    Jan 11, 2014 · Sturm's Theorem states that polynomial sequences with certain properties, so-called Sturm sequences, can be used to count the number of real ...<|control11|><|separator|>
  5. [5]
    [PDF] Sturm and Liouville's work on ordinary linear differential equations ...
    For polynomials this theorem is valid and it is closely related to FOURIER'S earlier investigation. [1820] of the number of real roots of algebraic equations ...
  6. [6]
    [PDF] A real polynomial is an expression of the form P(x) = anxn + an 1
    POLYNOMIALS. (Polynomials with Real Coefficients). Definition 1: A real polynomial is an expression of the form. P(x) = anxn + an−1xn−1 + ··· + a1x + a0.
  7. [7]
    [PDF] Polynomials - Columbia Math Department
    Polynomials are defined as expressions of the form Pn i=0 aixi, where ai ∈ R, and only finitely many of the ai are non-zero.
  8. [8]
    Algebra - Zeroes/Roots of Polynomials - Pauls Online Math Notes
    Nov 16, 2022 · In this section we'll define the zero or root of a polynomial and whether or not it is a simple root or has multiplicity k.
  9. [9]
    [PDF] 1 Roots of polynomials - Stanford Computer Graphics Laboratory
    Oct 14, 1993 · For the case of a repeated root r, the multiplicity of the root is the number of times (x−r) is a factor of g(x).
  10. [10]
    [PDF] MATH 433 Applied Algebra Lecture 35: Euclidean algorithm for ...
    Greatest common divisor of polynomials. Definition. Given non-zero polynomials f ,g ∈ F[x], a greatest common divisor gcd(f ,g) is a polynomial over the ...
  11. [11]
    [PDF] Math 310.003 Polynomial Euclidean Algorithm Fall 2018 Division ...
    The long division algorithm allows us to divide a poly- nomial a(x) by b(x) to get a quotient polynomial q(x) with remainder r(x): a(x) = q(x)b(x) + r(x) with ...
  12. [12]
    [PDF] Descartes' Rule of Signs - How hard can it be?
    Nov 23, 2002 · Proposition 5 [ Parity ] The parity, i.e. the remainder upon division by 2, of the number of sign changes in a sequence of nonzero real numbers ...
  13. [13]
    [PDF] Some Polynomial Theorems
    ... polynomial with real coefficients is even if the first and last coefficients have the same sign, and is odd if the first and last coefficients have opposite ...
  14. [14]
    [PDF] Real Roots of Univariate Polynomials with Real Coefficients
    Apr 1, 2018 · The signs for the leading coefficients are represented by (1,−1,1,1,−1,1), resulting in four sign changes, v = 4. According to Descartes's Rule ...
  15. [15]
    Sturm Function -- from Wolfram MathWorld
    Sturm functions are defined using polynomial quotients and are used to find the number of real roots of an equation within an interval.
  16. [16]
    Finding real roots of polynomials - Yacas - Read the Docs
    The function Rationalize() converts all numbers in an expression to rational numbers. The function SquareFree() returns the square-free part of a polynomial.
  17. [17]
    [PDF] lara - sturm's theorem
    A Sturm sequence of a polynomial f in an interval [a, b] is a sequence of ... is the Euclidean algorithm with a special way of defining the remainders.
  18. [18]
    [PDF] Sturm's Theorem - Student Theses Faculty of Science and Engineering
    Jul 12, 2014 · Sturm's Theorem determines the number of zeroes of a polynomial within an open interval by counting sign changes in two sequences.
  19. [19]
    On Euclid's Algorithm and the Computation of Polynomial Greatest ...
    BROWN W. S., AND TRAUB, J .F . On Euclid's algorithm and the theory of subresultants. 3". ACM 18 (Oct. 1971), 505-514. Crossref · Google Scholar. [9]. GOLDSTEIN ...
  20. [20]
    Sturm's Theorem for Polynomials - Wolfram Demonstrations Project
    By subdividing an interval until every subinterval contains at most one root, one can locate subintervals containing all the real roots in the original ...
  21. [21]
    [PDF] Counting the number of real roots in an interval with Vincent's theorem
    It is well known that, in 1829, the French mathematician Jacques Charles. François Sturm (1803-1855) solved the problem of finding the number of.
  22. [22]
    [PDF] 8.4 Sturm's Theorem
    Sturm's Theorem computes real zeros of a polynomial f(x) in [a, b] by calculating a Sturm sequence and variations in sign. The number of zeros is Vara(sturm(f) ...
  23. [23]
    None
    Summary of each segment:
  24. [24]
  25. [25]
    [PDF] Sturm Sequences and Modified Subresultant Polynomial Remainder ...
    and p/ (x) using the Euclidean algorithm. If k = n, the Sturm sequence ... part of the Sturm sequence over the integers. Moreover, because of (9), the ...
  26. [26]
    [PDF] A Formally-Verified Decision Procedure for Univariate Polynomial ...
    Nov 1, 2014 · Sturm's Theorem is a well-known result in real algebraic geometry that provides a function that computes the number of roots of a univariate ...
  27. [27]
    Sturm - File Exchange - MATLAB Central - MathWorks
    Sturm is a MATLAB toolbox implementing two classes. Features: Poly class store and manipulate a polynomial.Missing: theorem | Show results with:theorem
  28. [28]
    Fast Library for Number Theory - Applications & benchmarks - FLINT
    FLINT uses GMP and MPFR under the hood but notably also provides its own arbitrary-size integer and floating-point code which can be 2-10 times faster in many ...
  29. [29]
    (PDF) Sturm's Theorem with Endpoints - ResearchGate
    Aug 16, 2022 · Sturm's Theorem is a fundamental 19th century result relating the number of real roots of a polynomial f in an interval to the number of sign alternations.Missing: connection | Show results with:connection
  30. [30]
    [PDF] An implementation of Vincent's theorem
    Summary. A new method is presented for the isolation of the real roots of a polynomial equation; it is based on Vincenrs forgotten theorem of 1836 and.
  31. [31]
    Application of Sturm Theorem in the global controllability of a class ...
    Jul 30, 2015 · In this paper, the global controllability for a class of high dimensional polynomial systems has been investigated and a constructive ...
  32. [32]
    [1811.11093] Counting Polynomial Roots in Isabelle/HOL - arXiv
    Nov 27, 2018 · For counting multiple roots exactly, we have extended our previous formalisation of Sturm's theorem.
  33. [33]
    [PDF] Finding Real Roots of Polynomials Using Sturm Sequences
    This interesting theorem is stated: Given a real polynomial, 𝑝𝑝(𝑥𝑥), ordered by descending variable exponent, then the number of: positive roots (counting ...<|control11|><|separator|>
  34. [34]
    An algebraic algorithm to isolate complex polynomial zeros using ...
    We modified an algorithm due to Wilf, in which Sturm sequences and the principle of argument are used, by employing algebraic methods, aiming to enumerate zeros ...
  35. [35]
    P-adic root isolation. - EuDML
    We present an implemented algorithmic method for counting and isolating all p-adic roots of univariate polynomials f over the rational numbers. The roots of f ...
  36. [36]
    [PDF] A Deterministic Descartes Algorithm for Real Polynomials
    Oct 31, 2008 · The ori- gin of the first class of algorithms dates back to Descartes, Sturm, Bundan, Fourier, and Vincent. ... Theorem 1 (Obreschkoff (1963); ...
  37. [37]
    [PDF] Multivariate Sturm—Habicht sequences: real root counting on n ...
    Abstract. Tite main purpose of titis note is to show how Sturm—Habicht. Sequence can be generalized to the multivariate case and used to.
  38. [38]
    [PDF] An elementary derivation of the Routh-Hurwitz criterion
    Jan 31, 1996 · Routh–Hurwitz criterion, e.g., [1], relies on the notion of Cauchy indexes and Sturm's theorem, both of which are beyond the scope of ...