Travaux Pratiques
Algèbre Commutative et Géométrie Algébrique II. Résultants et bases de Gröbner (encore)
Bernard Le Stum 22 février 2021
1. Soient α et β des racines respectives de X2 `9 et X2 ´3. On cherche des polynôme annulateurs (à coefficients entiers) pour α`β, α´β, αβ et α{β.
(a) Faire l’exercice à la main.
Solution: On peut supposer que α “ 3i et β “ ´?
3 (et vérifier à la fin). On a donc
α`β“3i´
?3“2? 3j
et doncpα`βq6 “1728 et on peut donc prendre X6´1728. Le même polynôme marche aussi pour α´β. Pourαβ on peut prendre X2`27 et pour α{β, on peut prendre X2`3.
(b) Faire l’exercice en calculant des résultants.
Solution:
R.<X,Y>=PolynomialRing(QQ,2) F= X^2+9
G= X^3-3 FY=F(Y,0) GS=G(X-Y,0)
RS=FY.resultant(GS,Y) GD=G(X+Y,0)
RD=FY.resultant(GD,Y) HG=G.homogenize(var=’Z’) GP=HG(X,0,Y)
RP=FY.resultant(GP,Y) GQ=HG(Y,0,X)
RQ=FY.resultant(GQ,Y) RS,RD,RP,RQ
(c) En déduire un programme qui prend deux polynomes irréductibles en entrée et sort des polynomes annulateurs pour la somme, la différence, le produit
1
et le quotient de leurs racines respectives.
Solution:
def annulateurs(F,G):
FY=F(Y,0) GS=G(X-Y,0)
RS=FY.resultant(GS,Y) GD=G(X+Y,0)
RD=FY.resultant(GD,Y) HG=G.homogenize(var=’Z’) GP=HG(X,0,Y)
RP=FY.resultant(GP,Y) GQ=HG(Y,0,X)
RQ=FY.resultant(GQ,Y)
print ’somme :’, RS,’, différence :’, RD,’,’
print ’produit :’, RP ,’et quotient :’, RQ (d) Appliquer le programme à notre problème.
Solution:
R.<X,Y>=PolynomialRing(QQ,2) F= X^2+9
G= X^2-3
annulateurs(F,G)
(e) Refaire l’exercice mais avec des bases de Gröbner.
Solution:
R.<X,Y,Z>=PolynomialRing(QQ,3,order=’invlex’) F= X^2+9
G= X^2-3
IS=Ideal(F(Y,0,0),G(Z,0,0),X-(Y+Z)) GrS = IS.groebner_basis()
ID=Ideal(F(Y,0,0),G(Z,0,0),X-(Y-Z)) GrD = ID.groebner_basis()
IP=Ideal(F(Y,0,0),G(Z,0,0),X-(Y*Z)) GrP = IP.groebner_basis()
IQ=Ideal(F(Y,0,0),G(Z,0,0),X*Z-Y) GrQ = IQ.groebner_basis()
GrS[-1], GrD[-1], GrP[-1], GrQ[-1]
(f) En déduire un nouveau programme.
Solution:
def annulateurs(F,G):
Page 2
IS=Ideal(F(Y,0,0),G(Z,0,0),X-(Y+Z)) GrS = IS.groebner_basis()
ID=Ideal(F(Y,0,0),G(Z,0,0),X-(Y-Z)) GrD = ID.groebner_basis()
IP=Ideal(F(Y,0,0),G(Z,0,0),X-(Y*Z)) GrP = IP.groebner_basis()
IQ=Ideal(F(Y,0,0),G(Z,0,0),X*Z-Y) GrQ = IQ.groebner_basis()
print ’somme :’, GrS[-1],’, différence :’, GrD[-1],’,’
print ’produit :’, GrP[-1] ,’et quotient :’, GrQ[-1]
(g) L’appliquer à notre problème.
Solution:
R.<X,Y,Z>=PolynomialRing(QQ,3,order=’invlex’) F= X^2+9
G= X^2-3
annulateurs(F,G)
(h) Appliquer un des programmes àX5´3X´1 etX5´X`1 (dont les racines ne peuvent pas s’exprimer comme fonctions algébriques de radicaux).
2. Déterminer l’équation de la courbe paramétrée
"
xptq “t2`1 yptq “t3`t
en utlisant les résultants puis avec des bases de Gröbner.
Solution:
def equation(f,g):
f1=x-f g1=y-g
print f1.resultant(g1,t) R.<x,y,t>=PolynomialRing(QQ,3) f=t^2+1
g=t^3+t
equation(f,g) et
def equation(f,g):
I=Ideal(x-f,y-g)
Gr = I.groebner_basis() print Gr[-1]
Page 3
R.<x,y,t>=PolynomialRing(QQ,3, order=’invlex’) f=t^2+1
g=t^3+t
equation(f,g)
3. Écrire le polynome symétriqueX15X25X35`X12`X22`X32 en fonction des poly-
nomes symétriquesS1, S2, S3puis en fonction des sommes de puissancesP1, P2, P3, P4, P5. Solution:
R.<X1,X2,X3,S1,S2,S3>=PolynomialRing(QQ,6)
I=Ideal(S1-X1-X2-X3, S2-X1*X2-X1*X3-X2*X3,S3-X1*X2*X3) B=I.groebner_basis()
F=X1^5*X2^5*X3^5+X1^2+X2^2+X3^2 F.reduce(B)
et
R.<X1,X2,X3,P1,P2,P3,P4,P5>=PolynomialRing(QQ,8)
I=Ideal(P1-X1-X2-X3, P2-X1^2-X2^2-X3^2,P3-X1^3-X2^3-X3^3,P4-X1^4-X2^4-X3^4,P5-X1^5-X2^5-X3^5 ) B=I.groebner_basis()
F=X1^5*X2^5*X3^5+X1^2+X2^2+X3^2 F.reduce(B)
Page 4