Macaulay2 » Documentation
Packages » RealRoots :: budanFourierBound
next | previous | forward | backward | up | index | toc

budanFourierBound -- a bound for the number of real roots with multiplicity of a univariate polynomial with rational coefficients

Description

This computes the bound from the Budan-Fourier Theorem for the number of real roots in the interval (a,b], counted with multiplicity, of a univariate polynomial f with rational coefficients. It assumes an unspecified interval is $(-\infty, \infty)$. Note that ring f is allowed to be multivariate.

i1 : R = QQ[t]

o1 = R

o1 : PolynomialRing
i2 : f = 45 - 39*t - 34*t^2 + 38*t^3 - 11*t^4 + t^5

      5      4      3      2
o2 = t  - 11t  + 38t  - 34t  - 39t + 45

o2 : R
i3 : budanFourierBound(f)

o3 = 5
i4 : g = (t + 5)*(t + 3)*(t + 1)*(t - 1)^2*(t - 4)*(t - 6)

      7     6      5      4       3       2
o4 = t  - 3t  - 40t  + 86t  + 357t  - 443t  - 318t + 360

o4 : R
i5 : budanFourierBound(g,-6,infinity)

o5 = 7
i6 : budanFourierBound(g,-1,5)

o6 = 3

We also provide examples when the interval includes $-\infty$ or $\infty$.

i7 : budanFourierBound(g,-infinity,0)

o7 = 3
i8 : budanFourierBound(g,3,infinity)

o8 = 2
i9 : budanFourierBound(g,-infinity,infinity)

o9 = 7

Ways to use budanFourierBound:

  • budanFourierBound(RingElement)
  • budanFourierBound(RingElement,QQ,QQ)

For the programmer

The object budanFourierBound is a method function.


The source of this document is in /build/reproducible-path/macaulay2-1.25.05+ds/M2/Macaulay2/packages/RealRoots.m2:930:0.