Cours Algo m1
Cours Algo m1
Cours Algo m1
Jol Riou
E-mail : [email protected]
Bibliographie. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
11
11
11
12
12
12
13
13
14
15
17
17
17
18
19
20
20
20
21
21
3. Corps finis. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.1. Premires observations. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.2. Terminologie gnrale. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.2.1. Extensions, degrs. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.2.2. Corps de rupture. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.2.3. Composes de deux extensions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
25
25
26
26
26
28
28
29
30
30
35
35
35
36
37
37
38
5. Rsultants. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.1. Dfinitions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.2. Formules. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.3. Proprits. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.4. Exemples. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.4.1. Courbes paramtres : cercle. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.4.2. Courbes paramtres : cardiode. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.4.3. Intersection de deux courbes planes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
39
39
40
42
43
43
44
44
45
45
45
47
47
49
7. Rsidus quadratiques. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7.1. Symbole de Legendre. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7.2. Symbole de Jacobi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7.3. Dmonstration de la loi de rciprocit quadratique. . . . . . . . . . . . . . . . . . . . . . .
7.3.1. Zolotarev. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7.3.2. Sommes de Gauss. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7.3.3. Rsultants. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7.4. Test de primalit de Solovay-Strassen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
51
51
52
54
54
55
57
58
61
61
63
63
63
64
68
69
70
73
73
73
74
74
74
75
77
77
77
78
79
79
81
81
81
83
83
83
BIBLIOGRAPHIE
CHAPITRE 1
ORDRES DE GRANDEUR, COT
Buts :
comparer le comportement asymptotique de suites ;
fournir un outil de mesure du cot des algorithmes.
Les lettres u, v, w, etc. dsignent des suites relles, autrement dit des applications
N R.
1.1. Dfinitions
Dfinition 1.1.
si l R, on dit que u tend vers l (not u l, ou
n+
1. Autrement dit, on peut supprimer partir dun certain rang dans la dfinition. Cependant,
considrer lassertion n2 = O(n(n 1)).
12
si
si
si
si
si
1.3. Exemples
1.3.1. Polynmes.
Proposition 1.2. Soit P R[X] = ad X d + + a0 un polynme de degr d
(ainsi ad 6= 0). Alors P (n) ad nd . En particulier, P (n) = O(nd ).
Proposition 1.3. Soit P R[X]. Il existe un unique polynme Q R[X] tel
que Q(1)
Pn= 0 et que Q(X + 1) Q(X) = P (X + 1). Ainsi, pour tout n N, on a
Q(n) = k=0 P (k). Si P est non nul, on a deg Q = deg P + 1.
Pn
Corollaire 1.4. Pour tout entier k, k=0 nk = O(nk+1 ).
Corollaire 1.5. Soit k N (2) . On suppose que un = O(nk ). Alors,
n
X
ui = O(nk+1 ) .
i=0
2. Le rsultat vaut aussi si on remplace lexposant entier k par un nombre rel > 1.
3. Pour retrouver ce rsultat, considrer la suite bd = a2dd et montrer quelle vrifie la relation de
rcurrence bd = bd1 + 2.
13
14
return r
Le calcul termine puisqu chaque passage dans la boucle, N dcroit strictement ;
plus prcisment, le nombre de passage dans la boucle est en O(log2 n). Pour montrer
que cette fonction fait bien ce quelle doit, considrer linvariant de boucle an =
r AN . Le cot en espace est constant et le cot en temps est en O(log2 n).
Remarque 1.6. On a suppos que le cot dune multiplication tait constant.
Si on travaille dans un anneau Z/2n Z, cest le cas et les oprations sur les entiers
ralises par les processeurs rentrent essentiellement dans ce cadre.
1.4.2. Multiplication rapide. Soit n un entier naturel. Un entier naturel n
bits est un entier compris entre 0 et 2n 1 : on reprsenteP
un entier par le n-uplet
n1
(bn1 , . . . , b0 ) dentiers valant 0 ou 1 tel que cet entier soit i=0 bi 2i . On cherche
calculer le produit de deux entiers n bits (le rsultat a au plus 2n bits).
Thorme 1.7 (Karatsuba). On peut multiplier deux entiers n bits en
O(nlog2 3 ) (4) oprations lmentaires sur les bits.
Soit m un entier. Des entiers 2m bits x et y peuvent tre reprsents sous la
forme x = a2m + b et y = c2m + d o a, b, c, d sont des entiers naturels au plus m
bits. On a
xy = ac 22m + (ad + bc) 2m + bd .
Un algorithme possible pour faire la multiplication consiste calculer les quatre produits ac, ad, bc et bd dentiers m chiffres, puis faire les oprations faciles (dcalage
et additions) pour obtenir le rsultat xy.
Notons ck le cot en oprations par bits de la multiplication de deux entiers
2k bits. En appliquant rcursivement la mthode ci-dessus, on obtient une relation
de rcurrence ck+1 = 4ck + O(2k ). Le quotient dk = 4ckk vrifie une relation dk+1 =
dk + O( 21k ) dont on dduit que la suite dk converge, ainsi ck = O(4k ). Finalement, on
peut en conclure que lon peut faire le produit dentiers n bits en O(n2 ) oprations.
Lalgorithme de Karatsuba sappuie sur le fait que lon peut dterminer ac, ad + bc
et bd en faisant quelques additions et surtout trois multiplications au lieu de quatre.
En effet, on peut N = (a + b) (c + d), ac et bd, et en dduire ad + bc puisquon a
ad + bc = N ac bd. Notons c0k le cot de la multiplication de deux entiers 2k bits
pour cette mthode. On a cette fois-ci ck+1 = 3ck +O(2k ), dont on dduit ck = O(3k ).
Si n est un entier naturel non nul, on peut considrer la plus petite puissance de 2
2k qui lui est suprieure, on a alors k log2 n + 1. Comme 3log2 n = nlog2 3 , on peut
multiplier deux entiers n bits en O(nlog2 3 ) (et donc O(n1.585 )).
Le cot en espace est en O(n). En effet, notons Mk le cot en espace de la multiplication des entiers 2k bits. On obtient
Mk+1 = O(2k ) + Mk .
En effet, pour faire le calcul pour des entiers 2k+1 , on a besoin de stocker quelques
entiers au plus 2k+2 bits pour les rsultats des calculs intermdiaires, ceci donne
4. log2 3 ' 1.58496 . . .
15
une contribution en O(2k ). Puis, on doit faire trois appels rcursifs pour faire des
multiplications sur des entiers 2k chiffres. Le calcul de la premire multiplication
ncessite un surcot de Mk , la deuxime et la troisime multiplication aussi, mais on
peut librer la mmoire utilise par la premire avant de lancer la deuxime, etc. Le
cot en mmoire des trois multiplications de chiffres 2k bits est Mk , et pas 3Mk .
Ainsi, Mk est un grand O de la somme partielle de la srie des 2k , do Mk = O(2k ).
On en dduit que lalgorithme de Karatsuba permet de faire la multiplication des
entiers n bits avec un cot en espace de O(n).
Remarque 1.8. Il est en fait possible de multiplier deux entiers n bits en
O(n ln n ln ln n) oprations lmentaires
1.4.3. Suite de Fibonacci. La suite de Fibonacci Fn est dfinie par les galits
F0 = 0, F1 = 1 et la relation de rcurrence Fn+2 = Fn + Fn+1 .
Proposition 1.9. Pour tout entier naturel n, on a
n n
1+ 5
12 5
2
.
Fn =
5
16
Par consquent,
un
u0
= Mn
,
un+1
u1
ainsi, le calcul de un nest pas plus compliqu que celui de M n . Lalgorithme dexponentiation rapide sapplique lexponentiation de matrices. On obtient ainsi un
algorithme ayant un cot en O(log2 n). Une implmentation possible en Sage est la
suivante :
def fibonacci3(n):
m = matrix(2,2,[0,1,1,1])**n
return m[0,1]
CHAPITRE 2
ARITHMTIQUE, ALGORITHME DEUCLIDE
18
19
20
21
22
Thorme 2.25 (Lam). Soit (a, b) un couple dentiers naturels tel que a > b.
Soit n un entier naturel non nul. Si lalgorithme dEuclide pour le calcul du pgcd de
(a, b) ncessite n tapes, alors a Fn+2 et b Fn+1 . En outre, lalgorithme dEuclide
fait le calcul du pgcd de Fn+2 et de Fn+1 en exactement n tapes.
On procde par rcurrence sur n. Dire que le calcul ncessite zro tape signifie
que b = 0 (et a 1), laffirmation est donc fausse pour n = 0. Si n = 1, on a
bien videmment b 1 et donc a 2. Supposons que n 2 et que le rsultat est
connu pour n 1. On applique la premire tape de lalgorithme dEuclide (a, b),
on obtient ainsi un nouveau couple (b, r) (avec r le reste de la division euclidienne
de a par b), et le calcul de lalgorithme dEuclide pour (b, r) ncessite n 1 tapes.
Lhypothse de rcurrence montre que b Fn+1 et r Fn . On a a = bq + r, o
q est le quotient de la division euclidienne de a par b. Bien entendu, q 1, do
a b + r Fn+1 + Fn = Fn+2 . La rciproque est claire.
Corollaire 2.26. Le cot en temps de lalgorithme dEuclide sur des entiers (a, b)
est en O(log min(a, b)).
Proposition 2.27. Le cot en nombre dtapes de lalgorithme dEuclide sur des
polynmes (A, B) est en O(min(deg A, deg B)).
Proposition 2.28. Le cot en oprations arithmtiques (additions, multiplications, divisions) de lalgorithme dEuclide sur des polynmes (A, B) (non constants)
est en O(deg A deg B).
Pour simplifier, on suppose que deg A > deg B.
Notons P0 = A, P1 = B, P2 , . . . , Pe , Pe+1 la suite de polynmes dfinie par le fait
que Pi+2 soit le reste de la division euclidienne de Pi par Pi+1 . On dfinit e par Pe 6= 0
et Pe+1 = 0. Notons di = deg Pi , de sorte que lon ait d0 > d1 > > de . Daprs le
calcul du cot dune division euclidienne, il existe une constante > 0 tel que le calcul
de Pi+2 connaissant Pi et Pi+1 ait un cot di+1 (di di+1 ) deg B (di di+1 ).
En faisant la somme, on obtient que le pgcd utilise un cot deg B (deg A
deg Pe ) deg A deg B.
Pour les coefficients de Bzout, il faut une analyse plus prcise. Notons Qi le quotient de la division euclidienne de Pi par Pi+1 (de sorte que Pi+2 = Pi Qi Pi+1 ).
Notons (Ui , Vi ) des polynmes dfinis par (U0 , V0 ) = (1, 0), (U1 , V1 ) = (0, 1), puis
(Ui+2 , Vi+2 ) = (Ui , Vi ) Qi (Ui+1 , Vi+1 ). Ils vrifient Pi = AUi + BVi .
On montre facilement que pour tout i, on a deg Ui+2 = deg Q1 + deg Q2 + +
deg Qi = d1 di+1 et deg Vi+2 = deg Q0 + + deg Qi = d0 di+1 . Ceci se vrifie
par rcurrence, en commenant par observer dune part que U2 = 1 et V2 = Q0 et
dautre part que U3 = Q1 et V3 = 1 + Q0 Q1 . Ensuite, dans la diffrence Ui+2 =
Ui Qi Ui+1 , le terme Qi Ui+1 est de degr strictement suprieur celui de Ui , de
sorte que deg Ui+2 = deg Ui+1 + deg Qi . Un raisonnement semblable vaut pour les Vi .
On sintresse ainsi au calcul de Ue et de Ve , vu que Pe = Ue A + Ve B. Les rsultats prcdents montrent que les polynmes U0 , U1 , . . . , Ue ont des degrs deg B
deg Pe1 < deg B. De mme, les polynmes V0 , V1 , . . . , Ve ont des degrs < deg A. Le
cot du calcul de Ui+2 en fonction de Ui , Ui+1 , Qi est donc en O((di di+1 )deg B). En
23
sommant ce cot pour les diffrents indice i, on obtient un cot en O(deg A deg B).
De mme, V2 se calcule certainement en O(deg A), puis pour i 1, le cot du calcul
de Vi+2 en fonction de Vi , Vi+1 , Qi est en O(deg A (di di+1 )), ce qui donne au total,
un cot aussi en O(deg A deg B).
CHAPITRE 3
CORPS FINIS
26
27
Proposition 3.15. Soit k un corps. Soit P k[X]. Soit K/k le corps de rupture
de P . Soit L/k une extension. Se donner un k-plongement K L revient se donner
un lment x de L tel que P (x) = 0.
On peut supposer que K = k[X]/(P ). On considre lapplication qui
un P
k-morphisme fP
: K L associe f ([X]). Pour tout tel f , on a videmment
n
n
i
f ([ i=0 ai X i ]) =
i=0 ai f (X) pour tous a0 , . . . , an lments de k. Lapplication
0
est injective : si f ([X]) = f ([X]), alors daprs la formule prcdente, f et f 0
concident sur tous les lments de k[X]. Lapplication est surjective. En
P effet,
soit x P
L tel que P (x) = 0. On considre lapplication g : k[X] L qui i ai X i
associe i ai xi . Il sagit videmment dun morphisme danneaux. On a videmment
g(P ) = 0. Par suite, g sannule sur lidal engendr par P ; par consquent, g induit
un morphisme danneaux g : k[X]/(P ) L envoyant bien X sur x.
Proposition 3.16. Soit K/k une extension finie de corps. Soit x K. Il existe
un unique polynme unitaire irrductible P k[X] tel que P (x) = 0 : cest le polynme
minimal de x. Le plus petit k-sous-corps de K contenant x, not k(x), est le corps de
rupture de P : k(x) ' k[X]/(P ). Le degr de x sur k est le degr de P , qui est aussi
[k(x) : x].
La famille 1, x, x2 , x3 , . . . nest pas une famille libre du k-vectoriel K. Le noyau
I du morphisme canonique de k-algbres k[X] K envoyant X sur x est non nul.
Notons P le polynme unitaire engendrant I. Le morphisme induit k[X]/(P ) K
est injectif, donc k[X]/(P ) est intgre : (P ) est un idal premier, cest--dire que P
est irrductible, etc.
Dfinition 3.17. Soit K/k une extension finie. Soit (x1 , . . . , xn ) un n-uplet dlments de K. On note k[x1 , . . . , xn ] (ou k(x1 , . . . , xn )) le plus petit k-sous-corps de K
contenant les xi : il est form des valeurs des polynmes de k[X1 , . . . , Xn ] valus en
les xi .
Dfinition 3.18. Soit K/k une extension finie. On dit que K/k admet un lment
primitif x sil existe x K tel que K = k[x].
Remarque 3.19. Toute extension K/k de corps finis admet un lment primitif :
prendre un gnrateur du groupe K .
Remarque 3.20. Si P k[X] est un polynme irrductible de degr d, on peut
reprsenter les lments du corps de rupture k[X]/(P ) (on note x la classe de X),
sous la forme a0 + a1 x + + ad1 xd1 avec (a0 , . . . , ad1 ) k d , autrement dit sous
la forme Q(x) o Q k[X] est un polynme de degr au plus d 1. Pour exprimer un
produit Q1 (x)Q2 (x) sous cette forme, on considre le reste R de la division euclidienne
de Q1 Q2 par P , et on a Q1 (x)Q2 (x) = R(x) dans le corps de rupture k[X]/(P ).
Proposition 3.21. Soit P k[X] un polynme de degr d 2. Alors, P est
irrductible si et seulement si P na de racine dans aucune extension de k de degr
e b d2 c.
28
29
scind sur K. Les deux polynmes Q et R sont scinds sur K, leur produit P lest
donc aussi.
Ainsi, on peut supposer que P est irrductible. On peut considrer un corps de
rupture L de P . Il existe a L tel que P (a) = 0. On peut factoriser P L[X] sous
la forme P = (X a)Q, avec Q L[X]. Par hypothse de rcurrence, on peut choisir
une extension K de L scindant le polynme Q. Le polynme P est scind sur K.
Dfinition 3.26. Soit k un corps. Soit P k[X], P non constant. Un corps de
dcomposition de P est une extension K/k telle que P soit scind sur K, et que si on
note x1 , . . . , xn les racines de P dans K, alors K = k(x1 , . . . , xn ).
Proposition 3.27. Soit k un corps. Soit P k[X], P non constant. Si K/k et
L/k sont deux corps de dcomposition de P , alors K et L sont isomorphes.
On peut supposer que K et L sont contenus dans une mme extension finie M
de k. Les racines de P dans M sont la fois dans K et dans L. Or, K et L sont
prcisment les sous-k-algbres engendres par ces racines, donc K = L.
3.2.5. Polynmes sparables.
Dfinition 3.28. Soit P k[X]. Si P =
ai X i , on pose P 0 =
i6=0
iai X i1 .
30
d1
Y
(X i
q (x))
i=0
31
32
Voici une dmonstration possible (ce nest pas la plus savante). On a vu dans la
dmonstration de la proposition 3.38 que nNn tait gal au nombre dlments de Fqn
qui sont exactement de degr n sur Fq , cest--dire ne sont dans aucun sous-corps Fqd
de Fqn pour d divisant n et d 6= n. On peut donc crire
[
nNn = q n #(
Fq d )
d|n,d6=n
Qk
crivons n = i=1 pei i avec les pi premiers distincts et ei 1. Dans la runion cidessus, il suffit de considrer les d de la forme pni . Notons Ai = F pni . On a la formule
q
k
[
i=1
Ai =
k
X
l=1
(1)l1
#(Ai1 Ail ) .
i1 <<il
33
(d)q d
d|p1 ...pk
CHAPITRE 4
FACTORISATION DANS Fq [X]
36
37
P . Sinon, on calcule Q = P P 0 . Si Q est constant (et non nul puisque P 0 6= 0), P est
sans facteur carr, on peut lui appliquer lalgorithme de factorisation des polynmes
sans facteur carr. Sinon, Q est un diviseur non trivial de P , on peut factoriser
(rcursivement) Q et P/Q pour obtenir une factorisation de P .
4.2. Algorithme de Berlekamp
On fixe une fois pour toutes un corps fini Fq et un polynme unitaire sparable
P Fq [X] de degr d 1. Daprs la proposition 4.3, il existe un entier e 1
et des polynmes unitaires irrductibles P1 , . . . , Pe Fq [X] distincts tels que P =
P1 P2 . . . Pe .
4.2.1. Dtermination du nombre de facteurs irrductibles.
Dfinition 4.10. On note A la Fq -algbre A = Fq [X]/(P ).
Daprs le thorme chinois, on a :
Proposition 4.11. On a un isomorphisme canonique de Fq -algbres :
A = Fq [X]/(P ) ' K1 K2 Ke ,
o pour tout i, Ki est le corps de rupture de Pi sur Fq .
Dfinition 4.12. On note q : A A lapplication a 7 aq . Il sagit dun endomorphisme Fq -linaire de lanneau A. On note A0 le sous-anneau de A form des
lments a A tels que q (a) = a.
Proposition 4.13. Le sous-anneau A0 de A est un Fq -espace vectoriel de dimension e.
On dispose dun isomorphisme A ' K1 Ke de Fq -algbres. Soit a =
(a1 , . . . , ae ) un lment de K1 Ke . On a aq = (aq1 , . . . , aqe ). Dire que aq = a revient demander que les lments ai appartienne au sous-corps Fq du corps Ki pour
tout i. Lensemble A0 sidentifie donc Feq ; sa dimension comme Fq -espace vectoriel
est e.
Dfinition 4.14. On note x la classe de X dans le quotient A = Fq [X]/(P ).
La famille (1, x, x2 , . . . , xd1 ) est une base du Fq -espace vectoriel A, on note q la
matrice du Fq -endomorphisme q : A A dans la base (1, x, x2 , . . . , xd1 ).
La proposition retenir constitue le principe de lalgorithme de factorisation de
Berlekamp :
Algorithme de Berlekamp pour dterminer le nombre de facteurs irrductibles 4.15
Soit P un polynme sparable de degr d 1 sur Fq . On considre la matrice q
coefficients dans Fq dont la i-me colonne (pour 0 i d 1) est constitue des
coefficients du polynme X iq mod P . Le nombre de facteurs irrductibles e de P est
la dimension du noyau de la matrice q Id (noyau dont on peut dterminer une
base grce lalgorithme du pivot de Gau).
38
CHAPITRE 5
RSULTANTS
5.1. Dfinitions
Dfinition 5.1. Soit A un anneau. Soit n N. On note A[X]n ou A[X]<n+1
le sous-A-module de A[X] form des polynmes de degr < n. La base canonique de
A[X]n est 1, X, X 2 , . . . , X n . La base anticanonique est X n , . . . , X, 1.
Dfinition 5.2. Soit A un anneau. Soit (m, n) N2 . Soit P A[X]m . Soit
Q A[X]n . On note Resm,n (P, Q) A le dterminant du morphisme qui (U, V )
A[X]<n A[X]<m associe U P + V Q A[X]<m+n dans les bases anticanoniques ,
savoir (X n1 , 0), . . . , (X, 0), (1, 0), (0, X m1 ), . . . , (0, X), (0, 1) pour le A-module de
dpart et (X m+n1 , X m+n2 , . . . , X, 1) pour le A-module darrive.
Proposition 5.3. Soit P = vm X m + +v1 X +v0 A[X]m . Soit Q = wn X n +
+ w1 X + w0 A[X]n . Alors, Resm,n (P, Q) est le dterminant de la matrice de
Sylvester Sylm,n (P, Q) (carre de taille m + n) :
vm vm1
...
v0
0
0
...
0
0
vm
vm1 . . . v0
0
...
0
.
.
.
.
.
.
.
.
0
.
.
.
.
0
0
0
..
..
..
..
0
.
.
.
.
0
.
.
.
0
0
.
.
.
.
.
.
0
v
v
.
.
.
v
m
m1
0
wn
.
.
.
.
.
.
.
.
.
w
w
0
.
.
.
1
0
.
.
.
.
.
.
0
.
.
.
wn
w1
w0
0
0
0
wn
... ...
...
w1 w0
La matrice de Sylvester est la transpose de la matrice du morphisme dfini plus
haut dans les bases considres.
Proposition 5.4. Soit A un anneau (intgre). Soit m 1. Soit P A[X]m .
On suppose que le coefficient vm de X m dans P est non nul. On note Disc P =
40
m(m1)
1
2
vm (1)
CHAPITRE 5. RSULTANTS
P.
Sur la premire colonne de la matrice de Sylvester Sylm,m1 (P, P 0 ), tous les coefficients, sauf peut-tre deux, sont nuls. Les deux autres sont les coefficients de X m
dans P et de X m1 dans P 0 , savoir vm et mvm . On peut dfinir une matrice
Syl0m,m1 (P, P 0 ) en remplaant respectivement les coefficients vm et mvm de la premire colonne de Sylm,m1 (P, P 0 ) par 1 et m. Le discriminant de P est le dterminant
de cette matrice Syl0m,m1 (P, P 0 ) (ceci a un sens mme si lanneau A nest pas intgre).
Par construction, ce dterminant est un lment de A satisfaisant :
vm Disc P = (1)
m(m1)
2
Resm,m1 (P, P 0 ) .
5.2. Formules
Sauf mention du contraire, dans les noncs suivants, P et Q sont des polynmes
coefficients dans un anneau A respectivement de degrs au plus m et n.
Proposition 5.5. Soit : A B un morphisme danneaux. On note P (resp.
Q ) le polynme de B[X] obtenu en appliquant aux coefficients de P (resp. Q).
Alors, Resm,n (P , Q ) = (Resm,n (P, Q)).
Proposition 5.6. En particulier, pour le morphisme danneaux Z Z/pZ
o p est un nombre premier, si P et Q sont coefficients entiers et que P et Q
sont les rductions modulo p de ces polynmes P et Q, alors la classe modulo p de
Resm,n (P, Q) est Resm,n (P , Q). En particulier, Resm,n (P , Q) = 0 si et seulement si
p divise Resm,n (P, Q).
Proposition 5.7. Soit (, ) A2 . Resm,n (P, Q) = n m Resm,n (P, Q).
Res0,n (, Q) = n . Resm,0 (P, ) = m .
Proposition 5.8. Resn,m (Q, P ) = (1)mn Resm,n (P, Q).
Calculer Resn,m (Q, P ) revient calculer le dterminant intervenant dans le calcul
de Resm,n (P, Q) en changeant la base du A-module de dpart en inversant les vecteurs
de base associs aux variables U et V , le nombre dinversions de cette permutation
est mn.
Proposition 5.9. Soit A. Resm,n (P (X + ), Q(X + )) = Resm,n (P, Q).
On peut calculer Resm,n (P (X + ), Q(X + )) est utilisant des bases autres
que celles considres dans la dfinition 5.2. La matrice du morphisme (U, V ) 7
U P (X + )V (X + ) dans les bases (((X + )n1 , 0), . . . , (X + , 0), (1, 0), (0, (X +
)m1 ), . . . , (0, X + ), (0, 1)) et ((X + )m+n1 , . . . , X + , 1) de A[X]<n A[X]<m
et A[X]<m+n est gale la matrice du morphisme (U, V ) 7 U P + V Q dans les
bases de la dfinition 5.2 ; le rsultat est donc Resm,n (P, Q). Or, manifestement,
les matrices de changement de base entre les bases considres ici et celles de la
dfinition 5.2 sont triangulaires et leurs diagonales ne contiennent que des 1. On en
dduit lgalit voulue.
5.2. FORMULES
41
Q
En utilisant la formule de la proposition 5.11 et lgalit P 0 (ai ) = j6=i (ai aj )
Q
pour tout i, on obtient que Resm,m1 (P, P 0 ) = i6=j (ai aj ), ce qui permet de
conclure.
Proposition 5.14. On note wn le coefficient de X n dans Q. Alors Resm+1,n (P, Q) =
(1)n wn Resm,n (P, Q)
On note vm le coefficient de X m dans P . Alors Resm,n+1 (P, Q) = vm Resm,n (P, Q)
Proposition 5.15. On suppose m n. Soit S A[X]mn . Alors, Resm,n (P +
SQ, Q) = Resm,n (P, Q).
Notons , : A[X]<n A[X]<m A[X]<m+n les applications A-linaires dfinies par (U, V ) = U P + V Q et (U, V ) = U (P + SQ) + V Q. On peut considrer
lendomorphisme de A[X]<n A[X]<m dfini par (U, V ) = (U, V + U S). On a
videmment = . Comme les rsultants tudis ici sont les dterminants de et
dans les bases considres dans la dfinition 5.2, il suffit de montrer que lendomorphisme est de dterminant 1, ce qui rsulte du fait que dans la base anticanonique
de A[X]<n A[X]<m , sa matrice est triangulaire suprieure.
Proposition 5.16. On suppose que A est un corps. Supposons m = deg P n =
deg Q > 0. Notons R le reste de la division euclidienne de P par Q. Si R = 0, alors
Resm,n (P, Q) = 0, sinon Resm,n (P, Q) = Resm,n (R, Q) = (1)mn wnmr Resn,r (Q, R)
o wn est le coefficient dominant de Q et r = deg R.
42
CHAPITRE 5. RSULTANTS
Resm,n (R, Q)
..
t
.
= Sylm,n (P, Q) W .
0
Resm,n (P, Q)
La traduction en termes dapplications linaires de lexistence dun vecteur-colonne
W satisfaisant cette relation est quil existe (U, V ) vrifiant les conditions de degr
ci-dessus tels que U P + V Q = Resm,n (P, Q).
Proposition 5.19. Soit k un corps. Soit P k[X]m . Soit Q k[X]n . On
suppose m = deg P , n = deg Q et (m, n) 6= (0, 0). Les conditions suivantes sont
quivalentes :
(i) Resm,n (P, Q) 6= 0 ;
(ii) Pour tout R k[X]<m+n , il existe U k[X]<n et V k[X]<m tels que
UP + V Q = R ;
(iii) Il existe U k[X]<n et V k[X]<m tels que U P + V Q = 1 ;
(iv) P et Q sont premiers entre eux.
Si E/k est une extension de k sur laquelle P ou Q est scind, on peut rajouter la
condition suivante :
(v) P et Q nont pas de racines communes dans E.
La non-annulation du dterminant Resm,n (P, Q) de la matrice de Sylvester quivaut la surjectivit de lapplication linaire associe, cest--dire que (i) (ii). Ensuite, on a bien sr, (ii) = (iii) = (iv). Montrons (iv) = (ii). Pour R k[X]<m+n ,
5.4. EXEMPLES
43
5.4. Exemples
5.4.1. Courbes paramtres : cercle. Les rsultants permettent dliminer
des variables dans des systmes dquations algbriques. Un exemple est celui des
courbes paramtres. Les rsultants permettent de trouver une quation de lensemble
des solutions. Voici un exemple [2, 7.4] :
(
2t
x = 1+t
2
1t2
y = 1+t2
Lensemble des points de la courbe C C2 dont les coordonnes (x, y) peuvent
tre ainsi dcrite pour un paramtre t C sont les couples (x, y) C tels quil existe
t C {i} solution commune des deux quations :
(1 + t2 )x = 2t
(1 + t2 )y = 1 t2
44
CHAPITRE 5. RSULTANTS
CHAPITRE 6
LEMME DE HENSEL, BORNE DE MIGNOTTE,
FACTORISATION DANS Z[X]
mod p2n .
pN et la relation de rcurrence :
xn+1 = xn
P (xn )
.
P 0 (xn )
Alors, partir dun certain rang (n log2 N ), la suite xn est constante et P (xn ) = 0
dans Z/pN Z.
Il convient dexpliquer en quoi cet nonc a un sens. Tout dabord, par rcurrence,
on obtient aussitt que pour tout n 0, xn x0 mod p, que P (xn ) P (x0 ) 0
mod p, que P 0 (xn ) 6 0 mod p et quainsi, P 0 (xn ) est inversible dans lanneau Z/pN Z
de sorte que xn+1 a bien un sens. La dmonstration du lemme de Hensel montre que
n
P (xn ) 0 mod p2 . Par consquent, la suite (xn ) devient constante ds que pour
2n N , etc.
On peut rapprocher le lemme du Hensel tel quil est interprt dans la proposition 6.3 de la mthode de Newton :
Soit f : I R une fonction de la classe C 2 dfinie sur un intervalle compact I. On
suppose que f admet un zro x dans cet intervalle et on cherche en dterminer de
bonnes approximations. On choisit un point de dpart x0 I et on dfinit une suite
n)
xn par la formule xn+1 = xn ff0(x
(xn ) (cest la mme formule que plus haut !).
On suppose que la suite (xn )nN est bien dfinie, cest--dire que lon aura toujours
xn I et f 0 (xn ) 6= 0.
Proposition 6.4. Avec les notations et hypothses ci-dessus, si on suppose que
f 0 ne sannule pas sur I (en particulier f 0 (x) 6= 0) et pourvu que x0 ait t choisie
assez proche de x, alors xn converge vers x et, essentiellement, la prcision double
chaque itration.
Daprs la formule de Taylor-Lagrange, pour tout n 0, il existe un I tel que
0 = f (x) = f (xn ) + f 0 (xn )(x xn ) +
f 00 ()
(x xn )2 .
2
f 00 ()
(x xn )2 .
2f 0 (xn )
Comme f 0 ne sannule pas sur lintervalle compact I, on peut minorer f 0 est valeur
absolue sur I et la valeur absolue f 00 est majore sur I. Il existe donc une constante
C > 0 telle que pour tout n, on ait :
2
|x xn+1 | C |x xn | .
Notons un = log C + log |x xn |, on a un+1 2un . Pourvu que u0 < 0 (cest--dire
|x x0 | < C1 ), un tend vers avec mme un u0 2n , ce qui permet de conclure.
47
6.1.2. Factorisation.
Lemme 6.5. Soit P Z[X] un polynme unitaire de degr d. Soit p un nombre
premier. Soit n 1. Soit (Q, R) Z/pn Z[X] deux polynmes unitaires de degrs
respectifs q et r tels que si on note P la classe de P dans Z/pn Z[X] on ait P = QR.
On suppose que Res(Q, R) nest pas congru 0 modulo p. Alors, pour tout m n,
il existe duniques polynmes unitaires Q et R dans Z/pm Z[X] de degrs q et r se
rduisant modulo pn sur Q et R tels que lon ait P QR mod pm .
Il sagit bien dune gnralisation de la premire version du lemme de Hensel
puisque la recherche de zros correspond au cas particulier o Q est de la forme
X x ; les hypothses sont cohrentes puisqualors Res(Q, R) = R(x) = P 0 (x).
Comme pour lautre version du lemme de Hensel, il suffit de traiter le cas m = 2n.
et R
dans Z/p2n Z[X] se rduisant sur Q et R
On choisit des polynmes unitaires Q
n
R)
6 0 mod p. Notons
modulo p . On a Res(Q, R) 6 0 mod p, cest--dire Res(Q,
2n
Corollaire 6.9. Soit P Z[X]. Soit Q Z[X]. On suppose que Q divise P dans
Z[X]. Alors,
kQk 2deg Q kP k2 .
En effet, avec les notations du thorme 6.8, bm divise an , donc bamn 1.
Remarque 6.10. Si P et Q sont des lments de C[X], on a M (P Q) =
M (P )M (Q).
Un des ingrdients importants de la dmonstration du thorme 6.8 est le suivant :
Thorme 6.11 (Landau). Soit P C[X]. Alors, M (P ) kP k2 .
Lemme 6.12. Soit P C[X]. Soit z C. k(X z)P k2 = k(zX 1)P k2 .
P
On peut crire P = iZ ai X i . Le coefficient de X i dans (Xz)P (resp. (zX1)P )
est ai1 zai (resp. zai1 ai ).
On en dduit dune part :
X
2
k(X z)P k2 =
[(ai1 zai )(ai1 zai ]
i
|ai1 | + |z|
|ai | z
(1 + |z| ) kP k2 z
ai ai1 z
ai ai1 z
ai1 ai
ai1 ai ,
et dautre part :
2
k(zX 1)P k2
[(zai1 ai )(zai1 ai ]
i
2
= |z|
|ai1 | +
|ai | z
i
2
(1 + |z| ) kP k2 z
ai ai1 z
X
i
ai ai1 z
ai1 ai
ai1 ai ,
49
M (Q) M (P ) kP k2 . Il reste
lingalit kQk1 2m M (Q). On peut crire
P tablir
i
Q = (X z1 ) . . . (X zm ) = i bi X . Pour tout 0 i m, on a
X
Y
(1)i bmi =
zj .
J{1,...,m},#J=i jJ
Il en rsulte que |bmi |
kQk1 =
X
i
m
i
, do
|bmi |
!
X m
M (Q) = 2m M (Q) .
i
i
pd
2
trivial de P dans Z[X] (et si aucun QJ pour J contenu strictement dans I ne vrifie
dj cela, alors QI est irrductible et on peut continuer examiner les parties de
{1, . . . , k} contenues dans le complmentaire de I pour dterminer les autres facteurs
irrductibles).
Si aucun polynme QI ne fournit un facteur non trivial de P , alors P Z[X] est
irrductible.
Remarquons que lhypothse selon laquelle p ne divise pas Disc P fait que la rduction de P modulo p est un polynme sparable ; lalgorithme de Berlekamp sapplique
lui et les hypothses du lemme de Hensel seront aussi satisfaites. Manifestement, si
lalgorithme dcrit ci-dessus termine en renvoyant un facteur non trivial de P dans
Z[X], ce rsultat est juste. Pour conclure, il faut montrer inversement que si Q Z[X]
est un diviseur non trivial (que lon peut supposer unitaire) de P , alors il existe une
partie I telle que Q = QI . La borne de Mignotte nous dit que si on tel polynme Q
existe, alors ses coefficients sont plus petits que M en valeur absolue ; en particulier,
CHAPITRE 7
RSIDUS QUADRATIQUES
a
p
p1
52
sont deux
53
Notons : Z/4Z Z/2Z le morphisme de groupe envoyant [1] sur 0 et [1] sur 1.
Pour a 1+2Z, on note encore (a) = (a mod 4). Si a et b sont deux entiers relatifs
impairs, on a donc (ab) = (a)+(b). On vrifie aussitt que pour tout a 1+2Z, on
se ramne aussitt au cas o a = 1. Montrons la
a (a) = a1
2 mod 2, puisque lon
(m)(n) n
formule m
=
(1)
pour
n et m impairs
positifs.
On peut supposer que
n
m
m
n
m et n sont premiers entre eux puisque sinon n = m = 0. On crit m = p1 . . . pk
et n = q1 . . . ql o les pi et les qj sont des nombres premiers impairs. On a :
m Y p
i
=
.
n
q
j
i,j
q
Daprs le thorme 7.5, qpji = (1)(pi )(qj ) pji , do
m
n
P
= (1) i,j (pi )(qj )
.
n
m
On a bien sr :
!
X
X
X
(pi )(qj ) =
(pi )
(qj ) = (m)(n) ,
i,j
54
a
n
0i<jp1
0i<jp1
p(p1)
2
mod p .
(p1)
2
mod p .
p1
2 .
k+1
1
2
p
k+2
3
2
p
= (1)
p2 1
8
2k
2k 1
.
55
Bref, les couples (a, b) de {0, . . . , p 1} tels que a < b et (a) > (b) (cest--dire les
inversions de ) sont les couples (i, k + j) avec 1 i k, 1 j k et i j. Il y en
2
a k(k+1)
= p 81 , ce qui permet de conclure.
2
Dmontrons la loi de rciprocit quadratique. On se donne p et q deux nombres
premiers impairs. Notons X = {0, . . . , p1}{0, . . . , q 1}. On dfinit trois bijections
(p1) (q1)
2
2
56
xz
(x,z)F2`
X
uF`
wx+z
!
X x(u x)
wu
`
xF`
1
On a bien
P sr C0z = ` 1. Pour u 6= 0, les lments 1 ux parcourent F` {1}.
Comme zF` ` = 0, on a Cu = 1 pour u 6= 0. Il vient ainsi :
Cu wu = ` 1
`1
X
wu = ` .
u=1
uF`
57
En divisant par y (qui nest pas nul daprs le calcul prcdent), on obtient le rsultat.
On obtient le rsultat en calculant de deux manires y p1 . Dune part y p1 = p` ,
p1
p1
dautre part y p1 = y 2 2 = (1)(`)(p) ` 2 = (1)(`)(p) p` .
7.3.3. Rsultants.
Proposition
7.15. Soit A un anneau. Tout polynme de Laurent P =
Pn
i
1
tel que ai = ai pour tout i scrit de manire unique
i=n ai X A[X, X
1
sous la forme Q(X + X ) avec Q A[X].
1
Si Q = b0 +b1 X + +bn X n , alors Q(X + X
) = bn X n + +bn X n , ce qui permet
1
dobserver que si Q nest pas nul, alors Q(X + X
) non plus. Ceci montre lunicit de
Q.
Montrons maintenant lexistence. On procde par rcurrence sur le degr. Si P =
a0 , Q = a0 convient. Supposons le rsultat connu pour des polynmesP
de Laurent
n
faisant intervenir des exposants compris entre (n1) et n1. Soit P = i=n ai X i
1 n
avec ai = ai . Le polynme de Laurent P an (X + X ) a des coefficients symtriques
1 n
) =
et par hypothse de rcurrence, il existe un polynme R tel que P an (X + X
1
1
n
R(X + X ). Le polynme Q = R + an X vrifie P = Q(X + X ).
Proposition
7.17. Si p et q sont deux nombre premiers impairs distincts, on a
q
p1 q1 (Vp , Vq ).
,
p = Res
2
p1
2
modulo p.
58
=
1
pour
tout
a
Z/nZ
.
On peut crire n = rs avec r 3 et s 3 premiers
n
n1
n1
entre eux. Par hypothse, si an = 1, on a a 2 1 mod n. En fait, on a a 2 1
n1
mod n. En effet, si on a un tel a vrifiant a 2 1 mod n, on peut trouver, daprs
le lemme chinois un b Z/nZ tel que b 1 mod r et b a mod s. On a alors
n
b
p
59
modulo rs, on doit avoir pb = 1 = 1, contradiction. Ainsi, pour tout a Z/nZ ,
on a na = 1, ce qui nest pas possible.
Notons p un nombre premier divisant n et crivons
n = pq. Les entiers impairs p
a
et q sont premiers entre eux. Il existe a tel que p = 1. Daprs le lemme chinois,
on peut trouver
un entier b congru a modulo p et 1 modulo q. On obtient aussitt
que na = ap 1s = 1, ce qui conduit une contradiction
Il reste traiter le cas o n admet un facteur carr. On peut crire n = pe q o
p est un nombre premier ne divisant pas q et e 2. Lhypothse implique que pour
tout a Z/nZ , on a an1 = 1 dans Z/nZ . Autrement dit, lexposant de Z/nZ
divise n 1. Comme Z/nZ ' Z/pe Z Z/qZ , lexposant de Z/pe Z divise aussi
n 1. Daprs le lemme suivant, cela implique que pe1 divise n 1. Par consquent
p divise n 1, contradiction.
Lemme 7.22. Soit p un nombre premier impair. Soit e 2. Le sous-groupe H
de Z/pe Z form des lments congrus 1 modulo p est cyclique de cardinal pe1 ,
engendr par la classe de tout lment de la forme 1 + pa avec p ne divisant pas a.
Lemme 7.23. Soit p un nombre premier impair. Soit i 1. Soit a un nombre
entier non multiple de p. Alors, il existe un entier b non multiple de p tel que (1 +
pi a)p = 1 + pi+1 b.
On dveloppe (1 + pi a)p en utilisant la formule du binme, modulo pi+2 :
(p 1) 2i+1 2
p
a mod pi+2
2
est nul modulo pi+2 , ce qui donne :
(1 + pi a)p 1 + pi+1 a +
Le terme faisant intervenir p2i+1
CHAPITRE 8
FACTORISATION DENTIERS, CRYPTOSYSTME RSA
tant donn un entier naturel n 2 qui nest pas premier, on cherche dterminer
p > 1 et q > 1 tels que n = pq. On prsente ici lalgorithme de Pollard.
62
pollard:=proc(n)
local x,y,d;
begin
x:=random(0..n-1)();
y:=x;
i:=0;
while TRUE do
x:=x^2-1 mod n;
y:=(y^2-1)^2-1 mod n;
d:=igcd(x-y,n);
if (1<d) and (d<n) then return(d);end_if;
if d=n then return(FAIL);end_if;
end_while;
end_proc
Exemple 8.4. n = 91 = 7 13, x0 = 2.
Le principe heuristique de lalgorithme est quon espre que si n = pq avec p et q
premiers entre eux, les comportements des suites xn mod p et xn mod q vont tre
indpendants. En particulier, si on dtecte un cycle modulo p, on espre ne pas tomber
par hasard aussi sur un cycle modulo q, de sorte que ce cycle fournit une factorisation
non triviale de n. Pour donner une estimation du coup en temps partir de lnonc
suivant :
p = 1 (1
1
2
k1
) (1 ) (1
).
n
n
n
2n, on a p
1
e
Pk1
i
i=0 n
= e
k(k1)
2n
12 .
63
64
appliquer lalgorithme du cours de factorisation dans Z[X], mais il est beaucoup plus
simple ici dutiliser les formules de rsolution des quations du second degr...
Proposition 8.8. Soit n un entier de la forme pq avec p et q premiers distincts.
Si on sait casser les clefs (n, e) (cest--dire dterminer la clef prive connaissant
la clef publique), on peut aussi factoriser n. Plus prcisment, admettons que lon
dispose dun programme C(e) qui dtermine si e est premier avec (n) et renvoie d
compris entre 1 et n tel que de 1 mod (n) si e est premier avec (n), alors pour
tout , en faisant au plus O(log1+
n ) appels C(), on peut dterminer (n), p et q.
On utilise le thorme des nombres premiers, que lon admet :
Thorme 8.9. Pour x R
+ , on note (x) le nombre de nombres premiers x
et pour tout n N , on note pn le n-ime nombre premier. Alors, (x) lnxx
x+
et pn
n+
n ln n.
(n)
n
n), le quotient
de1
.
n
65
pour des x et triviaux) ne pouvant en principe tre fabrique que par quelquun
disposant de la clef secrte SA , une telle signature authentifie lmetteur et le contenu
du message.
CHAPITRE 9
TRANSFORME DE FOURIER DISCRTE
(i) Pour tout diviseur m de n, m est une racine primitive m-ime de lunit dans
A.
Pn1
(ii) Pour j 6 0 mod n, i=0 j = 0.
La proprit (i) est triviale. La proprit (ii) rsulte de la relation
(1 j )
n1
X
j = 1 nj = 0 ,
i=0
j
68
de Fq ne divise pas n), alors A admet une racine primitive n-ime de lunit si et
seulement si n divise q 1.
Proposition 9.4. Soit A un anneau dans lequel 2 est inversible. Soit k 0. On
pose n = 2k+1 . Soit A. Alors, est une racine primitive n-ime de lunit si et
n
seulement si 2 = 1.
Montrons le rsultat pour k = 0. Soit A une racine primitive deuxime de
lunit. On a 2 = 1 et 1 inversible. La relation 2 = 1 se traduisant par (1 +
)(1 ) = 0, linversibilit de 1 conduit = 1. Rciproquement, 1 est bien
une racine primitive deuxime de lunit puisque lon a suppos 2 inversible.
Soit k 0. Si est une racine primitive 2k+1 -ime de lunit, daprs la proposik
tion 9.2, 2 est une racine deuxime de lunit. Daprs le cas prcdent, on a bien
k
2 = 1. Montrons la rciproque par rcurrence sur k. Le cas k = 0 a dj t trait.
k
k1
Supposons k 1 et 2 = 1. Posons 0 = 2 . On a 02
= 1. Par hypothse
de rcurrence, 0 est une racine primitive 2k -ime de lunit. Posons m = 2k . Le fait
que 0 soit une racine primitive m-ime de lunit signifie que 1 0i est inversible
pour 1 i m 1. Observons que 1 0i = (1 i )(1 + i ) = (1 i )(1 m+i ).
Ainsi, 1 i et 1 m+i sont inversibles pour 1 i m 1. Comme 1 m = 2 est
inversible, on obtient bien ainsi que pour tout 1 j 2m 1, 1 j est inversible,
cest--dire que est une racine primitive 2k+1 -ime de lunit.
Remarque 9.5. Soit A un anneau dans lequel 2 est inversible. Si n = 2k+1 avec
n
k 0, alors la classe de X dans lanneau quotient A[X]/(X 2 + 1) est une racine
primitive n-ime de lunit.
69
Notons V (resp. V 1 ) la matrice de TFD (resp. TFD 1 ) dans les bases canoniques. On a
1
1
1
...
1
2
...
n1
2
4
2(n1)
...
V =
.
..
..
..
1
.
.
...
.
1 n1 2(n1) . . . (n1)(n1)
Le terme gnral est ij pour 0 i, j n 1.
Il vient aussitt que V1 V = (i,j )0i,jn1 avec
i,j =
n1
X
ki kj .
k=0
Multiplier terme terme des lments de An ncessite uniquement n multiplications dans An . Ainsi, si on arrive calculer des transformes de Fourier discrte plus
efficacement quen O(n2 ) oprations, on obtiendra un algorithme de multiplication de
polynmes plus efficace que lalgorithme naf.
70
i
i
P (nm+i ) = Q0 (m
) ni Q1 (m
).
i
i
Calculer les valeurs Q0 (m
) et Q1 (m
) pour 0 i m 1 revient calculer
TFDm (Q0 ) et TFDm (Q1 ). Une fois ce calcul fait, on peut utiliser les relations cidessus pour obtenir TFD (P ).
Une manire efficace de procder cette combination des deux rsultats de TFDm
consiste stocker dans deux tableaux t et t0 de taille m (index par les entiers compris
entre 0 et m1) les rsultats respectifs de TFDm (Q0 ) et TFDm (Q1 ) et de remplir de
la manire suivante un nouveau tableau r de taille n contenant le rsultat TFD (P ).
On initialise une variable x 1. Pour i allant de 0 jusqu m 1, on calcule u := x t0i ,
on fait ri := ti + u et rm+i := ti u et on fait x := x.
On peut appliquer lalgorithme ci-dessus rcursivement. Notons Ck le cot en
nombres doprations (addition, multiplication) dans A de lalgorithme de transforme de Fourier rapide pour des polynmes de degr < 2k . On a manifestement une
relation de rcurrence :
Ck = 2Ck1 + O(2k ) .
Il en rsulte que Ck = O(k2k ), autrement dit le cot est en O(n log2 n).
71
polynmes en X, puis revenir la reprsentation comme polynme en U en substituant X := U . Le surcot par rapport lalgorithme prcdent nest quun O(n) de
multiplications par des puissances de .
Thorme 9.12. Soit A un anneau dans lequel 2 est inversible. On peut calculer
des produits dans A[X]/(X n + 1) avec n = 2k en O(n log2 n log2 log2 n) oprations
dans A.
k
k
Si k 2, on utilise un algorithme trivial. Sinon, on pose m = 2b 2 c , t = 2d 2 e
(n = mt). On se donne f et g deux lments de A[X]<n . On peut trouver duniques
lments f 0 , g 0 des A[X, Y ] tels que f 0 (X, X m ) = f , g 0 (X, X m ) = g et que f 0 et g 0
soient de degr < m par rapport X. On considre les images f ? et g ? de f 0 et g 0
dans lanneau quotient B[Y ]/(Y t + 1) avec B = A[X]/(X 2m + 1).
On applique lalgorithme du corollaire 9.11 pour dterminer le produit h? = f ? g ?
B[Y ]/(Y t + 1), les oprations de multiplications dans B tant ralises en appliquant
rcursivement lalgorithme que lon dcrit ici. Il faut prciser la racine 2t-ime primitive de lunit de B que lon utilise : si k est pair, m = t, la classe de X 2 est
t
une racine primitive 2t-ime de lunit dans B (car X 2 = X 2m = 1 dans B),
si k est impair, t = 2m, la classe de X est une racine primitive 2t-ime de lunit
dans B (car X t = X 2m = 1 dans B). On connat alors le produit h? de f ? et g ?
dans A[X]/(X 2m + 1)[Y ]/(Y t + 1). Notons h0 lunique lment de A[X][Y ]/(Y t + 1)
de degr < 2m par rapport X relevant h? . Le produit f g cherch est le reste de la
division euclidienne de h0 (X, X m ) par X n + 1.
En effet, comme les images de f 0 et g 0 dans A[X, Y ]/(Y t + 1) sont de degrs < m
par rapport X, limage de f 0 g 0 dans A[X, Y ]/(Y t + 1) est de degr < 2m par
rapport X ; les images de h0 et f 0 g 0 dans A[X, Y ]/(Y t + 1) concident, puisquils
concident modulo X 2m +1. Au lieu de rduire modulo X 2m +1, rduisons maintenant
par rapport lidal engendr par Y X m . Comme on a un isomorphisme vident
danneaux A[X]/(X n +1) ' A[X, Y ]/(Y t +1, Y X m ), on obtient une certaine galit
dans A[X]/(X n + 1), prcisment entre h0 (X, X m ) et f 0 (X, X m )g 0 (X, X m ) = f g.
tudions le cot de cet algorithme. Notons Ck le cot de la multiplication dans
k
A[X]/(X 2 + 1) en oprations arithmtiques (addition ou multiplication) dans A.
Faisons plusieurs observations :
Le calcul de f 0 , g 0 puis f ? , g ? partir de f et g et celui de h0 en fonction de h?
se fait videmment en O(n) oprations sur les lments de A.
Le calcul de f g partir de h0 se fait aussi en O(n) oprations sur les lments de
n
A. Il sagit en effet de calculer le reste de la division euclidienne
P2n1 pari X + 1 dun
0
polynme de degr < 2n coefficients dans A : si h = i=0 ai X , le reste est
Pn1
i
i=0 (ai an+i )X .
Lestimation qui reste faire est celle du cot de la multiplication de f ? et
de g ? dans B[Y ]/(Y t + 1). On utilise pour cela le corollaire 9.11 : on utilise t
multiplications dans B et O(t log2 t) additions dans B ou multiplications par des
puissances de .
Une addition dans B utilise 2m additions dans A. Une multiplication dans B par
une puissance de se fait en O(m) oprations dans A. Le cot des O(t log2 t)
72
oprations de ces deux types utilises ci-dessus est donc un O(mt log2 t) = O(2k k)
oprations dans A.
On obtient finalement une relation de rcurrence :
k
Ck 2d 2 e Cb k c+1 + O(2k k) .
2
Notons Sk =
Ck
.
2k (k2)
On obtient :
k
k
2k (k 2)Sk 2d 2 e 2b 2 c+1
k
1 Sb k c+1 + O(2k k) .
2
2
73
mod N .
74
m
n
M(m+n)
m+n
m
m+n , dont on tire M(m + n)
n M(n) = M(n) + n M(n) M(n) + M(m).
Montrons par rcurrence sur r 0 que pour tout n tel que n 2rP
, le cot du
n
produit des n polynmes par lalgorithme ci-dessus est rM(d) o d = i=1 deg Pi .
Supposons le rsultat vrai pour r0 < r, montrons le pour r. Soit n 2r . Le calcul
de A et de B va consister en deux appels rcursifs une situation o la profondeur
du calcul r0 sera r0 r 1 et avec deux ensembles de polynmes sont les sommes
respectives des degrs d0 et d00 vrifient d0 + d00 = d. Le calcul de A et de B exige donc
(r 1)(M(d0 ) + M(d00 )) (r 1)M(d) oprations. Le calcul de AB connaissant A
et B cote au plus M (d) oprations supplmentaires, do le rsultat.
Bref, on peut calculer un produit de n polynmes
P Pi en O(log2 nd log2 d log2 log2 d)
oprations arithmtiques dans lanneau, o d = i Pi .
l m
N , on peut donc
Dans lalgorithme dcrit dans la sous-section 9.5.1, pour b =
1
calculer f en O(N 4 log22 N log2 log2 N ) oprations dans Z/N Z. Le plus important
1
1
noter est la puissance de N qui intervient : N 4 plutt que N 2 , avec lalgorithme naf.
9.5.3. valuations multiples dun polynme. On se donne un polynme f
de degr n = 2k , des scalaire u0 , u1 , . . . , un1 et on veut calculer f (u0 ), . . . , f (un1 ).
OnQpeut garder en mmoire les rsultats intermdiaires du calcul du pron1
duit
i=0 (X ui ) par lalgorithme de la sous-section 9.5.2. Notons Mi,j =
Q
ki
. (On commence par initialiser les
0k<2i (X uj2i +k ) pour 0 j < 2
M0,j , ensuite les Mi+1, sobtiennent chacun en faisant le produit de deux Mi, :
Mi+1,j = Mi,2j Mi,2j+1 .)
Les Mi,j tant calculs, on va ensuite procder au calcul des restes Ri,j de la
division euclidienne de f par tous ces Mi,j , de faon ce que pour i = k, on obtienne
f (uj ), qui est gal Rk,j .
On procde ainsi. On initialise Rk,0 la valeur du reste de la division euclidienne
de f par Mk,0 . Ensuite, pour i allant de k 1 0, et pour j allant de 0 2ki 1,
on calcule le reste Ri,j de la division euclidienne de Ri+1,b j c par Mi,j .
2
Par rcurrence descendante sur i, on montre que Ri,j est congru f modulo Mi,j .
En effet, par hypothse de rcurrence, Ri+1,b j c f mod Mi+1,b j c . Comme Mi,j
2
2
divise Mi+1,b j c et que Ri,j Ri+1,b j c mod Mi,j , il vient Ri,j f mod Mi,j .
2
On sait que le cot du calcul des Mi,j est intressant, mais pour que les f (ui ) soient
calculs efficacement, encore faut-il que lalgorithme de division euclidienne utilis ici
soit rapide. Nous allons voir quune division euclidienne entre polynmes de degrs
d peut se faire en O(M(d)) oprations, ce qui permet dobtenir un rsultat similaire
celui obtenu dans la sous-section prcdente.
9.5.4. Division euclidienne.
9.5.4.1. Inversion modulo X k . Soit k un corps. Nous allons dcrire un algorithme
permettant, tant donn un polynme P k[X]<m de terme constant non nul, de
dterminer Q k[X]<m tel que P Q 1 mod X m .
75
76
CHAPITRE 10
MTHODES DINTERPOLATION
1 x1 x21 . . . xn1
1
..
..
..
1 .
. ...
.
1
xn
x2n
...
est le dterminant de la ma
xn1
n
En effet, cette matrice est la transpose de la matrice de evx dans les bases considres.
Proposition 10.3. On a le formulaire suivant :
V (0, x2 , . . . , xn )
x2 . . . xn V (x2 , . . . , xn ) ;
V (x1 + a, x2 + a, . . . , xn + a)
V (x1 , . . . , xn ) .
78
V (x1 , . . . , xn ) =
(xj xi ) .
1i<jn
V (0, x2 x1 , x3 x1 , . . . , xn x1 )
2i<jn
(xj xi ) .
1i<jn
10.1.2. Interpolation. Daprs le corollaire 10.4, si x0 , . . . , xn sont des rels distincts, lapplication linaire R[X]n Rn+1 qui P associe (P (x0 ), . . . , P (xn )) est
un isomorphisme (on peut aussi montrer directement que le noyau de cette application
est nul). tant donn x0 , . . . , xn des nombres rels distincts et des valeurs a0 , . . . , an ,
il existe bien un unique unique polynme P de degr n tel que P (xi ) = ai .
Proposition 10.5. Avec les notations ci-dessus, on a lgalit :
n
X
ai Li .
P =
i=0
o Li =
Q
(Xxj )
Q j6=i
.
j6=i (xi xj )
associs (x0 , . . . , xn ).
Les polynmes Li vrifient videmment Li (xj ) = ij . Le rsultat en dcoule aussitt.
Proposition 10.6. tant donn des rels distincts x0 , . . . , xn et des valeurs
a0 , . . . , an , le calcul des coefficients du polynme interpolateur de Lagrange correspondant peut se faire en O(n2 ) oprations lmentaires sur les coefficients.
2
Il suffit de montrer que lon peut calculer les interpolants
PnL0 , . . . , Ln en O(n ) oprations lmentaires, le calcul de la combinaison linaire i=0 ai Li se faisant ensuite
en O(n2 ) oprations.
On commence par calculer itrativement le produit Q = (X x0 ) . . . (X xn ) de
degr Q
n + 1 ; ceci se fait en O(n2 ) oprations. Pour chaque 0 i n, le polynme
Qi = j6=i (X xj ) est le quotient (juste) de la division euclidienne de Q par X xi .
Le polynme X xi tant de degr fix 1, chacune de ces divisions euclidiennes peut
tre faite en O(n) oprations ; comme il y en a n, on obtient un cot en O(n2 ). Pour
79
Q
chaque 0 i n, on calcule j6=i (xj xi ) (cot : O(n) oprations) et on multiplie
les coefficients de Qi par ce nombre pour obtenir Li , ce qui demande encore O(n)
oprations. En prenant en compte les n + 1 polynmes obtenir, on obtient encore
une contribution en O(n2 ), do le rsultat.
10.1.3. Majoration de lerreur.
Proposition 10.7. Soit f : I R une fonction de classe C n+1 sur un intervalle ouvert I. Soit (x0 , . . . , xn ) un (n + 1)-uplet dlments distincts de I. Soit P
le polynme de degr n interpolant f en les xi . Alors, pour tout x I, on a la
majoration :
!
n
f (n+1)
Y
.
|f (x) P (x)|
|x xi |
(n
+
1)!
i=0
La drive (n + 1)-ime de P tant nulle, quitte remplacer f par f P , on peut
supposer que f (xi ) = 0 pour 0 i n, cest--dire que P = 0. Fixons x I. Pour
montrer lingalit voulue, on peut supposer que x est diffrent des xi . Dfinissons
Qn
une fonction g par g(t) = f (t) i=0 (t xi ) o = Qn f (x)
. La fonction g est
i=0 (xxi )
de classe C n+1 et sannule en les n + 2 points distincts x, x0 , . . . , xn . En utilisant le
thorme de Rolle g et ses drives successives, on obtient que g (n+1) sannule un
point I.
(n+1)
()
On a g (n+1) (t) = f (n+1) (t) (n + 1)!, do = Qn f (x)
= g (n+1)!
, ce qui
i=0 (xxi )
permet de conclure.
10.1.4. Polynmes de Tchebychev.
Proposition 10.8. Pour tout n N, il existe un unique Tn R[X] tel que
cos nx = Tn (cos(x)) pour tout x R.
Lunicit est vidente, montrons lexistence de Tn par rcurrence sur n. On a videmment T0 = 1, T1 = X. Pour = 1, on a :
cos((n + 1)x + x) = cos(n + 1)x cos x sin(n + 1)x sin x .
En ajoutant membre membre les deux galits obtenues, on obtient :
cos(n + 2)x + cos nx = 2 cos x cos nx .
Par rcurrence sur n, on obtient aussitt que les Tn existent et satisfont la relation
de rcurrence Tn+2 + Tn = 2XTn+1 .
Proposition 10.9. Le polynme Tn est de degr n, ses zros sont les cos( (2k+1)
)
2n
pour 0 k n 1 et son coefficient dominant est 2n1 (sauf pour n = 0 o il vaut
1) ; ces proprits caractrisent Tn .
Le calcul du degr et du coefficient dominant rsulte aussitt de la relation de
rcurrence obtenue plus haut. Concernant les zros, on peut dterminer ceux appartenant [1, 1] en les mettant sous la forme x = cos avec 0 , la condition
est que n soit de la forme 2 + k avec k Z (et donc forcment 0 k n 1).
80
81
1
1
X(X 1)2 P (0)+ + X(X 1) . . . (X n+1)n P (0) .
2!
n!
La relation tablir tant linaire, il suffit de la tester sur une base convenable du
R-espace vectoriel R[X]n . Considrons les polynmes Pi = i!1 X(X 1) . . . (X i+1).
Comme ils sont chelonns en degrs, ces polynmes P0 , . . . , Pn forment une base de
R[X]n . Il suffit donc de vrifier la formule ci-dessus avec P = Pi .
On vrifie aussitt que pour tout i 1, Pi = Pi1 , et que P = 0. Par consquent, pour tout i 0, on a j Pi (0) = 0 pour 0 j i 1, i Pi (0) = 1 et
j Pi (0) = 0 pour j > i. Ceci permet de vrifier aussitt la formule pour P = Pi .
Remarque 10.14. Ainsi, pour retrouver un polynme P de degr n, il suffit
de connatre les valeurs i P (0) pour 0 i n. Par construction, ces valeurs ne
dpendent que de P (0), P (1), . . . , P (n). La formule ci-dessus peut-tre vu comme
une formule dinterpolation : le membre de droite lunique polynme de degr n
concidant avec P en 0, 1, . . . , n.
Proposition 10.15. Soit f : I R une fonction de classe C n+1 sur un intervalle
ouvert I contenant [0, n]. Alors, pour tout x I, on a la majoration :
n
X
i f (0) |x(x 1) . . . (x n)|
(n+1)
x(x 1) . . . (x i + 1)
f (x)
f
.
i!
(n + 1)!
i=0
Ceci rsulte de la proprit correspondant pour linterpolation de Lagrange.
10.2.2. Lien avec la formule de Taylor. On va voir que lon peut modifier
loprateur de diffrences finies de faon autoriser un pas autre que 1 et que la
formule ci-dessus se transforme en la formule de Taylor quand on fait tendre vers 0.
Dfinition 10.16. Soit f : R R une fonction. Pour tout > 0, notons f la
(x)
.
fonction dfinie par f (x) = f (x+)f
1
Notons Pi, le polynme Pi, = i! X(X )(X 2) . . . (X (i 1)).
Proposition 10.17. Soit P R[X]n . Pour tout > 0, on a lgalit :
P = P (0)+X (P )(0)+
1
1
X(X)2 P (0)+ + X(X) . . . (X(n1))n P (0) ,
2!
n!
82
cest--dire que :
P =
n
X
k P (0)Pk, .
k=0
n
X
Dk ()Pk, .
k=0
On a donc, Dk () = k P (0).
Par ailleurs, si on fait la substitution := 0, comme il a t dit, Pk,0 = X k . Les
coefficient Dk (0) sont donc bien sr ceux qui interviennent dans la formule de Taylor :
1 (
Dk (0) = k!
P k)(0).
La relation nonce dans R[, X] plus haut fait intervenir des polynmes, que lon
peut donc considrer comme des fonctions continues en les deux variables relles. On
obtient donc :
lim k P (0) = P k (0) .
0+
(Cette conclusion se gnralise aussitt au cas o P serait remplac par une fonction
de classe C n+1 .)
83
84
P
fonction de Ai Ui est aussi O(d2i ). Comme i d2i n2 . On peut calculer les Ri en
O(n2 ) oprations.
Le cot de la multiplication Ri Qi est O(deg Ri deg Qi ), donc un O(di n). Ces r
multiplications prennent donc O(n2 ) oprations. Chacun des polynmes Ri Qi est
de degr < n. Sommer ces r polynmes peut aussi se faire en O(n2 ) oprations
lmentaires dans k, ce qui permet de conclure.
Proposition 10.24. Le calcul des Ui et Qi en fonction des Pi peut se faire en
O(n2 ) oprations dans k. En particulier, la rsolution de congruences peut tre faite
en O(n2 ) oprations dans k.
Q
On calcule le produit P = i Pi . Notons un rel strictement positif tel que le
cot dun produit de polynmes de degrs p > 0 et q > 0 soit pq. Le cot du
calcul de P P
est donc [d1 dP
2 + (d1 + d2 )d3 + + (d1 + d2 + + dr1 )dr ]. On
reconnat 1i<jr di dj i,j di dj = n2 .
Le calcul de Qi = P/Pi se fait en O(di n) oprations. Les Qi peuvent donc tre calculs en O(n2 ) oprations. Il sagit ensuite dappliquer lalgorithme dEuclide tendu
aux polynmes Qi et Pi pour tout i. Chacun de ces calculs prend O(di (n di )) =
O(di n) oprations, do un cot total de O(n2 ) oprations.