In mathematics, Vincent's theorem—named after Alexandre Joseph Hidulphe Vincent—is a theorem that isolates the real roots of polynomials with rational coefficients.
Even though Vincent's theorem is the basis of the fastest method for the isolation of the real roots of polynomials, it was almost totally forgotten, having been overshadowed by Sturm's theorem; consequently, it does not appear in any of the classical books on the theory of equations (of the 20th century), except for Uspensky's book. Two variants of this theorem are presented, along with several (continued fractions and bisection) real root isolation methods derived from them.
Let c0, c1, c2, ... be a finite or infinite sequence of real numbers. Suppose l < r and the following conditions hold:
This is called a sign variation or sign change between the numbers cl and cr.
When dealing with the polynomial p(x) in one variable, one defines the number of sign variations of p(x) as the number of sign variations in the sequence of its coefficients.
Two versions of this theorem are presented: the continued fractions version due to Vincent,[1] [2] [3] and the bisection version due to Alesina and Galuzzi.[4] [5]
If in a polynomial equation with rational coefficients and without multiple roots, one makes successive transformations of the form
x=a1+
1 | |
x' |
, x'=a2+
1 | |
x'' |
, x''=a3+
1 | |
x''' |
,\ldots
where
a1,a2,a3,\ldots
a1+\cfrac{1}{a2+\cfrac{1}{a3+\cfrac{1}{\ddots}}}
Moreover, if infinitely many numbers
a1,a2,a3,\ldots
The above statement is an exact translation of the theorem found in Vincent's original papers; however, the following remarks are needed for a clearer understanding:
fn(x)
n\geN
fn(x)
fn(x)
n\geN
a1\ge1
a1\ge0
Let p(x) be a real polynomial of degree deg(p) that has only simple roots. It is possible to determine a positive quantity δ so that for every pair of positive real numbers a, b with
|b-a|<\delta
has exactly 0 or 1 sign variations. The second case is possible if and only if p(x) has a single root within (a, b).
From equation the following criterion is obtained for determining whether a polynomial has any roots in the interval (a, b):
Perform on p(x) the substitution
x\leftarrow
a+bx | |
1+x |
and count the number of sign variations in the sequence of coefficients of the transformed polynomial; this number gives an upper bound on the number of real roots p(x) has inside the open interval (a, b). More precisely, the number ρab(p) of real roots in the open interval (a, b)—multiplicities counted—of the polynomial p(x) in R[''x''], of degree deg(p), is bounded above by the number of sign variations varab(p), where
\operatorname{var}ab(p)=\operatorname{var}\left((1+x)\deg(p)p\left(
a+bx | |
1+x |
\right)\right),
\operatorname{var}ab(p)=\operatorname{var}ba(p)\ge\rhoab(p).
As in the case of Descartes' rule of signs if varab(p) = 0 it follows that ρab(p) = 0 and if varab(p) = 1 it follows that ρab(p) = 1.
A special case of the Alesina–Galuzzi "a_b roots test" is Budan's "0_1 roots test".
A detailed discussion of Vincent's theorem, its extension, the geometrical interpretation of the transformations involved and three different proofs can be found in the work by Alesina and Galuzzi.[4] [5] A fourth proof is due to Ostrowski[6] who rediscovered a special case of a theorem stated by Obreschkoff,[7] p. 81, in 1920–1923.
To prove (both versions of) Vincent's theorem Alesina and Galuzzi show that after a series of transformations mentioned in the theorem, a polynomial with one positive root eventually has one sign variation. To show this, they use the following corollary to the theorem by Obreschkoff of 1920–1923 mentioned earlier; that is, the following corollary gives the necessary conditions under which a polynomial with one positive root has exactly one sign variation in the sequence of its coefficients; see also the corresponding figure.
Corollary. (Obreschkoff's cone or sector theorem, 1920–1923[7] p. 81): If a real polynomial has one simple root, and all other (possibly multiple) roots lie in the sector
S\sqrt{3
then the sequence of its coefficients has exactly one sign variation.
M(x)= | ax+b |
cx+d |
, a,b,c,d\inZ>0
\left|x-\tfrac{1}{2}\left(\tfrac{a}{c}+\tfrac{b}{d}\right)\right|=\tfrac{1}{2}\left(\tfrac{b}{d}-\tfrac{a}{c}\right)
whose diameter lies on the real axis, with endpoints and is mapped by the inverse Möbius transformation
M-1(x)=
dx-b | |
-cx+a |
onto the imaginary axis. For example the point
\tfrac{1}{2}\left(\tfrac{a}{c}+\tfrac{b}{d}\right)+\tfrac{i}{2}\left(\tfrac{b}{d}-\tfrac{a}{c}\right)
gets mapped onto the point The exterior points get mapped onto the half-plane with .
\tfrac{1}{2}\left(\tfrac{a}{c}+\tfrac{b}{d}\right)\pm\tfrac{i}{2\sqrt{3}}\left(\tfrac{b}{d}-\tfrac{a}{c}\right)
and radius
\tfrac{1}{\sqrt{3}}\left(\tfrac{b}{d}-\tfrac{a}{c}\right)
are mapped by the inverse Möbius transformation
M-1(x)=
dx-b | |
-cx+a |
onto the lines . For example the point
\tfrac{1}{2}\left(\tfrac{a}{c}+\tfrac{b}{d}\right)-\tfrac{3i}{2\sqrt{3}}\left(\tfrac{b}{d}-\tfrac{a}{c}\right)
gets mapped to the point
\tfrac{-d}{2c}\left(1-i\sqrt{3}\right).
The exterior points (those outside the eight-shaped figure) get mapped onto the
S\sqrt{3
From the above it becomes obvious that if a polynomial has a single positive root inside the eight-shaped figure and all other roots are outside of it, it presents one sign variation in the sequence of its coefficients. This also guarantees the termination of the process.
In his fundamental papers, Vincent presented examples that show precisely how to use his theorem to isolate real roots of polynomials with continued fractions. However the resulting method had exponential computing time, a fact that mathematicians must have realized then, as was realized by Uspensky[8] p. 136, a century later.
The exponential nature of Vincent's algorithm is due to the way the partial quotients ai (in Vincent's theorem) are computed. That is, to compute each partial quotient ai (that is, to locate where the roots lie on the x-axis) Vincent uses Budan's theorem as a "no roots test"; in other words, to find the integer part of a root Vincent performs successive substitutions of the form x ← x+1 and stops only when the polynomials p(x) and p(x+1) differ in the number of sign variations in the sequence of their coefficients (i.e. when the number of sign variations of p(x+1) is decreased).
See the corresponding diagram where the root lies in the interval (5, 6). It can be easily inferred that, if the root is far away from the origin, it takes a lot of time to find its integer part this way, hence the exponential nature of Vincent's method. Below there is an explanation of how this drawback is overcome.
Vincent was the last author in the 19th century to use his theorem for the isolation of the real roots of a polynomial.
The reason for that was the appearance of Sturm's theorem in 1827, which solved the real root isolation problem in polynomial time, by defining the precise number of real roots a polynomial has in a real open interval (a, b). The resulting (Sturm's) method for computing the real roots of polynomials has been the only one widely known and used ever since—up to about 1980, when it was replaced (in almost all computer algebra systems) by methods derived from Vincent's theorem, the fastest one being the Vincent–Akritas–Strzeboński (VAS) method.[9]
Serret included in his Algebra,[10] pp 363–368, Vincent's theorem along with its proof and directed all interested readers to Vincent's papers for examples on how it is used. Serret was the last author to mention Vincent's theorem in the 19th century.
In the 20th century Vincent's theorem cannot be found in any of the theory of equations books; the only exceptions are the books by Uspensky[8] and Obreschkoff,[7] where in the second there is just the statement of the theorem.
It was in Uspensky's book[8] that Akritas found Vincent's theorem and made it the topic of his Ph.D. Thesis "Vincent's Theorem in Algebraic Manipulation", North Carolina State University, USA, 1978. A major achievement at the time was getting hold of Vincent's original paper of 1836, something that had eluded Uspensky—resulting thus in a great misunderstanding. Vincent's original paper of 1836 was made available to Akritas through the commendable efforts (interlibrary loan) of a librarian in the Library of the University of Wisconsin–Madison, USA.
Isolation of the real roots of a polynomial is the process of finding open disjoint intervals such that each contains exactly one real root and every real root is contained in some interval. According to the French school of mathematics of the 19th century, this is the first step in computing the real roots, the second being their approximation to any degree of accuracy; moreover, the focus is on the positive roots, because to isolate the negative roots of the polynomial p(x) replace x by −x (x ← −x) and repeat the process.
M(x)= | ax+b |
cx+d |
, a,b,c,d\inN
b | |
d |
a | |
c |
M(x)= | ax+b |
cx+d |
M(x)= | ax+b |
cx+d |
The "bisection part" of this all important observation appeared as a special theorem in the papers by Alesina and Galuzzi.[4] [5]
All methods described below (see the article on Budan's theorem for their historical background) need to compute (once) an upper bound, ub, on the values of the positive roots of the polynomial under consideration. Exception is the VAS method where additionally lower bounds, lb, must be computed at almost every cycle of the main loop. To compute the lower bound lb of the polynomial p(x) compute the upper bound ub of the polynomial
x\deg(p)p\left(
1 | |
x |
\right)
lb=
1 | |
ub |
Excellent (upper and lower) bounds on the values of just the positive roots of polynomials have been developed by Akritas, Strzeboński and Vigklas based on previous work by Doru Stefanescu. They are described in P. S. Vigklas' Ph.D. Thesis[12] and elsewhere.[13] These bounds have already been implemented in the computer algebra systems Mathematica, SageMath, SymPy, Xcas etc.
All three methods described below follow the excellent presentation of François Boulier,[14] p. 24.
Only one continued fractions method derives from Vincent's theorem. As stated above, it started in the 1830s when Vincent presented, in the papers several examples that show how to use his theorem to isolate the real roots of polynomials with continued fractions. However the resulting method had exponential computing time. Below is an explanation of how this method evolved.
This is the second method (after VCA) developed to handle the exponential behavior of Vincent's method.
The VAS continued fractions method is a direct implementation of Vincent's theorem. It was originally presented by Vincent from 1834 to 1938 in the papers in a exponential form; namely, Vincent computed each partial quotient ai by a series of unit increments ai ← ai + 1, which are equivalent to substitutions of the form x ← x + 1.
Vincent's method was converted into its polynomial complexity form by Akritas, who in his 1978 Ph.D. Thesis (Vincent's theorem in algebraic manipulation, North Carolina State University, USA) computed each partial quotient ai as the lower bound, lb, on the values of the positive roots of a polynomial. This is called the ideal positive lower root bound that computes the integer part of the smallest positive root (see the corresponding figure). To wit, now set ai ← lb or, equivalently, perform the substitution x ← x + lb, which takes about the same time as the substitution x ← x + 1.
Finally, since the ideal positive lower root bound does not exist, Strzeboński[15] introduced in 2005 the substitution
x\leftarrowlbcomputed*x
lbcomputed>16
lb>lbcomputed
In 2007, Sharma[18] removed the hypothesis of the ideal positive lower bound and proved that VAS is still polynomial in time.
VAS is the default algorithm for root isolation in Mathematica, SageMath, SymPy, Xcas.
For a comparison between Sturm's method and VAS use the functions realroot(poly) and time(realroot(poly)) of Xcas. By default, to isolate the real roots of poly realroot uses the VAS method; to use Sturm's method write realroot(sturm, poly). See also the External links for an application by A. Berkakis for Android devices that does the same thing.
Here is how VAS(p, M) works, where for simplicity Strzeboński's contribution is not included:
lbcomputed
lbcomputed>1
x\leftarrowx+lbcomputed
lbcomputed\le1
x\leftarrow
1 | |
1+x |
\left\{(1+x)\deg(p)p\left(\tfrac{1}{1+x}\right),M(\tfrac{1}{1+x})\right\},
whereas to compute the roots in the interval (1, ∞) perform the substitution x ← x + 1 to p(x) and M(x) and process the pair . It may well turn out that 1 is a root of p(x), in which case, M(1) is a root of the original polynomial and the isolation interval reduces to a point.
Below is a recursive presentation of VAS(p, M).
VAS(p, M):
Input: A univariate, square-free polynomial
M(x)=
ax+b | |
cx+d |
=x, a,b,c,d\inN.
1 var ← the number of sign variations of p(x) // Descartes' rule of signs; 2 if var = 0 then RETURN ∅; 3 if var = 1 then RETURN // a = min(M(0), M(∞)), b = max(M(0), M(∞)), but if b = ∞ set b = ub, where ub is an upper bound on the values of the positive roots of p(x); 4 lb ← the ideal lower bound on the positive roots of p(x); 5 if lb ≥ 1 then p ← p(x + lb), M ← M(x + lb); 6 p01 ← (x + 1)deg(p) p, M01 ← M // Look for real roots in (0, 1); 7 m ← M(1) // Is 1 a root? 8 p1∞ ← p(x + 1), M1∞ ← M(x + 1) // Look for real roots in (1, ∞); 9 if p(1) ≠ 0 then 10 RETURN VAS(p01, M01) ∪ VAS(p1∞, M1∞) 11 else 12 RETURN VAS(p01, M01) ∪ ∪ VAS(p1∞, M1∞) 13 end
Remarks
We apply the VAS method to (note that:).
VAS(x3 − 7x + 7, x) 1 var ← 2 // the number of sign variations in the sequence of coefficients of p(x) = x3 − 7x + 7 4 lb ← 1 // the ideal lower bound—found using lbcomputed and substitution(s) x ← x + 1 5 p ← x3 + 3x2 − 4x + 1, M ← x + 1 6 p01 ← x3 − x2 − 2x + 1, M01 ← 7 m ← 1 8 p1∞ ← x3 + 6x2 + 5x + 1, M1∞ ← x + 2 10 RETURN VAS(x3 − x2 − 2x + 1,) ∪ VAS(x3 + 6x2 + 5x + 1, x + 2)
List of isolation intervals:
List of pairs to be processed:
\left\{\left\{x3-x2-2x+1,\tfrac{x+2}{x+1}\right\},\{x3+6x2+5x+1,x+2\}\right\}.
VAS(x3 − x2 − 2x + 1,) 1 var ← 2 // the number of sign variations in the sequence of coefficients of p(x) = x3 − x2 − 2x + 1 4 lb ← 0 // the ideal lower bound—found using lbcomputed and substitution(s) x ← x + 1 6 p01 ← x3 + x2 − 2x − 1, M01 ← 7 m ← 8 p1∞ ← x3 + 2x2 − x − 1, M1∞ ← 10 RETURN VAS(x3 + x2 − 2x − 1,) ∪ VAS(x3 + 2x2 − x − 1,)
List of isolation intervals:
List of pairs to be processed:
\left\{\left\{x3+x2-2x-1,\tfrac{2x+3}{x+2}\right\},\left\{x3+2x2-x-1,\tfrac{x+3}{x+2}\right\},\{x3+6x2+5x+1,x+2\}\right\}.
VAS(x3 + x2 − 2x − 1,) 1 var ← 1 // the number of sign variations in the sequence of coefficients of p(x) = x3 + x2 − 2x − 1 3 RETURN
List of isolation intervals:
List of pairs to be processed:
\left\{\left\{x3+2x2-x-1,\tfrac{x+3}{x+2}\right\},\{x3+6x2+5x+1,x+2\}\right\}.
VAS(x3 + 2x2 − x − 1,) 1 var ← 1 // the number of sign variations in the sequence of coefficients of p(x) = x3 + 2x2 − x − 1 3 RETURN
List of isolation intervals:
List of pairs to be processed:
\left\{\left\{x3+6x2+5x+1,x+2\right\}\right\}.
VAS(x3 + 6x2 + 5x + 1, x + 2) 1 var ← 0 // the number of sign variations in the sequence of coefficients of p(x) = x3 + 6x2 + 5x + 1 2 RETURN ∅
List of isolation intervals:
List of pairs to be processed: .
Finished.
Therefore, the two positive roots of the polynomial lie inside the isolation intervals and }. Each root can be approximated by (for example) bisecting the isolation interval it lies in until the difference of the endpoints is smaller than ; following this approach, the roots turn out to be and .
There are various bisection methods derived from Vincent's theorem; they are all presented and compared elsewhere.[19] Here the two most important of them are described, namely, the Vincent–Collins–Akritas (VCA) method and the Vincent–Alesina–Galuzzi (VAG) method.
The Vincent–Alesina–Galuzzi (VAG) method is the simplest of all methods derived from Vincent's theorem but has the most time consuming test (in line 1) to determine if a polynomial has roots in the interval of interest; this makes it the slowest of the methods presented in this article.
By contrast, the Vincent–Collins–Akritas (VCA) method is more complex but uses a simpler test (in line 1) than VAG. This along with certain improvements[16] have made VCA the fastest bisection method.
This was the first method developed to overcome the exponential nature of Vincent's original approach, and has had quite an interesting history as far as its name is concerned. This method, which isolates the real roots, using Descartes' rule of signs and Vincent's theorem, had been originally called modified Uspensky's algorithm by its inventors Collins and Akritas.[11] After going through names like "Collins–Akritas method" and "Descartes' method" (too confusing if ones considers Fourier's article[20]), it was finally François Boulier, of Lille University, who gave it the name Vincent–Collins–Akritas (VCA) method,[14] p. 24, based on the fact that "Uspensky's method" does not exist[21] and neither does "Descartes' method".[22] The best implementation of this method is due to Rouillier and Zimmerman,[16] and to this date, it is the fastest bisection method. It has the same worst case complexity as Sturm's algorithm, but is almost always much faster. It has been implemented in Maple's RootFinding package.
Here is how VCA(p, (a, b)) works:
\left\{2\deg(p)p(\tfrac{x}{2}),(a,\tfrac{1}{2}(a+b))\right\}, \left\{2\deg(p)p(\tfrac{1}{2}(x+1)),(\tfrac{1}{2}(a+b),b)\right\}
(see the corresponding figure). It may well turn out that is a root of p(x), in which case (a + b) is a root of porig(x) and the isolation interval reduces to a point.
Below is a recursive presentation of the original algorithm VCA(p, (a, b)).
VCA(p, (a, b))
Input: A univariate, square-free polynomial p(ub * x) ∈ Z[''x''], p(0) ≠ 0 of degree deg(p), and the open interval (a, b) = (0, ub), where ub is an upper bound on the values of the positive roots of p(x). (The positive roots of p(ub * x) are all in the open interval (0, 1)).
Output: A list of isolating intervals of the positive roots of p(x)
1 var ← the number of sign variations of (x + 1)deg(p)p // Budan's "0_1 roots test"; 2 if var = 0 then RETURN ∅; 3 if var = 1 then RETURN ; 4 p0 ← 2deg(p)p // Look for real roots in (0,); 5 m ← (a + b) // Is a root? 6 p1 ← 2deg(p)p // Look for real roots in (1); 7 if p ≠ 0 then 8 RETURN VCA (p0, (a, m)) ∪ VCA (p1, (m, b)) 9 else 10 RETURN VCA (p0, (a, m)) ∪ ∪ VCA (p1, (m, b)) 11 end
Remark
Given the polynomial and considering as an upper bound[12] [13] on the values of the positive roots the arguments of the VCA method are: and .
1 var ← 2 // the number of sign variations in the sequence of coefficients of (x + 1)3p = 7x3 − 7x2 − 35x + 43 4 p0 ← 64x3 − 112x + 56 5 m ← 2 6 p1 ← 64x3 + 192x2 + 80x + 8 7 p = 1 8 RETURN VCA(64x3 − 112x + 56, (0, 2)) ∪ VCA(64x3 + 192x2 + 80x + 8, (2, 4))
List of isolation intervals:
List of pairs to be processed:
\left\{\left\{64x3-112x+56,(0,2)\right\},\left\{64x3+192x2+80x+8,(2,4)\right\}\right\}.
Remove the first and process it.
VCA(64x3 − 112x + 56, (0, 2)) 1 var ← 2 // the number of sign variations in the sequence of coefficients of (x + 1)3p = 56x3 + 56x2 − 56x + 8 4 p0 ← 64x3 − 448x + 448 5 m ← 1 6 p1 ← 64x3 + 192x2 − 256x + 64 7 p = 8 8 RETURN VCA(64x3 − 448x + 448, (0, 1)) ∪ VCA(64x3 + 192x2 − 256x + 64, (1, 2))
List of isolation intervals:
List of pairs to be processed:
\left\{\left\{64x3-448x+448,(0,1)\right\},\left\{64x3+192x2-256x+64,(1,2)\right\},\left\{64x3+192x2+80x+8,(2,4)\right\}\right\}.
Remove the first and process it.
VCA(64x3 − 448x + 448, (0, 1)) 1 var ← 0 // the number of sign variations in the sequence of coefficients of (x + 1)3p = 448x3 + 896x2 + 448x + 64 2 RETURN ∅
List of isolation intervals:
List of pairs to be processed:
\left\{\left\{64x3+192x2-256x+64,(1,2)\right\},\left\{64x3+192x2+80x+8,(2,4)\right\}\right\}.
Remove the first and process it.
VCA(64x3 + 192x2 − 256x + 64, (1, 2)) 1 var ← 2 // the number of sign variations in the sequence of coefficients of (x + 1)3p = 64x3 − 64x2 − 128x + 64 4 p0 ← 64x3 + 384x2 − 1024x + 512 5 m ← 6 p1 ← 64x3 + 576x2 − 64x + 64 7 p = −8 8 RETURN VCA(64x3 + 384x2 − 1024x + 512, (1,)) ∪ VCA(64x3 + 576x2 − 64x − 64, (2))
List of isolation intervals:
List of pairs to be processed:
\left\{\left\{64x3+384x2-1024x+512,\left(1,\tfrac{3}{2}\right)\right\},\left\{64x3+576x2-64x-64,\left(\tfrac{3}{2},2\right)\right\},\left\{64x3+192x2+80x+8,(2,4)\right\}\right\}.
Remove the first and process it.
VCA(64x3 + 384x2 − 1024x + 512, (1,)) 1 var ← 1 // the number of sign variations in the sequence of coefficients of (x + 1)3p = 512x3 + 512x2 − 128x − 64 3 RETURN
List of isolation intervals:
List of pairs to be processed:
\left\{\left\{64x3+576x2-64x-64,\left(\tfrac{3}{2},2\right)\right\},\left\{64x3+192x2+80x+8,(2,4)\right\}\right\}.
Remove the first and process it.
VCA(64x3 + 576x2 − 64x − 64, (2)) 1 var ← 1 // the number of sign variations in the sequence of coefficients of (x + 1)3p = −64x3 − 256x2 + 256x + 512 3 RETURN
List of isolation intervals:
List of pairs to be processed:
\left\{\left\{64x3+192x2+80x+8,(2,4)\right\}\right\}.
Remove the first and process it.
VCA(64x3 + 192x2 + 80x + 8, (2, 4)) 1 var ← 0 // the number of sign variations in the sequence of coefficients of (x + 1)3p = 8x3 + 104x2 + 376x + 344 2 RETURN ∅
List of isolation intervals:
List of pairs to be processed: .
Finished.
Therefore, the two positive roots of the polynomial lie inside the isolation intervals and }. Each root can be approximated by (for example) bisecting the isolation interval it lies in until the difference of the endpoints is smaller than ; following this approach, the roots turn out to be and .
This was developed last and is the simplest real root isolation method derived from Vincent's theorem.
Here is how VAG(p, (a, b)) works:
Below is a recursive presentation of VAG(p, (a, b)).
VAG(p, (a, b))
Input: A univariate, square-free polynomial p(x) ∈ Z[''x''], p(0) ≠ 0 of degree deg(p) and the open interval (a, b) = (0, ub), where ub is an upper bound on the values of the positive roots of p(x).
Output: A list of isolating intervals of the positive roots of p(x).
1 var ← the number of sign variations of (x + 1)deg(p) p // The Alesina–Galuzzi "a_b roots test"; 2 if var = 0 then RETURN ∅; 3 if var = 1 then RETURN ; 4 m ← (a + b) // Subdivide the interval (a, b) in two equal parts; 5 if p(m) ≠ 0 then 6 RETURN VAG(p, (a, m)) ∪ VAG(p, (m, b)) 7 else 8 RETURN VAG(p, (a, m)) ∪ ∪ VAG(p, (m, b)) 9 end
Remarks
Given the polynomial p(x) = x3 − 7x + 7 and considering as an upper bound[12] [13] on the values of the positive roots ub = 4 the arguments of VAG are: p(x) = x3 − 7x + 7 and (a, b) = (0, 4).
1 var ← 2 // the number of sign variations in the sequence of coefficients of (x + 1)3p = 43x3 − 35x2 − 7x + 7 4 m ← (0 + 4) = 2 5 p(m) = 1 8 RETURN VAG(x3 − 7x + 7, (0, 2)) ∪ VAG(x3 − 7x + 7, (2, 4)
List of isolation intervals: .
List of intervals to be processed: .
Remove the first and process it.
VAG(x3 − 7x + 7, (0, 2)) 1 var ← 2 // the number of sign variations in the sequence of coefficients of (x + 1)3p = x3 − 7x2 + 7x + 7 4 m ← (0 + 2) = 1 5 p(m) = 1 8 RETURN VAG(x3 − 7x + 7, (0, 1)) ∪ VAG(x3 − 7x + 7, (1, 2)
List of isolation intervals: .
List of intervals to be processed: .
Remove the first and process it.
VAG(x3 − 7x + 7, (0, 1)) 1 var ← 0 // the number of sign variations in the sequence of coefficients of (x + 1)3p = x3 + 7x2 + 14x + 7 2 RETURN ∅
List of isolation intervals: .
List of intervals to be processed: .
Remove the first and process it.
VAG(x3 − 7x + 7, (1, 2)) 1 var ← 2 // the number of sign variations in the sequence of coefficients of (x + 1)3p = x3 − 2x2 − x + 1 4 m ← (1 + 2) = 5 p(m) = − 8 RETURN VAG(x3 − 7x + 7, (1,)) ∪ VAG(x3 − 7x + 7, (2))
List of isolation intervals: .
List of intervals to be processed: .
Remove the first and process it.
VAG(x3 − 7x + 7, (1,)) 1 var ← 1 // the number of sign variations in the sequence of coefficients of 23(x + 1)3p = x3 + 2x2 − 8x − 8 3 RETURN (1,)
List of isolation intervals: .
List of intervals to be processed: .
Remove the first and process it.
VAG(x3 − 7x + 7, (2)) 1 var ← 1 // the number of sign variations in the sequence of coefficients of 23(x + 1)3p = 8x3 + 4x2 − 4x − 1 3 RETURN (2)
List of isolation intervals: .
List of intervals to be processed: .
Remove the first and process it.
VAG(x3 − 7x + 7, (2, 4)) 1 var ← 0 // the number of sign variations in the sequence of coefficients of (x + 1)3p = 344x3 + 376x2 + 104x + 8 2 RETURN ∅
List of isolation intervals: .
List of intervals to be processed: ∅.
Finished.
Therefore, the two positive roots of the polynomial lie inside the isolation intervals and }. Each root can be approximated by (for example) bisecting the isolation interval it lies in until the difference of the endpoints is smaller than ; following this approach, the roots turn out to be and .