<< Chapter < Page | Chapter >> Page > |
In our above example, it turns out though that we would have been better off first trying to cancel the leading terms of and : the polynomial
has a leading term which properly divides that of , and in fact we see that once we have , the polynomial is redundant since . We must then check the -polynomials of with , , and (this is enough since we've already looked at every pair from ):
and we see that the remainders are all zero, so is a Gröbner basis for . The set is also a Gröbner basis for this ideal, but is redundant, so we may as well leave it out.
Elimination of variables
We may want to try to find elements of an ideal which only involve some of the variables . For example, to find an implicit equation for the curve given parametrically by , we would like to find an element of the ideal that only involves and and not .
It turns out that to do this, all we need to do is find a Gröbner basis for the ideal in Lex order. This is because in Lex order, if the leading term of a polynomial only involves the variables , then in fact all of its terms involve only . Thus we have
and if is a Gröbner basis for in Lex order, then is a Gröbner basis (and hence a generating set!) for . See 3.1 in Cox, Little, O'Shea for more details.
Thus, to “eliminate” variables from our ideal (i.e. find the polynomials in the ideal which only involve the other variables), we just need to put the variables to be eliminated first in Lex order and find a Gröbner basis for the ideal. This is something very special about Lex order: none of the other orders we've looked at are “elimination orders” in this sense.
Sample Code
Here is a sample session in Macaulay 2 computing a Gröbner basis for in graded lex order:
Macaulay 2, version 1.2
with packages: Elimination, IntegralClosure, LLLBases, PrimaryDecomposition, ReesAlgebra, SchurRings, TangentCone
i1 : R=QQ[x,y,z,MonomialOrder=>GLex]
o1 = R
o1 : PolynomialRing
i2 : f=x^2*y+y^2*z
2 2
o2 = x y + y z
o2 : R
i3 : g=x*y^2+z^2
2 2o3 = x*y + z
o3 : R
i4 : I=ideal(f,g)
2 2 2 2
o4 = ideal (x y + y z, x*y + z )
o4 : Ideal of R
i5 : gens gb I
o5 = | xy2+z2 x2y+y2z y3z-xz2 x2z2+yz3 |
1 4o5 : Matrix R <--- R
i6 : h=y^4*z^2+x^3*z^2
4 2 3 2
o6 = y z + x z
o6 : R
i7 : h % I
o7 = 0
o7 : R
i8 : h // gens gb I
o8 = {3} | -xyz | {3} | y2z |
{4} | 0 | {4} | x |
4 1
o8 : Matrix R <--- R
Here is some code computing the same Gröbner basis in Singular:
SINGULAR /
A Computer Algebra System for Polynomial Computations / version 3-1-0 0< by: G.-M. Greuel, G. Pfister, H. Schoenemann \ Mar 2009
FB Mathematik der Universitaet, D-67653 Kaiserslautern \> ring R = 0,(x,y,z),Dp; //Dp = glex, lp=lex, dp=grevlex> poly f=x^2*y+y^2*z;> poly g=x*y^2+z^2;> ideal I=f,g; // An "ideal" for Singular is just a list of polynomials.> I; // This line is just to display I.
I[1]=x2y+y2z
I[2]=xy2+z2> ideal gI=groebner(I);> gI;
gI[1]=xy2+z2
gI[2]=x2y+y2z
gI[3]=y3z-xz2
gI[4]=x2z2+yz3> poly h=y^4*z^2+x^3*z^2; // Next we will divide h by the list of polynomials I, which> reduce(h,I); // gives a warning since we aren't dividing by a Groebner basis.
// ** I is no standard basisy4z2+x3z2> reduce(h,gI);
0
Notification Switch
Would you like to follow the 'The art of the pfug' conversation and receive update notifications?