Contents - Student subdomain for University of Bath
Contents - Student subdomain for University of Bath
Contents - Student subdomain for University of Bath
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
3.1. EQUATIONS IN ONE VARIABLE 63<br />
Similarly, V f (−∞) is the number <strong>of</strong> sign changes in the sequence <strong>of</strong> leading coefficients<br />
<strong>of</strong> the Sturm sequence with the signs <strong>of</strong> the odd-degree terms reversed.<br />
Hence V f (−∞)−V f (∞), the total number <strong>of</strong> real roots, is easily computed from<br />
the Sturm sequence.<br />
While the obvious way <strong>of</strong> computing V f (a) is by the definition, i.e. evaluating<br />
f 0 (a), . . ., this turns out not to be the most efficient. Rather, while computing<br />
the Sturm sequence f 0 . . . , we should also store the quotients q i , so that f i (x) =<br />
− (f i−2 (x) − q i (x)f i−1 (x)). We then compute as follows.<br />
Algorithm 7 (Sturm Sequence evaluation)<br />
a: A number<br />
Input: f n (x): Last non-zero element <strong>of</strong> Sturm sequence <strong>of</strong> f<br />
q i (x): Quotient sequence from Sturm sequence <strong>of</strong> f<br />
Output: Sequence L <strong>of</strong> f n (a), f n−1 (a), . . . , f 0 (a).<br />
L[n] := f n (a);<br />
L[n − 1] := q n+1 (a)L[n];<br />
<strong>for</strong> i = n . . . 2<br />
L[i − 2] := q i (a)L[i − 1] − L[i];<br />
return L<br />
If f has degree n, coefficients <strong>of</strong> bit-length at most τ, a has numerator<br />
and denominator <strong>of</strong> bit-length σ, this algorithm has asymptotic complexity<br />
Õ(d 2 max(σ, τ)) [LR01].<br />
Since it is possible to say how big the roots <strong>of</strong> a polynomial can be (propositions<br />
71, 72 and 73), we can determine, as precisely as we wish, the location <strong>of</strong><br />
the real roots <strong>of</strong> a univariate polynomial: every time the Sturm sequence says<br />
that there are more than one root in an interval, we divide the interval in two,<br />
and re-compute V (a) − V (b) <strong>for</strong> each half.<br />
This is far from the only way <strong>of</strong> counting and locating real roots, i.e. solving<br />
problem 1: other methods are based on Descartes’ 5 rule <strong>of</strong> signs (Theorem 37:<br />
the number <strong>of</strong> roots <strong>of</strong> f in (0, ∞) is less than or equal to, by an even number,<br />
the number <strong>of</strong> sign changes in the coefficients <strong>of</strong> f) [CA76], its generalisation<br />
the Budan–Fourier theorem [Hur12] (Corollaries 29 and 30: the number <strong>of</strong> roots<br />
<strong>of</strong> f in 6 [a, b] is less than or equal to, by an even number, the number <strong>of</strong> sign<br />
changes in the derivatives <strong>of</strong> f evaluated at a (i.e. f(a), f ′ (a), f ′′ (a) . . . ) less the<br />
same evaluated at b), on continued fractions [TE07], or on numerical methods<br />
[Pan02].<br />
All such algorithms take time polynomial in d, the degree <strong>of</strong> the polynomial<br />
whose real roots are being counted/determined. However, since the number <strong>of</strong><br />
sign changes in a sequence <strong>of</strong> t terms is at most t−1, there are at most 2t−1 real<br />
roots (t − 1 positive, t − 1 negative and zero: consider x 3 − x) <strong>for</strong> a polynomial<br />
with t non-zero terms, irrespective <strong>of</strong> d.<br />
5 This rule is always called after Descartes, though the pro<strong>of</strong> actually seems to be due to<br />
Gauss [BF93].<br />
6 We assume neither a nor b are roots.