RESULTANT INDEX

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.

syntax:

resultant(<expression>,<expression>,<kernel>)

<expression> must be a polynomial containing <kernel> ; <kernel> must be a kernel.

examples:


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.