RESULTANT _ _ _ _ _ _ _ _ _ _ _ _ operator
The resultant operator computes the resultant of two polynomials with respect to a given variable. If the resultant is 0, the polynomials have a root in common.
resultant(<expression>,<expression>,<kernel>)
<expression> must be a polynomial containing <kernel> ; <kernel> must be a kernel.
resultant(x**2 + 2*x + 1,x+1,x); 0 resultant(x**2 + 2*x + 1,x-3,x); 16 resultant(z**3 + z**2 + 5*z + 5, z**4 - 6*z**3 + 16*z**2 - 30*z + 55, z); 0 resultant(x**3*y + 4*x*y + 10,y**2 + 6*y + 4,y); 6 5 4 3 2 Y + 18*Y + 120*Y + 360*Y + 480*Y + 288*Y + 64
The resultant is the determinant of the Sylvester matrix, formed f rom the coefficients of the two polynomials in the following way:
Given two polynomials:
n n-1 a x + a1 x + ... + an
and
m m-1 b x + b1 x + ... + bm
form the (m+n)x(m+n-1) Sylvester matrix by the following means:
0.......0 a a1 .......... an 0....0 a a1 .......... an 0 . . . . a0 a1 .......... an 0.......0 0.......0 b b1 .......... bm 0....0 b b1 .......... bm 0 . . . . b b1 .......... bm 0.......0
If the determinant of this matrix is 0, the two polynomials have a common root. Finding the resultant of large expressions is time-consuming, due to the time needed to find a large determinant.
The sign conventions resultant uses are those given in the article, ``Computing in Algebraic Extensions,'' by R. Loos, appearing in <Computer Algebra--Symbolic and Algebraic Computation>, 2nd ed., edited by B. Buchberger, G.E. Collins and R. Loos, and published by Springer-Verlag, 1983. These are:
resultant(p(x),q(x),x) = (-1)^{deg p(x)*deg q(x)} * resultant(q(x),p(x),x), resultant(a,p(x),x) = a^{deg p(x)}, resultant(a,b,x) = 1
where p(x) and q(x) are polynomials which have x as a variable, an d a and b are free of x.
Error messages are given if resultant is given a non-polynomial expression, or a non-kernel variable.