AreCoprime - Maple Help

SNAP

 AreCoprime
 determine if two numeric polynomials are relatively prime up to a given error bound
 IsSingular
 determine if a numeric polynomial has a double root up to a given error bound

 Calling Sequence AreCoprime(a, b, z, eps, out) IsSingular(a, z, eps, out)

Parameters

 a, b - univariate numeric polynomials z - name; indeterminate for a and b eps - non-negative numeric; error bound out - (optional) equation of the form output = obj where obj is 'BC' or a list containing one or more instances of this name; select result objects to compute

Description

 • The AreCoprime(a, b, z, eps) command checks whether univariate numeric polynomials a, b in z remain coprime after perturbations of order eps. This is done by computing reliable lower and upper bounds on the distance between the pair (a, b) and the set of the univariate complex polynomial pairs in z with degrees that do not exceed those of a and b, and that have at least one common root. (See SNAP[DistanceToCommonDivisors].)
 The lower bound LB is obtained using the SNAP[DistanceToCommonDivisors] function. The upper bound UP is the minimum between the 1-norm of a and the 1-norm of b.
 If eps > UP, false is returned;
 if eps < LB, true is returned;
 if LB <= eps <= UP, FAIL is returned because it is impossible to provide a reliable answer.
 • The IsSingular(a, z, eps) command checks whether the univariate numeric polynomial a in z has common roots up to perturbations of order eps. It essentially calls AreCoprime(a, b, z) with b = diff(a, z).
 • The output option (out) determines the content of the returned expression sequence.
 As specified by the out option, Maple returns an expression sequence containing one or more BC, which is the list [v, u] of the numeric polynomials in z that satisfy av+bu=1 and $\mathrm{degree}\left(u,z\right)<\mathrm{degree}\left(a,z\right)$ and $\mathrm{degree}\left(v,z\right)<\mathrm{degree}\left(b,z\right)$ (bezout coefficients for coprime polynomials a and b). This list is empty if the routine returns false or FAIL.

Examples

 > $\mathrm{with}\left(\mathrm{SNAP}\right):$
 > $a≔0.1{z}^{2}+1.5z-0.2$
 ${a}{≔}{0.1}{}{{z}}^{{2}}{+}{1.5}{}{z}{-}{0.2}$ (1)
 > $b≔0.2{z}^{3}+0.15$
 ${b}{≔}{0.2}{}{{z}}^{{3}}{+}{0.15}$ (2)
 > $\mathrm{AreCoprime}\left(a,b,z,0.5\right)$
 ${\mathrm{false}}$ (3)
 > $\mathrm{AreCoprime}\left(a,b,z,0.1\right)$
 ${\mathrm{true}}$ (4)
 > $c≔\mathrm{AreCoprime}\left(a,b,z,0.1,\mathrm{output}='\mathrm{BC}'\right)$
 ${c}{≔}{\mathrm{true}}{,}\left[{-}{0.871004100817766}{}{{z}}^{{2}}{-}{0.112232907263963}{}{z}{-}{0.0585145926760834}{,}{0.435502050408883}{}{z}{+}{6.58864720976522}\right]$ (5)
 > $\mathrm{fnormal}\left(\mathrm{expand}\left(ac\left[2\right]\left[1\right]+bc\left[2\right]\left[2\right]\right)\right)$
 ${1.}$ (6)

References

 Beckermann, B., and Labahn, G. "A fast and numerically stable Euclidean-like algorithm for detecting relatively prime numerical polynomials." Journal of Symbolic Computation. Vol. 26, (1998): 691-714.
 Beckermann, B. and Labahn, G. "When are two numerical polynomials relatively prime?" Journal of Symbolic Computation. Vol. 26, (1998): 677-689.