Master 1 - 2010 /2011
——
Algèbre, Géométrie et calcul
Etienne Mann
emann@darboux.math.univ-montp2.fr
14 Février 2010
TP2 - ALGORITHME DE DIVISION
1. L’algorithme de division
Créer un fichier Division.m avec la commande touch Division.m.
Lancer magma dans un terminal.
Quand on déclare un anneau de polynôme, on peut spécifier l’ordre monômial désiré.
•lex : ordre lexicographique
•glex: ordre lexicographique gradué
•grevlex : ordre lexicographique gradué retourné
La syntaxe est A<x,y>:=PolynomialAlgebra(RationalField(),2,”lex”);
(1) Ecrire une fonction LT qui à un polynôme renvoie son terme dominant suivant
l’ordre monômial choisi. On pourra utiliser les commandes Coefficients(P)
et Monomials(P).
(2) Ecrire une fonction Div(m,L) qui prend un monôme met une liste de monômes
Let qui renvoie true si mest divisible par un monôme de la liste L. On pourra
utiliser la fonction IsDivisibleBy.
(3) Ecrire une fonction DivPosition(m,L) qui fait la même chose que la fonction
Div mais qui renvoie aussi la position du monôme de Lqui est multiple de m. On
pourra utiliser la commande [*true, i*] ou [*false, 0*].
(4) Ecrire une fonction AlgoDivision(P,L) qui fait la division de Ppar L. Cette
fonction renvoie la liste [a1,...,as,r] telle que
f=a1f1+···+asfs+r.
Quelques exemples qu’on pourra traiter pour tester les fonctions :
P=x7y2+x3y2−y+1L=[xy2−x,x−y3]
P=xy2z2+xy −yz L =[x−y2
,y−z3
,z2−1]
Changer les ordres monômiaux lex,glex,grevlex. On pourra aussi permuter
les éléments de L.
1