SNAP[DistanceToCommonDivisors] - compute a lower bound on the distance between a pair of univariate polynomials and the set of univariate polynomial pairs with a common root
SNAP[DistanceToSingularPolynomials] - compute a lower bound on the distance between a univariate polynomial and the set of univariate polynomials with a double root
|
Calling Sequence
|
|
DistanceToCommonDivisors(a, b, z, tau = eps, out)
DistanceToSingularPolynomials(a, z, tau = eps, out)
|
|
Parameters
|
|
a, b
|
-
|
univariate numeric polynomials
|
z
|
-
|
name; indeterminate for a and b
|
tau = eps
|
-
|
(optional) equation where eps is of type numeric and non-negative; stability parameter
|
out
|
-
|
(optional) equation of the form output = obj where obj is one of 'LB', 'BC', 'E', 'LAB', 'QGCD', 'RB' or 'UR', or a list containing one or more instances of these names; select result objects to compute
|
|
|
|
|
Description
|
|
•
|
The DistanceToCommonDivisors(a, b, z) command returns a lower bound on the distance between (a,b) and the set of 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. Thus, the input polynomials a and b are regarded as polynomials in z.
|
|
This lower bound is a non-negative floating-point number obtained by computing in a weakly stable way the first and the last columns of the inverse of the Sylvester matrix defined by polynomials a and b. More precisely, denoting these two columns by c1 and c2, the lower bound is defined in [1] as the inverse of || [c1, c2] ||.
|
|
Here, the norm || || is based on the classical 1-norm for vectors. If C is an m by n matrix, || C || is the maximum value of the sum sum(abs(C[i, j]), i=1..m) for j=1..n.
|
|
If the problem of computing the columns c1, c2 from the Sylvester matrix S is well-conditioned, the DistanceToCommonDivisors(a, b, z) call returns the above lower bound. Otherwise, FAIL is returned because a numerical answer would be meaningless ("weak stability"). However, the cause of failure can be displayed by setting infolevel[DistanceToCommonDivisors] to 5.
|
•
|
The DistanceToSingularPolynomials(a, z) command returns a lower bound on the distance between a univariate numeric polynomial and the set of univariate complex polynomials with a double root. It essentially calls DistanceToSingularPolynomials(a, b, z) with b = diff(a, z).
|
•
|
The optional stability parameter tau can be set to any non-negative value eps to control the quality of the output. Decreasing eps yields a more reliable solution. Increasing eps reduces the risk of failure.
|
•
|
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 of the following quantities:
|
|
* The lower bound LB is a non-negative float or FAIL.
|
|
* The list BC is equal to [v, u], the numeric polynomials in z that satisfy av+bu=1 and and (bezout coefficients for coprime polynomials a and b). This list is empty if and only if the algorithm fails to compute a reliable lower bound.
|
|
* The list LAB is equal to [a', b'] where a', b' are the numeric polynomials in z that define the last accepted basis in [2].
|
|
* QGCD can take the following values: the precision of the quasi-GCD found; in this case, the quasi-GCD is a', the first component of the last accepted basis. When no quasi-GCD is found, .
|
|
* List RB of the indices of all the bases (see [2]) rejected during the computation.
|
|
* UR contains a 2 by 2 unimodular matrix polynomial U in z such that where (a', b') is the last basis accepted by the algorithm of [2].
|
|
|
Examples
|
|
>
|
|
>
|
|
| (1) |
>
|
|
| (2) |
>
|
|
| (3) |
>
|
|
| (4) |
>
|
|
| (5) |
A call to DistanceToSingularPolynomials(a,z) is essentially a call to DistanceToCommonDivisors(a,diff(a,z),z).
>
|
|
| (6) |
>
|
|
| (7) |
>
|
|
| (8) |
>
|
|
| (9) |
|
|
References
|
|
|
Beckermann, B., and Labahn, G. "A fast and numerically stable Euclidean-like algorithm for detecting relativly 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.
|
|
|