2009-08-13 14 views
2

J'ai essayé d'utiliser l'algorithme de Buchberger (voir aussi: http://en.wikipedia.org/wiki/Buchberger%27s_Algorithm et http://www.geocities.com/famancin/buchberger.html) pour calculer une base Groebner pour un idéal dans le domaine rationnel, voici mon script GAP:Comment calculer base Groebner simplifiée dans le script GAP

F := Rationals; 
R := PolynomialRing(F, [ "x", "y", "z" ]); 
x := IndeterminatesOfPolynomialRing(R)[1]; 
y := IndeterminatesOfPolynomialRing(R)[2]; 
z := IndeterminatesOfPolynomialRing(R)[3]; 
I := Ideal (R, [x^2+2*x*y^2, x*y + 2*y^3 - 1]); 
ord := MonomialLexOrdering(x,y,z); 

GroebnerBasis(I, ord); 

mais le résultat est toujours ceci:

[ 2*x*y^2+x^2, 2*y^3+x*y-1, -x, -4*y^4+2*y, 2*y^3-1 ] 

de toute évidence, le quatrième peut être complètement divisé par la dernière base, le premier et le second peut être complètement divisé par la troisième base. Le résultat attendu devrait ressembler à ceci:

[ -x, 2*y^3-1 ] 

Alors ma question est de savoir comment obtenir la base Groebner simplifiée GAP?

Répondre

3

Essayez la commande ReducedGroebnerBasis:

gap> ReducedGroebnerBasis(I, ord); 
[ y^3-1/2, x ]