Bound for the roots of a univariate polynomial
MuPAD® notebooks will be removed in a future release. Use MATLAB® live scripts instead.
MATLAB live scripts support most MuPAD functionality, though there are some differences. For more information, see Convert MuPAD Notebooks to MATLAB Live Scripts.
numeric::polyrootbound(p) returns a bound b,
such that all real and complex roots z of
the univariate polynomial p satisfy |z|
The coefficients of
p may be real or complex
numbers. Also exact numerical coefficients such as π, etc. are accepted
if they can be converted to floats.
For non-zero constant polynomials,
For monomials p(x)
= cn xn with n >
Consider the polynomial p(z) = zn + cn - 1 zn - 1 + ··· + c0. If max(|cn - 1|, …, |c0|) > 0, the polynomial
has a single real root b >
0 which is an upper bound for the absolute values
of all real and complex roots of p.
The bound returned by
numeric::polyrootbound(p) approximates b to
about 3 leading decimal digits.
The function is sensitive to the environment variable
which determines the numerical working precision.
Both polynomial expressions as well as
DOM_POLY objects may be
used to specify the polynomial:
p := x^3 + PI*x - sqrt(2): numeric::polyrootbound(p)
p := poly(p, [x]): numeric::polyrootbound(p)
The absolute values of all real and complex roots of p are bounded by this number:
max(abs(z) $ z in %)
A univariate polynomial expression or a univariate polynomial
of domain type
Nonnegative real floating-point number or