Budan Fourier Algorithm For Bounding The Real Roots of a Polynomial

by admin in , , on June 13, 2019

Budan’s theorem is a theorem for bounding the number of real roots of a polynomial in an interval, and computing the parity of this number. It was published in 1807 by François Budan de Boislaurent. A similar theorem was published independently by Joseph Fourier in 1820. Each of these theorems are a corollary of the other. Fourier’s statement appears more often in the literature of 19th century and has been referred to as Fourier’sBudan–FourierFourier–Budan, and even Budan’s theorem. Budan’s original formulation is used in fast modern algorithms for real-root isolation of polynomials.

Example On Using This Code:


%% Example 1:
A=diag(v);                     % A Matrix of State Space System
b = [2;1/2;1/2;1/2;1/2;-20];   % B Matrix of State Space System
c = [1 1 1 1 1 1 ];            % C Matrix of State Space System
Zeros_EPT(A,b,c,10)            % Calling the Zeros_EPT Function

%% Example 2:
num = [80 -4 2];              % Numerator of the Transfer Function
den = [16 8 1 0];             % Denomerator of the Transfer Function
Sys = tf(num, den);           % Declaring Sys as a Transfer Function 
Sys = ss(Sys);                % Convert Transfer Function to State Space System
Zeros_EPT(Sys.a, Sys.b, Sys.c, 10)  % Calling Zeros_EPT Function


First Example:

The "A" matrix has complex Eigenvalues given by
Eigenvalues =
 0.000000000000000 + 0.000000000000000i
 0.000000000000000 + 1.000000000000000i
 0.000000000000000 - 1.000000000000000i
 0.000000000000000 + 3.141592653589793i
 0.000000000000000 - 3.141592653589793i
-1.000000000000000 + 0.000000000000000i
The sign changing zeros of the function are located at
x = [2.104971143271557 2.209218479417063 3.385401253994916]
Elapsed time is 1.708595 seconds.

Second Example:

The "A" matrix has real Eigenvalues given by
Eigenvalues =
The sign changing zeros of the function are located at
x = [4.928551229142862   6.131669782166104]
Elapsed time is 2.355173 seconds.


  • Sign variation
  • Descartes’ rule of signs
  • Budan’s statement
    • Examples
  • Fourier’s statement
  • Proof
  • History
  • References
  • External links

Sign Variation

Let c0,c1,c2, …, ck be a finite sequence of real numbers. A sign variation or sign change in the sequence is a pair of indices i < j such that ci, cj < 0 and either j = i + 1 or ck = 0 for all k such that i < k < j. In other words, a sign variation occurs in the sequence at each place where the signs change, when ignoring zeros.

For studying the real roots of a polynomial, the number of sign variations of several sequences may used. For Budan’s theorem, it is the sequence of the coefficients. For the Budan–Fourier theorem, it is the sequence of values of the successive derivatives at a point. For Sturm’s theorem it is the sequence of values at a point of the Sturm sequence.

Descartes’ Rule of Signs

If p(x) is a univariate polynomial with real coefficients, let us denote by #+(p) the number of its positive real roots, counted with their multiplicity,[1] and by v(p) the number of sign variations in the sequence of its coefficients. Descartes’s rule of signs asserts that

v(p) – #+(p) is a nonnegative even integer.

In particular, if v(p) ≤ 1, then one has #+(p) = v(p).

Budan’s Statement

Given a univariate polynomial p(x) with real coefficients, let us denote by #(,r](p) the number of real roots, counted with their multiplicities,[1] of p in a half-open interval (r] (with  < r real numbers). Let us denote also by vh(p) the number of sign variations in the sequence of the coefficients of the polynomial ph(x) = p(x + h). In particular, one has v(p) = v0(p) with the notation of the preceding section.

Budan’s theorem is the following:

is a nonnegative even integer.

As #(l,r] is non negative, this implies v_ell(p) >= v_r(p). This is a generalization of Descartes’ rule of signs, as, if one chooses r sufficiently large, it is larger than all real roots of p, and all the coefficients of pr(x) are positive, that is vr(p) = 0. Thus v0(p) = v0(p) – vr(p), and #{+} = #(0,r), which makes Descartes’ rule of signs a special case of Budan’s theorem.

As for Descartes’ rule of signs, if vl(p) – vr(p) <= 1, one has #(l ,r] = vl(p) – vr(p). This means that, if vl(p) – vr(p) <= 1, one has a “zero-root test” and a “one-root test”.


1. Given the polynomial p(x) = x^3 – 7x + 7, and the open interval (0,2), one has

Thus, v0(p) – v2(p) = 2 – 0 = 2, and Budan’s theorem asserts that the polynomial p(x) has either two or zero real roots in the open interval (0,2).

2. With the same polynomial p(x) = x^3 – 7x + 7 one has

Thus, v0(p) – v1(p) = 2 – 2 = 0 and Budan’s theorem asserts that the polynomial p(x) has no real root in the open interval (0,1) This is an example of the use of Budan’s theorem as a zero-root test.

Fourier’s Statement

The Fourier’s theorem on polynomial real roots, also called Fourier–Budan theorem or Budan–Fourier theorem (sometimes just Budan’s theorem) is exactly the same as Budan’s theorem, except that, for h = l and r, the sequence of the coefficients of p(x + h) is replaced by the sequence of the derivatives of p at h.

Each theorem is a corollary of the other. This results from the Taylor expansion

of the polynomial p at h, which implies that the coefficient of xi in p(x + h) is the quotient of p^(i)(h) by i!, a positive number. Thus the sequences considered in Sturm’s theorem and in Budan’s theorem have the same number of sign variations.

This strong relationship between the two theorems may explain the priority controversy that occurred in 19th century, and the use of several names for the same theorem. In modern usage, for computer computation, Budan’s theorem is generally preferred since the sequences have much larger coefficients in Fourier’s theorem than in Budan’s, because of the factorial factor.


Consider a polynomial p(x), and an interval (l,r]. When the value of x increases from l to r, the number of sign variations in the sequence of the derivatives of p may change only when the value of x pass through a root of p or one of its derivatives.

Let us denote by f either the polynomial p or any of its derivatives. For any root h of multiplicity m of f, this polynomial is well approximated near h by a(x-h)^m for some constant a. Moreover, for i = 1, …, m, its ith derivative is approximated by:

It follows that, in the sequence formed by f and its m first derivatives, there are m sign variations for x < h and zero for x ≥ h. This shows that, when x increases and pass through a root of p of multiplicity m, then the number of sign variations in the sequence of the derivative decreases of m.

Now, for i > 0, let h be a root of the ith derivative f = p^(i) of p, which is not a root of p^(i-1). There are two cases to be considered. If the multiplicity m of the root h is even, then f = p^(i) and p^(i-1) keep a constant sign when x pass through h. This implies that the number of sign of variation in the sequence of derivatives decrease by the even number m. On the other hand, if m is odd, f = p^(i) changes of sign at h, while p^(i-1) does not. There are thus m + 1 sign variations. Thus, when x pass through h, the number of sign variation decrease either of m or m + 1, which are nonnegative even numbers in each case.


The problem of counting and locating the real roots of a polynomial started to be systematically studied only in the beginning of the 19th. In 1807, François Budan de Boislaurent discovered a method for extending Descartes’ rule of signs—valid for the interval (0, +∞)—to any interval.[2] Joseph Fourier published a similar theorem in 1820,[3] on which he worked for more than twenty years.[4]

Because of the similarity between the two theorems, there was a priority controversy,[5][6] despite the fact that the two theorems were discovered independently.[4] It was generally Fourier’s formulation and proof that were used, during the 19th century, in textbooks on the theory of equations.

Budan’s and Sturm theorems were soon considered of a great importance, although they do not solve completely the problem of counting the number of real roots of a polynomial in an interval. This problem was completely solved in 1827 by Sturm.

Although Sturm’s theorem is not based on Descartes’ rule of signs, Sturm’s and Fourier’s theorems are related not only by the use of the number of sign variations of a sequence of numbers, but also by a similar approach of the problem. Sturm himself acknowledged having been inspired by Fourier’s methods:[7] « C’est en m’appuyant sur les principes qu’il a posés, et en imitant ses démonstrations, que j’ai trouvé les nouveaux théorèmes que je vais énoncer. » which translates into « It is by relying upon the principles he has laid out and by imitating his proofs that I have found the new theorems which I am about to present. » Because of this, during the 19th century, Fourier’s and Sturm’s theorems appeared together in almost all books on the theory of equations.

Fourier and Budan left open the problem of reducing the size of the intervals in which roots are searched in a way that, eventually, the difference between the numbers of sign variations is at most one, allowing certifying that the final intervals contains at most one root each. This problem was solved in 1834 by Alexandre Joseph Hidulph Vincent.[8]Roughly speaking, Vincent’s theorem consists of using continued fractions for replacing Budan’s linear transformations of the variable by Möbius transformations.

Budan’s, Fourier’s and Vincent theorem sank into oblivion at the end of 19th century. The last author mentioning these theorems before the second half of 20th century Joseph Alfred Serret.[9] There were introduced again in 1976 by Collins and Akritas, for providing, in computer algebra, an efficient algorithm for real roots isolation on computers.[10]


  1. This means that a root of multiplicity m is counted as m roots.
  2. Budan, François D. (1807). Nouvelle méthode pour la résolution des équations numériques. Paris: Courcier.
  3. Fourier, Jean Baptiste Joseph (1820). “Sur l’usage du théorème de Descartes dans la recherche des limites des racines”Bulletin des Sciences, par la Société Philomatique de Paris: 156–165.
  4. Arago, François (1859), Biographies of distinguished scientific men, Boston: Ticknor and Fields (English Translation), p. 383
  5. Akritas, Alkiviadis G. (1981). “On the Budan–Fourier Controversy”ACM SIGSAM Bulletin15 (1): 8–10. doi:10.1145/1089242.1089243.
  6. Akritas, Alkiviadis G. (1982). “Reflections on a Pair of Theorems by Budan and Fourier”. Mathematics Magazine55 (5): 292–298. doi:10.2307/2690097. JSTOR 2690097.
  7. Hourya, Benis-Sinaceur (1988). “Deux moments dans l’histoire du Théorème d’algèbre de Ch. F. Sturm”Revue d’histoire des sciences41 (2): 108.
  8. Vincent, Alexandre Joseph Hidulph (1834). “Mémoire sur la résolution des équations numériques”Mémoires de la Société Royale des Sciences, de l’ Agriculture et des Arts, de Lille: 1–34.
  9. Serret, Joseph A. (1877). Cours d’algèbre supérieure. Tome I. Gauthier-Villars. pp. 363–368.
  10. Collins, G. E., & Akritas, A. G. (1976, August). Polynomial real root isolation using Descarte’s rule of signs. In Proceedings of the third ACM symposium on Symbolic and algebraic computation (pp. 272-275). ACM.

0 Sale

Share Now!

Release Information

  • Price


  • Released

    June 13, 2019

  • Last Updated

    June 22, 2019

Share Your Valuable Opinions