REDUCE

9.7 RESULTANT Operator

This is used with the syntax

     RESULTANT(EXPRN1:polynomial,EXPRN2:polynomial,VAR:kernel):  
        polynomial.

It computes the resultant of the two given polynomials with respect to the given variable, the coefficients of the polynomials can be taken from any domain. The result can be identified as the determinant of a Sylvester matrix, but can often also be thought of informally as the result obtained when the given variable is eliminated between the two input polynomials. If the two input polynomials have a non-trivial GCD their resultant vanishes.

The switch BEZOUT controls the computation of the resultants. It is off by default. In this case a subresultant algorithm is used. If the switch Bezout is turned on, the resultant is computed via the Bezout Matrix. However, in the latter case, only polynomial coefficients are permitted.

The sign conventions used by the resultant function follow those in R. Loos, “Computing in Algebraic Extensions” in “Computer Algebra — Symbolic and Algebraic Computation”, Second Ed., Edited by B. Buchberger, G.E. Collins and R. Loos, Springer-Verlag, 1983. Namely, with A and B not dependent on X:

                               deg(p)*deg(q)  
   resultant(p(x),q(x),x)= (-1)             *resultant(q,p,x)  
 
                            deg(p)  
   resultant(a,p(x),x)   = a  
 
   resultant(a,b,x)      = 1

Examples:

                                     2  
   resultant(x/r*u+y,u*y,u)   ->  - y

calculation in an algebraic extension:

   load arnum;  
   defpoly sqrt2**2 - 2;  
 
   resultant(x + sqrt2,sqrt2 * x +1,x) -> -1

or in a modular domain:

   setmod 17;  
   on modular;  
 
   resultant(2x+1,3x+4,x)    -> 5