Macaulay2 » Documentation
Packages » Resultants :: resultant(...,Algorithm=>...)
next | previous | forward | backward | up | index | toc

resultant(...,Algorithm=>...)

Synopsis

Description

This is an option that determines which algorithm will be used to compute the resultant. There are currently four algorithms implemented:

"Poisson" (default) the resultant is computed, recursively, through the Poisson Formula (see [1, Theorem 3.4]);

"Macaulay" the resultant is computed as a Macaulay resultant, i.e. as a ratio of two determinants (see [1, Theorem 4.9]);

"Poisson2" and "Macaulay2" these are variants of the above ones using interpolation of multivariate polynomials.

[1] David A. Cox, John Little, Donal O'shea - Using Algebraic Geometry, Graduate Texts in Mathematics, Volume 185 (2005).

i1 : R = QQ[a,b][x,y,z,w]

o1 = R

o1 : PolynomialRing
i2 : F = {(7/3)*x+(7/2)*y+z+2*w, ((10/7)*a+b)*x^2+(a+(5/4)*b)*x*y+(2*a+(1/2)*b)*y^2+((7/8)*a+(7/5)*b)*x*z+((3/4)*a+b)*y*z+((7/8)*a+(1/7)*b)*z^2+((5/7)*a+(4/3)*b)*x*w+(9*a+10*b)*y*w+((7/5)*a+(3/4)*b)*z*w+((4/3)*a+5*b)*w^2, ((1/2)*a+(7/5)*b)*x^3+((1/2)*a+10*b)*x^2*y+((8/9)*a+(3/5)*b)*x*y^2+(a+(7/6)*b)*y^3+((3/7)*a+(3/4)*b)*x^2*z+((1/3)*a+(9/10)*b)*x*y*z+((9/4)*a+b)*y^2*z+((1/6)*a+(1/5)*b)*x*z^2+(3*a+(5/2)*b)*y*z^2+((5/3)*a+(3/7)*b)*z^3+(a+b)*x^2*w+((4/5)*a+(5/4)*b)*x*y*w+((5/3)*a+(5/8)*b)*y^2*w+((3/2)*a+(1/6)*b)*x*z*w+((1/3)*a+(4/5)*b)*y*z*w+(9*a+(1/3)*b)*z^2*w+((7/3)*a+(5/4)*b)*x*w^2+(a+(3/4)*b)*y*w^2+((9/8)*a+(7/8)*b)*z*w^2+((9/7)*a+2*b)*w^3, 2*x+(1/4)*y+(8/3)*z+(4/5)*w}

      7    7             10       2        5              1   2    7   
o2 = {-x + -y + z + 2w, (--a + b)x  + (a + -b)x*y + (2a + -b)y  + (-a +
      3    2              7                4              2        8   
     ------------------------------------------------------------------------
     7         3             7    1   2    5    4                         7 
     -b)x*z + (-a + b)y*z + (-a + -b)z  + (-a + -b)x*w + (9a + 10b)y*w + (-a
     5         4             8    7        7    3                         5 
     ------------------------------------------------------------------------
       3         4        2   1    7   3    1         2     8    3     2     
     + -b)z*w + (-a + 5b)w , (-a + -b)x  + (-a + 10b)x y + (-a + -b)x*y  + (a
       4         3            2    5        2               9    5           
     ------------------------------------------------------------------------
       7   3    3    3   2     1     9           9       2     1    1     2  
     + -b)y  + (-a + -b)x z + (-a + --b)x*y*z + (-a + b)y z + (-a + -b)x*z  +
       6        7    4         3    10           4             6    5        
     ------------------------------------------------------------------------
           5     2    5    3   3           2     4    5           5    5   2 
     (3a + -b)y*z  + (-a + -b)z  + (a + b)x w + (-a + -b)x*y*w + (-a + -b)y w
           2          3    7                     5    4           3    8     
     ------------------------------------------------------------------------
        3    1           1    4                1   2     7    5     2       
     + (-a + -b)x*z*w + (-a + -b)y*z*w + (9a + -b)z w + (-a + -b)x*w  + (a +
        2    6           3    5                3         3    4             
     ------------------------------------------------------------------------
     3     2    9    7     2    9        3       1    8    4
     -b)y*w  + (-a + -b)z*w  + (-a + 2b)w , 2x + -y + -z + -w}
     4          8    8          7                4    3    5

o2 : List
i3 : time resultant(F,Algorithm=>"Poisson2")
     -- used 0.134725 seconds

       21002161660529014459938925799 5   2085933800619238998825958079203 4   
o3 = - -----------------------------a  - -------------------------------a b -
           2222549728809984000000            12700284164628480000000         
     ------------------------------------------------------------------------
     348237304382147063838108483692249 3 2  
     ---------------------------------a b  -
          889019891523993600000000          
     ------------------------------------------------------------------------
     38379949248928909714532254698073 2 3  
     --------------------------------a b  -
          35278567123968000000000          
     ------------------------------------------------------------------------
     1146977327343523453866040839029   4   194441910898734675845094443 5
     -------------------------------a*b  - ---------------------------b
          1119954511872000000000                895963609497600000

o3 : QQ[a..b]
i4 : time resultant(F,Algorithm=>"Macaulay2")
     -- used 0.0513792 seconds

       21002161660529014459938925799 5   2085933800619238998825958079203 4   
o4 = - -----------------------------a  - -------------------------------a b -
           2222549728809984000000            12700284164628480000000         
     ------------------------------------------------------------------------
     348237304382147063838108483692249 3 2  
     ---------------------------------a b  -
          889019891523993600000000          
     ------------------------------------------------------------------------
     38379949248928909714532254698073 2 3  
     --------------------------------a b  -
          35278567123968000000000          
     ------------------------------------------------------------------------
     1146977327343523453866040839029   4   194441910898734675845094443 5
     -------------------------------a*b  - ---------------------------b
          1119954511872000000000                895963609497600000

o4 : QQ[a..b]
i5 : time resultant(F,Algorithm=>"Poisson")
     -- used 0.272808 seconds

       21002161660529014459938925799 5   2085933800619238998825958079203 4   
o5 = - -----------------------------a  - -------------------------------a b -
           2222549728809984000000            12700284164628480000000         
     ------------------------------------------------------------------------
     348237304382147063838108483692249 3 2  
     ---------------------------------a b  -
          889019891523993600000000          
     ------------------------------------------------------------------------
     38379949248928909714532254698073 2 3  
     --------------------------------a b  -
          35278567123968000000000          
     ------------------------------------------------------------------------
     1146977327343523453866040839029   4   194441910898734675845094443 5
     -------------------------------a*b  - ---------------------------b
          1119954511872000000000                895963609497600000

o5 : QQ[a..b]
i6 : time resultant(F,Algorithm=>"Macaulay")
     -- used 0.530617 seconds

       21002161660529014459938925799 5   2085933800619238998825958079203 4   
o6 = - -----------------------------a  - -------------------------------a b -
           2222549728809984000000            12700284164628480000000         
     ------------------------------------------------------------------------
     348237304382147063838108483692249 3 2  
     ---------------------------------a b  -
          889019891523993600000000          
     ------------------------------------------------------------------------
     38379949248928909714532254698073 2 3  
     --------------------------------a b  -
          35278567123968000000000          
     ------------------------------------------------------------------------
     1146977327343523453866040839029   4   194441910898734675845094443 5
     -------------------------------a*b  - ---------------------------b
          1119954511872000000000                895963609497600000

o6 : QQ[a..b]
i7 : assert(o3 == o4 and o4 == o5 and o5 == o6)

Further information

See also

Functions with optional argument named Algorithm :