Master 1 - 2010 / 2011 —— Algèbre, Géométrie et calcul

publicité
Master 1 - 2010 / 2011
——
Algèbre, Géométrie et calcul
Etienne Mann
[email protected]
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 m et une liste de monômes
L et qui renvoie true si m est 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 L qui 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 P par L. Cette
fonction renvoie la liste [a1 , . . . , a s , r] telle que
f = a1 f1 + · · · + a s f s + r.
Quelques exemples qu’on pourra traiter pour tester les fonctions :
P = x7 y2 + x3 y2 − y + 1
L = [xy2 − x, x − y3 ]
P = xy2 z2 + 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
Téléchargement