In
mathematics, and, more specifically in
numerical analysis
Numerical analysis is the study of algorithms that use numerical approximation (as opposed to symbolic manipulations) for the problems of mathematical analysis (as distinguished from discrete mathematics). It is the study of numerical methods th ...
and
computer algebra
In mathematics and computer science, computer algebra, also called symbolic computation or algebraic computation, is a scientific area that refers to the study and development of algorithms and software for manipulating mathematical expression ...
, real-root isolation of a
polynomial
In mathematics, a polynomial is an expression consisting of indeterminates (also called variables) and coefficients, that involves only the operations of addition, subtraction, multiplication, and positive-integer powers of variables. An ex ...
consist of producing disjoint
intervals of the
real line
In elementary mathematics, a number line is a picture of a graduated straight line that serves as visual representation of the real numbers. Every point of a number line is assumed to correspond to a real number, and every real number to a po ...
, which contain each one (and only one) real
root
In vascular plants, the roots are the organs of a plant that are modified to provide anchorage for the plant and take in water and nutrients into the plant body, which allows plants to grow taller and faster. They are most often below the sur ...
of the polynomial, and, together, contain all the real roots of the polynomial.
Real-root isolation is useful because usual
root-finding algorithms for computing the real roots of a polynomial may produce some real roots, but, cannot generally certify having found all real roots. In particular, if such an algorithm does not find any root, one does not know whether it is because there is no real root. Some algorithms compute all complex roots, but, as there are generally much fewer real roots than complex roots, most of their computation time is generally spent for computing non-real roots (in the average, a polynomial of degree has complex roots, and only real roots; see ). Moreover, it may be difficult to distinguish the real roots from the non-real roots with small imaginary part (see the example of
Wilkinson's polynomial in next section).
The first complete real-root isolation algorithm results from
Sturm's theorem (1829). However, when real-root-isolation algorithms began to be implemented on
computers it appeared that algorithms derived from Sturm's theorem are less efficient than those derived from
Descartes' rule of signs (1637).
Since the beginning of 20th century there is an active research activity for improving the algorithms derived from Descartes' rule of signs, getting very efficient implementations, and computing their
computational complexity
In computer science, the computational complexity or simply complexity of an algorithm is the amount of resources required to run it. Particular focus is given to computation time (generally measured by the number of needed elementary operations) ...
. The best implementations can routinely isolate real roots of polynomials of degree more than 1,000.
Specifications and general strategy
For finding real roots of a polynomial, the common strategy is to divide the
real line
In elementary mathematics, a number line is a picture of a graduated straight line that serves as visual representation of the real numbers. Every point of a number line is assumed to correspond to a real number, and every real number to a po ...
(or an interval of it where root are searched) into disjoint intervals until having at most one root in each interval. Such a procedure is called root isolation, and a resulting interval that contains exactly one root is an isolating interval for this root.
Wilkinson's polynomial shows that a very small modification of one coefficient of a polynomial may change dramatically not only the value of the roots, but also their nature (real or complex). Also, even with a good approximation, when one evaluates a polynomial at an approximate root, one may get a result that is far to be close to zero. For example, if a polynomial of degree 20 (the degree of Wilkinson's polynomial) has a root close to 10, the derivative of the polynomial at the root may be of the order of
this implies that an error of
on the value of the root may produce a value of the polynomial at the approximate root that is of the order of
It follows that, except maybe for very low degrees, a root-isolation procedure cannot give reliable results without using exact arithmetic. Therefore, if one wants to isolate roots of a polynomial with
floating-point
In computing, floating-point arithmetic (FP) is arithmetic that represents real numbers approximately, using an integer with a fixed precision, called the significand, scaled by an integer exponent of a fixed base. For example, 12.345 can be ...
coefficients, it is often better to convert them to
rational number
In mathematics, a rational number is a number that can be expressed as the quotient or fraction of two integers, a numerator and a non-zero denominator . For example, is a rational number, as is every integer (e.g. ). The set of all ra ...
s, and then take the
primitive part
In algebra, the content of a polynomial with integer coefficients (or, more generally, with coefficients in a unique factorization domain) is the greatest common divisor of its coefficients. The primitive part of such a polynomial is the quotient ...
of the resulting polynomial, for having a polynomial with integer coefficients.
For this reason, although the methods that are described below work theoretically with real numbers, they are generally used in practice with polynomials with integer coefficients, and intervals ending with rational numbers. Also, the polynomials are always supposed to be
square free
In mathematics, a square-free integer (or squarefree integer) is an integer which is divisible by no square number other than 1. That is, its prime factorization has exactly one factor for each prime that appears in it. For example, is square-fr ...
. There are two reasons for that. Firstly
Yun's algorithm for computing the
square-free factorization is less costly than twice the cost of the computation of the
greatest common divisor
In mathematics, the greatest common divisor (GCD) of two or more integers, which are not all zero, is the largest positive integer that divides each of the integers. For two integers ''x'', ''y'', the greatest common divisor of ''x'' and ''y'' i ...
of the polynomial and its derivative. As this may produce factors of lower degrees, it is generally advantageous to apply root-isolation algorithms only on polynomials without multiple roots, even when this is not required by the algorithm. The second reason for considering only square-free polynomials is that the fastest root-isolation algorithms do not work in the case of multiple roots.
For root isolation, one requires a procedure for counting the real roots of a polynomial in an interval without having to compute them, or, at least a procedure for deciding whether an interval contains zero, one or more roots. With such a decision procedure, one may work with a working list of intervals that may contain real roots. At the beginning, the list contains a single interval containing all roots of interest, generally the whole real line or its positive part. Then each interval of the list is divided into two smaller intervals. If one of the new intervals does not contain any root, it is removed from the list. If it contains one root, it is put in an output list of isolating intervals. Otherwise, it is kept in the working list for further divisions, and the process may continue until all roots are eventually isolated
Sturm's theorem
The first complete root-isolation procedure results of
Sturm's theorem (1829), which expresses the number of real roots in an interval in terms of the number of
sign variations of the values of a sequence of polynomials, called ''Sturm's sequence'', at the ends of the interval. Sturm's sequence is the sequence of remainders that occur in a variant of
Euclidean algorithm
In mathematics, the Euclidean algorithm,Some widely used textbooks, such as I. N. Herstein's ''Topics in Algebra'' and Serge Lang's ''Algebra'', use the term "Euclidean algorithm" to refer to Euclidean division or Euclid's algorithm, is an ...
applied to the polynomial and its derivatives. When implemented on computers, it appeared that root isolation with Sturm's theorem is less efficient than the other methods that are described below.
Consequently, Sturm's theorem is rarely used for effective computations, although it remains useful for theoretical purposes.
Descartes' rule of signs and its generalizations
Descartes' rule of signs asserts that the difference between the number of
sign variations in the sequence of the coefficients of a polynomial and the number of its positive real roots is a nonnegative even integer. It results that if this number of sign variations is zero, then the polynomial does not have any positive real roots, and, if this number is one, then the polynomial has a unique positive real root, which is a single root. Unfortunately the converse is not true, that is, a polynomial which has either no positive real root or has a single positive simple root may have a number of sign variations greater than 1.
This has been generalized by
Budan's theorem (1807), into a similar result for the real roots in a
half-open interval : If is a polynomial, and is the difference between of the numbers of sign variations of the sequences of the coefficients of and , then minus the number of real roots in the interval, counted with their multiplicities, is a nonnegative even integer. This is a generalization of Descartes' rule of signs, because, for sufficiently large, there is no sign variation in the coefficients of , and all real roots are smaller than .
Budan's may provide a real-root-isolation algorithm for a
square-free polynomial (a polynomial without multiple root): from the coefficients of polynomial, one may compute an upper bound of the absolute values of the roots and a lower bound on the absolute values of the differences of two roots (see
Properties of polynomial roots). Then, if one divides the interval into intervals of length less than , then every real root is contained in some interval, and no interval contains two roots. The isolating intervals are thus the intervals for which Budan's theorem asserts an odd number of roots.
However, this algorithm is very inefficient, as one cannot use a coarser partition of the interval , because, if Budan's theorem gives a result larger than 1 for an interval of larger size, there is no way for insuring that it does not contain several roots.
Vincent's and related theorems
(1834)
[ provides a method for real-root isolation, which is at the basis of the most efficient real-root-isolation algorithms. It concerns the positive real roots of a square-free polynomial (that is a polynomial without multiple roots). If is a sequence of positive real numbers, let
:
be the th convergent of the ]continued fraction
In mathematics, a continued fraction is an expression obtained through an iterative process of representing a number as the sum of its integer part and the reciprocal of another number, then writing this other number as the sum of its integ ...
:
For proving his theorem, Vincent proved a result that is useful on its own:[
For working with real numbers, one may always choose , but, as effective computations are done with ]rational number
In mathematics, a rational number is a number that can be expressed as the quotient or fraction of two integers, a numerator and a non-zero denominator . For example, is a rational number, as is every integer (e.g. ). The set of all ra ...
s, it is generally convenient to suppose that are integers.
The "small enough" condition has been quantified independently by Nikola Obreshkov
Nikola Dimitrov Obreshkov ( bg, Никола Димитров Обрешков) (March 6, 1896 in VarnaAugust 11, 1963 in Sofia) was a prominent Bulgarian mathematician, working in complex analysis
Complex analysis, traditionally known as ...
, and Alexander Ostrowski:
For polynomials with integer coefficients, the minimum distance may be lower bounded in terms of the degree of the polynomial and the maximal absolute value of its coefficients; see . This allows the analysis of worst-case complexity of algorithms based on Vincent's theorems. However, Obreschkoff–Ostrowski theorem shows that the number of iterations of these algorithms depend on the distances between roots in the neighborhood of the working interval; therefore, the number of iterations may vary dramatically for different roots of the same polynomial.
James V. Uspensky )
, birth_date =
, birth_place = Urga, Outer Mongolia
, death_date =
, death_place = San Francisco, United States
, nationality =
, work_institution = Stanford University, University of Minnesota
, alma_mater = University o ...
gave a bound on the length of the continued fraction (the integer needed, in Vincent's theorem, for getting zero or one sign variations:
Continued fraction method
The use of continued fraction
In mathematics, a continued fraction is an expression obtained through an iterative process of representing a number as the sum of its integer part and the reciprocal of another number, then writing this other number as the sum of its integ ...
s for real-root isolation has been introduced by Vincent, although he credited Joseph-Louis Lagrange
Joseph-Louis Lagrange (born Giuseppe Luigi Lagrangia[algorithm
In mathematics and computer science, an algorithm () is a finite sequence of rigorous instructions, typically used to solve a class of specific problems or to perform a computation. Algorithms are used as specifications for performing ...](_blank)
of Vincent's theorem, one must provide a criterion for choosing the that occur in his theorem. Vincent himself provided some choice (see below). Some other choices are possible, and the efficiency of the algorithm may depend dramatically on these choices. Below is presented an algorithm, in which these choices result from an auxiliary function that will be discussed later.
For running this algorithm one must work with a list of intervals represented by a specific data structure. The algorithm works by choosing an interval, removing it from the list, adding zero, one or two smaller intervals to the list, and possibly outputs an isolation interval.
For isolating the real roots of a polynomial of degree , each interval is represented by a pair where is a polynomial of degree and is a Möbius transformation with integer coefficients. One has
:
and the interval represented by this data structure is the interval that has and as end points. The Möbius transformation maps the roots of in this interval to the roots of in .
The algorithm works with a list of intervals that, at the beginning, contains the two intervals and corresponding to the partition of the reals into the positive and the negative ones (one may suppose that zero is not a root, as, if it were, it suffices to apply the algorithm to ). Then for each interval in the list, the algorithm remove it from the list; if the number of sign variations of the coefficients of is zero, there is no root in the interval, and one passes to the next interval. If the number of sign variations is one, the interval defined by and is an isolating interval. Otherwise, one chooses a positive real number for dividing the interval into and , and, for each subinterval, one composes with a Möbius transformation that maps the interval onto , for getting two new intervals to be added to the list. In pseudocode, this gives the following, where denotes the number of sign variations of the coefficients of the polynomial .
function continued fraction is
input: P(x), a square-free polynomial,
output: a list of pairs of rational numbers defining isolating intervals
/* ''Initialization'' */
L := P(x), x), (P(–x), –x) /* ''two starting intervals'' */
Isol := /* Computation */
while L do
Choose (A(x), M(x)) in L, and remove it from L
v := var(''A'')
if v = 0 then exit /* no root in the interval */
if v = 1 then /* isolating interval found */
add (M(0), M(∞)) to Isol
exit
b := some positive integer
B(x) = A(x + b)
w := v – var(B)
if B(0) = 0 then /* rational root found */
add (M(b), M(b)) to Isol
B(x) := B(x)/x
add (B(x), M(b + x) to L /* roots in (b, +∞) */
if w = 0 then exit /* Budan's theorem */
if w = 1 then /* Budan's theorem again */
add (M(0), M(b)) to Isol
if w > 1 then
add A(b/(1 + x)), M(b/(1 + x)) to L /* roots in (0, b) */
The different variants of the algorithm depend essentially on the choice of . In Vincent's papers, and in Uspensky's book, one has always , with the difference that Uspensky did not use Budan's theorem for avoiding further bisections of the interval associated to
The drawback of always choosing is that one has to do many successive changes of variable of the form . These may be replaced by a single change of variable , but, nevertheless, one has to do the intermediate changes of variables for applying Budan's theorem.
A way for improving the efficiency of the algorithm is to take for a lower bound of the positive real roots, computed from the coefficients of the polynomial (see Properties of polynomial roots for such bounds).
Bisection method
The bisection method consists roughly of starting from an interval containing all real roots of a polynomial, and divides it recursively into two parts until getting eventually intervals that contain either zero or one root. The starting interval may be of the form , where is an upper bound on the absolute values of the roots, such as those that are given in . For technical reasons (simpler changes of variable, simpler complexity analysis, possibility of taking advantage of the binary analysis of computers), the algorithms are generally presented as starting with the interval . There is no loss of generality, as the changes of variables and move respectively the positive and the negative roots in the interval . (The single changes variable may also be used.)
The method requires an algorithm for testing whether an interval has zero, one, or possibly several roots, and for warranting termination, this testing algorithm must exclude the possibility of getting infinitely many times the output "possibility of several roots". Sturm's theorem and Vincent's auxiliary theorem provide such convenient tests. As the use Descartes' rule of signs and Vincent's auxiliary theorem is much more computationally efficient than the use of Sturm's theorem, only the former is described in this section.
The bisection method based on Descartes' rules of signs and Vincent's auxiliary theorem has been introduced in 1976 by Akritas and Collins under the name of ''Modified Uspensky algorithm'',[ and has been referred to as the ''Uspensky algorithm'', the ''Vincent–Akritas–Collins algorithm'', or ''Descartes method'', although Descartes, Vincent and Uspensky never described it.
The method works as follows. For searching the roots in some interval, one changes first the variable for mapping the interval onto giving a new polynomial . For searching the roots of in , one maps the interval onto by the change of variable giving a polynomial . Descartes' rule of signs applied to the polynomial gives indications on the number of real roots of in the interval , and thus on the number of roots of the initial polynomial in the interval that has been mapped on . If there is no sign variation in the sequence of the coefficients of , then there is no real root in the considered intervals. If there is one sign variation, then one has an isolation interval. Otherwise, one splits the interval into and , one maps them onto by the changes of variable and . Vincent's auxiliary theorem insures the termination of this procedure.
Except for the initialization, all these changes of variable consists of the composition of at most two very simple changes of variable which are the scalings by two , the ]translation
Translation is the communication of the Meaning (linguistic), meaning of a #Source and target languages, source-language text by means of an Dynamic and formal equivalence, equivalent #Source and target languages, target-language text. The ...
, and the inversion , the latter consisting simply of reverting the order of the coefficients of the polynomial. As most of the computing time is devoted to changes of variable, the method consisting of mapping every interval to is fundamental for insuring a good efficiency.
Pseudocode
The following notation is used in the pseudocode that follows.
* is the polynomial for which the real roots in the interval have to be isolated
* denotes the number of sign variations in the sequence of the coefficients of the polynomial
* The elements of working list have the form , where
** and are two nonnegative integers such that , which represent the interval
** where is the degree of (the polynomial may be computed directly from , and , but it is less costly to compute it incrementally, as it will be done in the algorithm; if has integer coefficients, the same is true for )
function bisection is
input: , a square-free polynomial, such that ,
for which the roots in the interval are searched
output: a list of triples ,
representing isolating intervals of the form