Opérations sur les bases de Groebner¶
Opérations de base¶
-
baseGroebner
([f1, f2, ..., fn, ][var1, var2, ..., vark, ]domaine, ordre)¶ la base de Groebner réduite engendrant l’ideal \(I = <f_1,f_2,...,f_k>\) selon l’ordre monomial (“lex”, “grevlex”, “grlex”, etc)
- Paramètres
[f1,f2,..,fn] – une liste de polynômes
[var1,var2,..,vark] – la liste des variables avec var1>var2>…>vark
domaine – en ensemble (QQ pour \(\mathbb{Q}\), RR pour \(\mathbb{R}\), CC pour \(\mathbb{C}\))
ordre – un ordre monomial (“lex”, “grevlex”, “grlex”, etc)
Exemple :
simula : baseGroebner([x*y-y, x-y^2], [x,y], QQ, lex)
Base : [x - y^2, y^3 - y]
Domaine : QQ
Ordre : lex
Variables: (x, y) , x > y
simula : baseGroebner([x*y-y^2, x^2-z^2], [x,y,z], QQ, grevlex)
Base : [y^3 - y*z^2, x^2 - z^2, x*y - y^2]
Domaine : QQ
Ordre : grevlex
Variables: (x, y, z) , x > y > z
Note
Pour avoir une base de groebner avec l’algorithme F5, il faut utiliser la fonction baseGroebnerF5. Par exemple :
simula : baseGroebnerF5([x*y-y, x-y^2], [x,y], QQ, lex)
Base : [x - y^2, y^3 - y]
Domaine : QQ
Ordre : lex
Variables: (x, y) , x > y
simula : baseGroebnerF5([x*y-y^2, x^2-z^2], [x,y,z], QQ, grevlex)
Base : [y^3 - y*z^2, x^2 - z^2, x*y - y^2]
Domaine : QQ
Ordre : grevlex
Variables: (x, y, z) , x > y > z
-
buchberger
([f1, f2, ..., fn, ][var1, var2, ..., vark, ]domaine, ordre)¶ la base de Groebner (obtenue à partir de l’algorithme de Buchberger classique) engendrant l’ideal \(I = <f_1,f_2,...,f_k>\) selon l’ordre monomial (“lex”, “grevlex”, “grlex”, etc)
- Paramètres
[f1,f2,..,fn] – une liste de polynômes
[var1,var2,..,vark] – la liste des variables avec var1>var2>…>vark
domaine – en ensemble (QQ pour \(\mathbb{Q}\), RR pour \(\mathbb{R}\), CC pour \(\mathbb{C}\))
ordre – un ordre monomial (“lex”, “grevlex”, “grlex”, etc)
Exemple :
simula : buchberger([x*y-y, x-y^2], [x,y], QQ, lex)
Base : [x*y - y, x - y^2, y^3 - y]
Domaine : QQ
Ordre : lex
Variables: [x, y] , x > y
simula : buchberger([x*y-y^2, x^2-z^2], [x,y,z], QQ, grevlex)
Base : [x*y - y^2, x^2 - z^2, y^3 - y*z^2]
Domaine : QQ
Ordre : grevlex
Variables: [x, y, z] , x > y > z
-
estBaseGroebner
([f1, f2, ..., fn, ][var1, var2, ..., vark, ]domaine, ordre)¶ renvoie “OUI” si \([f_1,f_2,...,f_k]\) est une base de Groebner engendrant l’ideal \(I = <f_1,f_2,...,f_k>\) selon l’ordre monomial (“lex”, “grevlex”, “grlex”, etc) et “NON” dans le cas contraire
- Paramètres
[f1,f2,..,fn] – une liste de polynômes
[var1,var2,..,vark] – la liste des variables avec var1>var2>…>vark
domaine – en ensemble (QQ pour \(\mathbb{Q}\), RR pour \(\mathbb{R}\), CC pour \(\mathbb{C}\))
ordre – un ordre monomial (“lex”, “grevlex”, “grlex”, etc)
Exemple :
simula : estBaseGroebner([z+x, y-x], [z,y,x], QQ, lex)
Oui
simula : estBaseGroebner([x*y-y^2, x^2-z^2], [x,y,z], QQ, grevlex)
Non
-
spoly
(f, g, [var1, var2, ..., vark, ]domaine, ordre)¶ le S-polynôme de f et g
- Paramètres
f – un polynôme
g – un polynôme
[var1,var2,..,vark] – la liste des variables avec var1>var2>…>vark
domaine – en ensemble (QQ pour \(\mathbb{Q}\), RR pour \(\mathbb{R}\), CC pour \(\mathbb{C}\))
ordre – un ordre monomial (“lex”, “grevlex”, “grlex”, etc)
Exemple :
simula : spoly(x^3*y^2-x^2*y^3+x, 3x^4*y+y^2, [x,y], QQ, lex)
-x^3*y^3 + x^2 - y^3/3
-
coefDominant
(f, [var1, var2, ..., vark, ]domaine, ordre)¶ le coefficient dominant de f selon l’ordre monomial (“lex”, “grevlex”, “grlex”, etc).
- Paramètres
f – un polynôme
[var1,var2,..,vark] – la liste des variables avec var1>var2>…>vark
domaine – en ensemble (QQ pour \(\mathbb{Q}\), RR pour \(\mathbb{R}\), CC pour \(\mathbb{C}\))
ordre – un ordre monomial (“lex”, “grevlex”, “grlex”, etc)
Exemple :
simula : coefDominant(4x+y^2+y*z, [x,y,z], QQ, lex)
4
simula : coefDominant(3x*y-y^2-2x*y^5, [x,y,z], QQ, grevlex)
-2
-
monomeDominant
(f, [var1, var2, ..., vark, ]domaine, ordre)¶ le monôme dominant de f selon l’ordre monomial (“lex”, “grevlex”, “grlex”, etc).
- Paramètres
f – un polynôme
[var1,var2,..,vark] – la liste des variables avec var1>var2>…>vark
domaine – en ensemble (QQ pour \(\mathbb{Q}\), RR pour \(\mathbb{R}\), CC pour \(\mathbb{C}\))
ordre – un ordre monomial (“lex”, “grevlex”, “grlex”, etc)
Exemple :
simula : monomeDominant(4x+y^2+y*z, [x,y,z], QQ, lex)
x
simula : monomeDominant(3x*y-y^2-2x*y^5, [x,y,z], QQ, grevlex)
x*y^5
-
termeDominant
(f, [var1, var2, ..., vark, ]domaine, ordre)¶ le terme dominant de f selon l’ordre monomial (“lex”, “grevlex”, “grlex”, etc).
- Paramètres
f – un polynôme
[var1,var2,..,vark] – la liste des variables avec var1>var2>…>vark
domaine – en ensemble (QQ pour \(\mathbb{Q}\), RR pour \(\mathbb{R}\), CC pour \(\mathbb{C}\))
ordre – un ordre monomial (“lex”, “grevlex”, “grlex”, etc)
Exemple :
simula : termeDominant(4x+y^2+y*z, [x,y,z], QQ, lex)
4*x
simula : termeDominant(3x*y-y^2-2x*y^5, [x,y,z], QQ, grevlex)
-2*x*y^5
-
NF
(f, G, [var1, var2, ..., vark, ]domaine, ordre)¶ la forme normale de f par rapport à G selon l’ordre monomial (“lex”, “grevlex”, “grlex”, etc).
- Paramètres
f – un polynôme
G – une famille de polynôme
[var1,var2,..,vark] – la liste des variables avec var1>var2>…>vark
domaine – en ensemble (QQ pour \(\mathbb{Q}\), RR pour \(\mathbb{R}\), CC pour \(\mathbb{C}\))
ordre – un ordre monomial (“lex”, “grevlex”, “grlex”, etc)
Exemple :
simula : NF(x^3*y^2-x^2*y^3+x, [x^2-y,x*y-1], [x,y], QQ, lex)
x - y^4 + y^2
simula : NF(3x*y-y^2-2x*y^5, [x*y-y, y^2-1], [x,y,z], QQ, grevlex)
1 - y
-
weakNF
(f, G, [var1, var2, ..., vark, ]domaine, ordre)¶ la forme normale faible de f par rapport à G selon l’ordre monomial (“lex”, “grevlex”, “grlex”, etc).
- Paramètres
f – un polynôme
G – une famille de polynôme
[var1,var2,..,vark] – la liste des variables avec var1>var2>…>vark
domaine – en ensemble (QQ pour \(\mathbb{Q}\), RR pour \(\mathbb{R}\), CC pour \(\mathbb{C}\))
ordre – un ordre monomial (“lex”, “grevlex”, “grlex”, etc)
Exemple :
simula : weakNF(x^3*y^2-x^2*y^3+x, [x^2-y,x*y-1], [x,y], QQ, lex)
x - y^4 + y^2
simula : weakNF(3x*y-y^2-2x*y^5, [x*y-y, y^2-1], [x,y,z], QQ, grevlex)
1 - y
Applications des bases de Groebner¶
-
ideal
(G, [var1, var2, ..., vark, ]K, ordre)¶ l’ideal de \(K[var_1,...,var_k]\) engendré par la famille des polynômes G.
- Paramètres
G – une famille de polynôme
[var1,var2,..,vark] – la liste des variables avec var1>var2>…>vark
K – en ensemble (QQ pour \(\mathbb{Q}\), RR pour \(\mathbb{R}\), CC pour \(\mathbb{C}\))
ordre – un ordre monomial (“lex”, “grevlex”, “grlex”, etc)
Exemple :
simula : I = ideal([x^2*y-z, x*y-1], [x,y,z], QQ, grevlex)
I = idéal de QQ[x, y, z] engendré par [x^2*y - z, x*y - 1]
Note
Vous pouvez déterminer la base de Groebner engendrant un idéal I comme suit:
simula : I = ideal([x^2*y-z, x*y-1], [x,y,z], QQ, grevlex)
simula : baseGroebner(I)
Base : [y*z - 1, x - z]
Domaine : QQ
Ordre : grevlex
Variables: (x, y, z) , x > y > z
simula : baseGroebnerF5(I)
Base : [y*z - 1, x - z]
Domaine : QQ
Ordre : grevlex
Variables: (x, y, z) , x > y > z
-
idealMonomial
(I)¶ l’ideal engendré par la famille des monômes de I.
- Paramètres
I – un idéal
Exemple :
simula : I = ideal([x^2*y-y, x*y-1], [x,y], QQ, grevlex)
I = idéal de QQ[x, y] engendré par [x^2*y - y, x*y - 1]
simula : Im = idealMonomial(I)
Im = idéal de QQ[x, y] engendré par [y^2, x]
Appartenance à un idéal¶
-
estDansIdeal
(f, I)¶ renvoie “OUI” si f appartient à l’ideal I et “NON” dans le cas contraire.
- Paramètres
I – un idéal
f – un polynôme
Exemple :
simula : I = ideal([x^2*y-z, x*y-1], [x,y,z], QQ, grevlex)
I = idéal de QQ[x, y, z] engendré par [x^2*y - z, x*y - 1]
simula : estDansIdeal(x*y-z, I)
Non
simula : estDansIdeal(x-z, I)
Oui
Appartenance au radical d’un idéal¶
-
estDansRadIdeal
(f, I)¶ renvoie “OUI” si f appartient radical de l’ideal I (\(\sqrt{I}\)) et “NON” dans le cas contraire.
- Paramètres
f – un polynôme
I – un idéal
Exemple :
simula : I = ideal([x^2*y-z, x*y-1], [x,y,z], QQ, grevlex)
I = idéal de QQ[x, y, z] engendré par [x^2*y - z, x*y - 1]
simula : estDansRadIdeal(x*y-z, I)
Non
Egalité de deux idéaux¶
-
ideauxEgaux
(I1, I2)¶ renvoie “OUI” si l’idéal I1 est égal à l’ideal I2 et “NON” dans le cas contraire.
- Paramètres
I1 – un idéal
I2 – un idéal
Exemple :
simula : I = ideal([x^2*y-z, x*y-1], [x,y,z], QQ, grevlex)
I = idéal de QQ[x, y, z] engendré par [x^2*y - z, x*y - 1]
simula : J = ideal([x^2*y-z, x*y-1, x-z], [x,y,z], QQ, grevlex)
J = idéal de QQ[x, y, z] engendré par [x^2*y - z, x*y - 1, x + z]
simula : ideauxEgaux(I, J)
Oui