Maˆıtrise d`informatique. Projet 1 Factorisation de polynômes

Maˆıtrise d’informatique. Projet 1
Factorisation de polynˆomes
Fran¸cois Boulier
Universit´e des Sciences et Technologies de Lille
Laboratoire d’Informatique Fondamentale de Lille
59655 Villeneuve d’Ascq CEDEX
email: boulier@lifl.fr
http://www.lifl.fr/˜boulier
Vers 1998-1999
R´esum´e
Le projet consiste `a programmer en C++ un algorithme de factorisation compl`ete
sur le corps des nombres rationnels de polynˆomes en une ind´etermin´ee et `a coefficients
entiers.
1 MAPLE
Les fonctions `a r´ealiser dans ce projet sont implant´ees dans le logiciel MAPLE. Les
connaˆıtre peut fortement vous aider `a mettre votre programme au point. La commande
maple lance MAPLE en mode texte ; la commande xmaple permet d’utiliser MAPLE `a
traver une interface graphique. Je vous conseille le mode texte plus rapide et moins bugg´e.
La commande expand d´eveloppe une expression. La commande factor factorise un
polynˆome. Notez qu’elle fonctionne non seulement pour des polynˆomes en une ind´etermin´ee
`a coefficients entiers mais aussi pour des polynˆomes en plusieurs ind´etermin´ees. La com-
mande gcd calcule le “greatest common divisor” de deux polynˆomes. Elle aussi s’applique
`a des polynˆomes en plusieurs ind´etermin´ees. La commande gcdex permet de calculer une
identit´e de B´ezout entre deux polynˆomes en une ind´etermin´ee. La commande diff permet
de d´eriver une expression par rapport `a une variable.
La version modulaire de la plupart de ces commandes existe aussi. En g´en´eral, il suffit de
mettre l’initiale de la commande en majuscule et de sp´ecifier le module avec mod. Essayez ?
mod pour la liste des commandes disponibles. L’affectation ‘mod‘ := mods : (utiliser des
accents graves et pas aigus) indique `a MAPLE d’utiliser des repr´esentants sign´es pour les
nombres modulaires.
1
Si vous utilisez la version 5, utilisez le symbole %au lieu du symbole "pour d´esigner le
r´esultat de la derni`ere commande ex´ecut´ee.
|\^/| Maple V Release 4 (LIFL)
._|\| |/|_. Copyright (c) 1981-1996 by Waterloo Maple Inc. All rights
\ MAPLE / reserved. Maple and Maple V are registered trademarks of
<____ ____> Waterloo Maple Inc.
| Type ? for help.
> p := expand ((x^2 - 1)*(3*x^2 - 2)^2);
642
p := 9 x - 21 x + 16 x - 4
> factor (p);
2 2
(x - 1) (x + 1) (3 x - 2)
> diff (p, x);
5 3
54 x - 84 x + 32 x
> gcd (p, diff (p, x));
2
3 x - 2
> gcdex (p, diff (p, x), x, ’u’, ’v’);
2
x - 2/3
> u;
2
1/6 - 21/4 x
> v;
17 3
- -- x + 7/8 x
24
> Factor (p) mod 7;
2 2
2 (x + 6) (x + 1) (x + 4)
> ‘mod‘ := mods:
> Factor (p) mod 7;
2
2 2
2 (x - 3) (x + 1) (x - 1)
> Gcd (p, diff (p, x)) mod 11;
2
x + 3
> 3 * " mod 11;
2
3 x - 2
3
2 Un algorithme de factorisation
Factorisation irreductible
dans Z[X]
Factorisation "sans carres"
dans Z[X]
Factorisation irreductible
dans Z[X] mod q de
polynomes "sans carres"
(algorithme de Berlekamp).
Remontee dans Z[X] mod q^k
d’une factorisation irreductible
de polynomes "sans carres"
(lemme de Hensel).
Identite de Bezout dans
Z[X] mod q
Pgcd dans Z[X]
Pgcd dans Z[X] mod q
Identite de Bezout
et pgcd dans Z. Tests de primalite
dans N
Manipulations elementaires
dans Z.
4
L’algorithme que nous allons ´etudier est essentiellement dˆu `a Berlekamp [1] et Zassenhaus
[17]. Un texte de r´ef´erence se trouve dans [7, vol. 2, pages 420–441]. Le livre [5] (qui est trop
cher) fournit une pr´esentation tr`es facile `a lire. En particulier, on y trouve la plupart des
algorithmes de la biblioth`eque standard de MAPLE.
2.1 L’algorithme d’Euclide. Notion de pgcd
Les ensembles Z,Q,Z[X], Q[X], munis de l’addition et de la multiplication habituelles
sont des anneaux. Voir n’importe quel livre d’alg`ebre pour une d´efinition par exemple [13,
page 162]. Par contre, l’ensemble Ndes entiers naturels n’est pas un anneau.
Soit Aun anneau. Un ´el´ement aAest inversible si il existe ¯aAtel que a¯a= 1.
Dans Zles seuls ´el´ements inversibles sont 1 et 1. Dans Q, tout ´el´ement non nul aest
inversible. Son inverse est 1/a.
Un anneau dont tout ´el´ement non nul est inversible est un corps. Les anneaux Q,Ret C
sont des corps. L’anneau Zn’est pas un corps.
Soient Aet Bdeux anneaux. Une application φ:ABest un homomorphisme
d’anneaux si φ(a+b) = φ(a) + φ(b) et si φ(a b) = φ(a)φ(b).
Le produit cart´esien A×Bpeut ˆetre muni d’une structure d’anneau, appel´e anneau
produit en posant pour tous couples (a b),(ab)A×B
(a b) + (ab) = (a+a, b +b),
(a b)×(ab) = (a×a, b ×b).
L’´el´ement z´ero de A×Best le couple (0,0). L’´el´ement neutre pour la multiplication est le
couple (1,1).
2.1.1 Divisibilit´e, Pgcd
Soit Aun anneau et a, b deux de ses ´el´ements. On dit que adivise b(not´e a|b) s’il existe
un ´el´ement cAtel que b=a c.
Soit Aun anneau et a, b deux de ses ´el´ements. Un ´el´ement gAest un pgcd de aet de b
(not´e g=ab) si les deux conditions suivantes sont remplies [10, proposition et d´efinition
1.10, page 35] :
1. g|aet g|b,
2. quel que soit gAon a [g|aet g|bg|g].
¡¡ Le ¿¿ pgcd abn’est en g´en´eral pas unique puisqu’il est d´efini au produit par un
´el´ement inversible pr`es. Par exemple 3 et 3 sont deux pgcd de 6 et de 9. Par abus de
langage, nous parlerons quand mˆeme du pgcd de deux ´el´ements.
Question 1. Montrer que 0 0 = 0.
Si Aest un corps et a, b Aalors tout gAest un pgcd de aet de b(en g´en´eral on
prend ab= 1). Noter que la d´efinition s’applique aussi bien aux entiers qu’aux polynˆomes
de Z[X] ou de Q[X].
5
1 / 38 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !