19.07.2014 Views

Contents - Student subdomain for University of Bath

Contents - Student subdomain for University of Bath

Contents - Student subdomain for University of Bath

SHOW MORE
SHOW LESS

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.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!