number of real roots of a polynomial in an interval
Sturm sequence of a polynomial
sturm(s, x, a, b)
polynomial in x with rational, float, or real algebraic coefficients
variable in polynomial p
Sturm sequence for polynomial p
rationals, floats, or real algebraic numbers such that a≤b; a can be −∞ and b can be ∞
The procedure sturmseq computes a Sturm sequence for the polynomial p in x. It returns the Sturm sequence as a list of polynomials and replaces multiple roots with single roots.
The procedure sturm uses Sturm's theorem to return the number of real roots in the interval (a,b] of polynomial p in x. The first argument to sturm should be a Sturm sequence for p. This may be computed by sturmseq. Note: The interval excludes the lower endpoint a and includes the upper endpoint b (unless it is ∞).
While sturmseq uses some heuristics to detect zero when the input polynomial has floating point coefficients, the problem of computing the Sturm sequence is numerically ill-conditioned, so the result may be incorrect. Recomputing the input at a higher precision and increasing Digits, or converting all coefficients to rational numbers may help.
s ≔ sturmseq⁡expand⁡x−1⁢x−2⁢x−3,x
The sturm and sturmseq commands were updated in Maple 2018.
The p and a parameters were updated in Maple 2018.
Download Help Document