Algorithmique mathématique 1 : Résumé de coursfjouve001/AlgMath1.pdfUniversité de Bordeaux,...

49
Université de Bordeaux, année 2019-20 Licence de Sciences et Technologies mention mathématiques Parcours Math-Info. Semestre 5. Algorithmique mathématique 1 : Résumé de cours Ces notes sont un support au cours ; elles ne s’y substituent pas. On y trouve les résultats principaux, non commentés et non illustrés la plupart du temps. Les démonstrations sont le plus souvent simplement esquissées, voire absentes. Les détails, explications, et illustrations sont donnés en cours et en TD.

Transcript of Algorithmique mathématique 1 : Résumé de coursfjouve001/AlgMath1.pdfUniversité de Bordeaux,...

Université de Bordeaux, année 2019-20Licence de Sciences et Technologies mention mathématiquesParcours Math-Info. Semestre 5.

Algorithmique mathématique 1 :

Résumé de cours

Ces notes sont un support au cours ; elles ne s’y substituent pas. On y trouve les résultatsprincipaux, non commentés et non illustrés la plupart du temps. Les démonstrations sont leplus souvent simplement esquissées, voire absentes. Les détails, explications, et illustrationssont donnés en cours et en TD.

Table des matières

1 Anneaux factoriels, principaux, et euclidiens 51 Anneaux factoriels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 Anneaux principaux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 Anneaux euclidiens . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

3.1 Définition et propriétés générales . . . . . . . . . . . . . . . . . . 93.2 Algorithme d’Euclide et algorithme d’Euclide étendu . . . . . . 10

2 Algèbre effective et notion de coût 131 Algorithmes élémentaires, coût . . . . . . . . . . . . . . . . . . . . . . . 13

1.1 Addition dans Z et Q[X] . . . . . . . . . . . . . . . . . . . . . . 141.2 Multiplication dans Q[X] . . . . . . . . . . . . . . . . . . . . . . 161.3 Division euclidienne dans Q[X] . . . . . . . . . . . . . . . . . . . 17

2 Analyse du coût de l’algorithme d’Euclide . . . . . . . . . . . . . . . . 183 Exemples de méthodes d’amélioration du coût . . . . . . . . . . . . . . 19

3.1 Évaluation de polynômes : l’algorithme de Hörner . . . . . . . 193.2 Exponentiation rapide . . . . . . . . . . . . . . . . . . . . . . . . 203.3 Multiplication par la méthode de Karatsuba . . . . . . . . . . . 21

3 Quelques applications de l’algorithme d’Euclide 231 Inversion modulaire et algorithme des restes chinois . . . . . . . . . . . 23

1.1 Inversion modulaire . . . . . . . . . . . . . . . . . . . . . . . . . 231.2 Algorithme des restes chinois . . . . . . . . . . . . . . . . . . . . 24

2 Anneaux Z/nZ et cryptographie RSA . . . . . . . . . . . . . . . . . . . 252.1 Rappels sur les anneaux Z/nZ . . . . . . . . . . . . . . . . . . . 252.2 Cryptographie RSA . . . . . . . . . . . . . . . . . . . . . . . . . 27

3 Résultant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293.1 Définition et propriété fondamentale . . . . . . . . . . . . . . . . 293.2 Applications. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

4 Transformée de Fourier rapide 331 Racines de l’unité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 332 Transformée de Fourier discrète . . . . . . . . . . . . . . . . . . . . . . . 343 Transformée de Fourier rapide . . . . . . . . . . . . . . . . . . . . . . . 364 Convolution et multiplication rapide dans A[x] . . . . . . . . . . . . . . 37

3

5 Séries de Fourier 39

4

Chapitre 1

Anneaux factoriels, principaux, eteuclidiens

L’objectif de la majeure partie de ce cours est d’étudier, du point de vue effectif, cer-taines propriétés des anneaux Z et Q[X] (anneau des polynômes en 1 indéterminée X,à coeffcients rationnels). Ces anneaux présentent de nombreux points communs ; ilssont par exemple tout deux euclidiens (i.e. ces deux anneaux peuvent être munis d’unedivision euclidienne). On débute l’étude de ces anneaux en présentant partiellementla théorie générale d’une classe d’anneaux plus large que les anneaux euclidiens : lesanneaux factoriels. Il s’agit d’anneaux où, comme dans Z et Q[X], tout élément nonnul et non inversible se décompose de manière essentiellement unique en produitd’irréductibles.Dans toute la suite A désigne un anneau commutatif et intègre (i.e. 1 6= 0 et, si x, y ∈A satisfont xy = 0, alors x = 0 ou y = 0).

1 Anneaux factoriels

On rappelle qu’un élément u ∈ A est inversible s’il existe v ∈ A tel que uv = 1.On note A× l’ensemble des inversibles de A et on rappelle que A× est un groupemultiplicatif.

Définition 1Un élément a ∈ A est irréductible si a n’est pas inversible et si

(a = bc , b, c ∈ A)⇒ (b ∈ A× ou c ∈ A×).

Exemple. Dans Z les irréductibles sont, au signe près, les nombres premiers. Si Kest un corps (par exemple K = Q) alors les irréductibles les de A = K[X] sont lespolynômes irréductibles non constants.

5

Proposition 1Soit a ∈ A \ {0} tel que l’idéal principal (a) est premier. Alors a est irréductible.

Preuve. On a a non inversible, car sinon (a) = A ce qui contredit le fait que (a) estpremier. Écrivons a = bc avec b, c ∈ A. Le quotient A/(a) est intègre (car (a) estpremier) et l’on a bc = 0 dans A/(a). Donc b = 0 ou c = 0 i.e. b ∈ (a) ou c ∈ (a). Parsymétrie, on peut supposer b ∈ (a) i.e. b = ax, pour un x ∈ A. On obtient a = axc,puis a(1− xc) = 0, de sorte que c est inversible d’inverse x, puisque l’on a supposéa 6= 0 et A intègre. �

BLa réciproque à la proposition 1 est fausse en général. Si l’on prend par exempleA = Z[

√−5] = {a + b

√−5 : a, b ∈ Z} et a = 2 ∈ A. Alors 2 est irréductible dans A

mais 6 = (1 +√−5)(1−

√−5) ∈ (2) et (1 +

√−5) 6∈ (2), (1−

√−5) 6∈ (2).

Définition 2On dit qu’un élément a ∈ A a factorisation unique en produit d’irréductibles si

1 ) il existe u ∈ A× et des irréductibles p1, . . . , pr de A tels que

a = ur

∏i=1

pi ,

2 ) cette factorisation est unique à un inversible près et à l’ordre des facteurs irréduc-tibles près.

Exemple. Penser à la factorisation des entiers≥ 2 en produit de nombres premiers ouà la factorisation des polynômes non constants de Q[X] en produit d’irréductibles.

Définition 3Un anneau commutatif et intègre A est dit factoriel si tout élément a 6= 0 de A admetune factorisation unique en produit d’irréductibles.

Remarque. On adopte la convention “un produit vide vaut 1” pour pouvoir inclurele cas où a est un inversible dans la définition 3.

Exemple. Les anneaux Z et K[X] (où K est un corps) sont factoriels. L’anneau A =Z[√−5] (voir la définition suivant la proposition 1) n’est pas factoriel car par exemple

6 = 2× 3 = (1 +√−5)(1−

√−5) ,

et l’on a deux factorisations réellement différentes de 6 dans A.

Dans un anneau factoriel, on a les notions bien définies de pgcd et de ppcm. Rappe-lons d’abord qu’étant donné 2 éléments a, b d’un anneau A, on dit que a divise b (eton note a | b) s’il existe c ∈ A tel que b = ac.

6

Définition 4 (pgcd)Soit A un anneau commutatif et intègre et a, b ∈ A non tous les deux nuls. On dit qued ∈ A est un pgcd de a et b si :

1 ) d | a et d | b,

2 ) si c ∈ A satisfait c | a et c | b alors c | d .

Exercice 1.1. Montrer que deux pgcd d1, d2 de a, b ∈ A diffèrent d’un inversible (i.e.il existe u ∈ A× tel que d1 = ud2).

Dans la suite la notation pgcd(a, b) désignera un choix particulier de pgcd pour a et bet l’on gardera en tête que ce choix est unique à un inversible près.

Proposition 2Soit A un anneau factoriel et soit a, b des élements non nuls de A que l’on décompose enproduits d’irréductibles deux à deux distincts :

a = ur

∏i=1

peii , b = v

r

∏j=1

pf jj ,

où ei, f j ∈N. Alors

pgcd(a, b) =r

∏k=1

pmin(ek, fk)k .

Preuve. Notons d = ∏rk=1 pmin(ek, fk)

k . Bien sûr d | a et d | b. Si c ∈ A satisfait c | a et c | balors, par factorisation unique en produit d’irréductibles dans A, les irréductibles deA factorisant c font partie de l’ensemble {p1, . . . , pr} et les exposants de chaque p`intervenant est majoré par min(e`, f`). Donc c | d. �

Remarque. Dans un anneau factoriel A on a équivalence, pour a ∈ A \ {0}, despropriétés :

1 ) a est irréductible,

2 ) (a) est un idéal premier.

En d’autres termes, la réciproque à la proposition 1 est vraie dans un anneau factoriel.

2 Anneaux principaux

Il s’agit d’un cas particulier important d’anneaux factoriels.

7

Définition 5Un anneau intègre A est principal si tout idéal I de A est principal, i.e de la formeI = (a) pour un a ∈ A.

Proposition 3Soit A un anneau principal et soit a, b ∈ A \ {0}. Alors d ∈ A est un générateur del’idéal I = (a, b) (i.e I = (a, b) = (d)) si et seulement si d = pgcd(a, b).

Preuve. Si (d) = (a, b) alors d | a et d | b. Si c ∈ A satisfait c | a et c | b alors a = cyet b = cz pour des y, z ∈ A. Comme d ∈ I = (a, b) on peut écrire d = ta + sb avect, s ∈ A. Ainsi d = tcy + scz, puis c | d. Réciproquement supposons que d est unpgcd de a et b. Alors pour tout u, v ∈ A on a d | au + bv, puis (a, b) ⊂ (d). Soit c′ ungénérateur de I = (a, b) ; alors (c′) = I ⊂ (d) d’après ce que l’on vient d’établir. Doncd | c′ ; mais c′ est un divieur de a et b donc c′ | d. Finalement c′ = ud pour un u ∈ A×,puis (c′) = (d) = (a, b) = I. �

Le résultat le plus important de cette section est le suivant.

Théorème 1Tout anneau principal est factoriel.

BLa réciproque est fausse : par exemple Z[X] est factoriel mais l’idéal I = (2, X) deZ[X] n’est pas principal (cf TD).

Preuve. La preuve de l’existence d’une factorisation en produit d’irréductibles reposesur l’axiome suivant (appelé “lemme de Zorn”) :

“Tout ensemble ordonné tel qu’une chaîne croissanteest toujours majorée admet un élément maximal.”

Soit S l’ensemble des idéaux (nécessairement principaux) différents de {0} qui ne sontpas engendrés par un élément qui se factorise en produit d’irréductibles. SupposonsS 6= ∅ et prenons une chaîne croissante dans S :

(a1) ⊂ (a2) ⊂ (a3) ⊂ · · · ⊂ (an) ⊂ · · · .

Cette chaîne est stationnaire : en effet ∪i≥1(ai) est un idéal de A. Donc il existe a ∈ Atel que ∪i≥1(ai) = (a). Mais a ∈ ∪i≥1(ai) donc a ∈ (an) pour un certain n ≥ 0. Aussi(an) ⊂ ∪i≥1(ai) = (a). Finalement (a) = (an) et la chaîne ci-dessus stationne à (an).Cette chaîne admet donc un majorant dans A et on peut appliquer le lemme de Zorn :soit (a0) un élément maximal de S. Notons en particulier que si pour un x ∈ A on a(x) ⊃ (a0) avec (x) 6= (a0), alors (x) 6∈ S, i.e., x admet une factorisation en produitd’irréductibles. Notons aussi que a0 n’est pas irréductible (sinon on aurait (a0) 6∈ S).Il existe donc une factorisation a0 = bc avec b, c ∈ A qui ne sont pas des inversibles.Cela implique (b) ⊃ (a0) avec (b) 6= (a0), et (c) ⊃ (a0) avec (c) 6= (a0). On déduitque b et c admettent une factorisation en produit d’irréductibles ; il en est donc de

8

même de a0 = bc. Cela contredit (a0) ∈ S. Ainsi S = ∅ et on a prouvé la partie“existence” du résultat.

Pour l’unicité, on va utiliser la proposition 3 sous la forme : “si p ∈ A est irréductibleet si p | ab, avec a, b,∈ A, alors p | a ou p | b”. [En effet si p - a, alors l’idéal (p, a) estengendré par un inversible de A et en particulier 1 = ps + at pour des s, t ∈ A. Enmultipliant l’égalité par b, on voit que p | b.]Supposons que pour un a ∈ A \ {0} on a deux factorisations

a = up1 · · · pr = vq1 · · · qs ,

avec u, v ∈ A× et les pi, qj irréductibles. Alors p1 divise q1 · · · qs (en multipliant parv−1 dans l’égalité de droite ci-dessus). Donc, p1 étant irréductible, on déduit par ré-currence que p1 | qj pour un certain j (par symétrie, on peut supposer j = 1). On écritq1 = p1w et comme q1, p1 sont irréductibles, on déduit que w ∈ A×. Finalement :

(wv)−1up2 · · · pr = q2 · · · qs ,

et l’on conclut par récurrence. �

3 Anneaux euclidiens

Il s’agit des anneaux avec lesquels il nous sera le plus facile de travailler. Les anneauxZ et Q[X] sur lesquels ce cours se concentre sont des exmples d’anneaux euclidiens.

3.1 Définition et propriétés générales

Définition 6L’anneau A est dit euclidien s’il est intègre et s’il existe une fonction

φ : A \ {0} →N

telle que pour tout couple (a, b) d’éléments de A, avec b 6= 0, il existe q, r ∈ A tels que

a = bq + r , (r = 0 ou φ(r) < φ(b)) .

Cette dernière égalité est la division euclidienne de a par b. On appelle q le quotient etr le reste.

Exemples. • L’anneau des entiers Z est euclidien pour le choix φ = | · |.• Si K est un corps, l’anneau K[X] est euclidien pour le choix φ = deg ; la fonctiondegré. Aussi K lui-même est euclidien pour la fonction φ constante égale à 1. (Celadit, faire des divisions euclidiennes dans un corps ne présente pas grand intérêt.)• L’anneau des entiers de Gauss Z[i] = {a + ib : a, b ∈ Z} est euclidien relativement àla restriction de la fonction “carré du module” z ∈ C 7→ |z|2.

9

Théorème 2Tout anneau euclidien est principal.

Remarque. En particulier tout anneau euclidien est factoriel d’après le théorème dela section précédente

Preuve. Soit A un anneau euclidien relativement à une fonction φ. Soit I un idéal deA. Montrons que I = (a) pour un certain a ∈ I. Si I = {0}, on a fini car I = (0).Sinon, prenons x ∈ I \ {0} ; on peut calculer φ(x). Soit x0 ∈ I tel que

φ(x0) = min{φ(x) : x ∈ I, x 6= 0} .

Montrons I = (x0). Déjà (x0) ⊂ I, car x0 ∈ I. Réciproquement, soit y ∈ I ; on le diviseeuclidiennement par x0

y = qx0 + r ,

avec r = 0 ou φ(r) < φ(x0). On en déduit r = 0 car sinon r = y − qx0 est dans Iet vérifie φ(r) < φ(x0), ce qui contredit la minimalité de x0. Donc y = qx0 ∈ (x0).Conclusion : I = (x0) est principal. �

3.2 Algorithme d’Euclide et algorithme d’Euclide étendu

Proposition 4Soit A un anneau euclidien et a et b des éléments de A, avec b 6= 0. Si r est le reste de ladivision euclidienne de a par b alors

pgcd(a, b) = pgcd(b, r).

Voici le principe de l’algorithme d’Euclide : soient a et b comme dans la proposition ;on pose r0 = a et r1 = b, puis pour k ≥ 1, tant que rk 6= 0, on définit rk+1 comme lereste de la division euclidienne de rk−1 par rk. En particulier, on a ϕ(rk+1) < ϕ(rk) (ourk+1 = 0) si rk est non nul. La suite (ϕ(rk))k ainsi construite est donc décroissante dansN, ce qui garantit que l’algorithme s’arrête, puisqu’une telle suite est nécessairementstationnaire à partir d’un certain rang. On vérifie alors, en utilisant la Proposition 4,que le dernier terme non nul de la suite est le pgcd de a et b.

Entrées : a,b éléments d’un anneau euclidien A, avec b 6= 0Sorties : un pgcd de a et btant que b 6= 0 faire

r := reste de la division euclidienne de a par ba := bb := r

finretourner a

Algorithme 1 : Algorithme d’Euclide

10

Voici maintenant une variante de l’algorithme d’Euclide qui permet de déterminerun pgcd de deux éléments a et b d’un anneau euclidien A ainsi que deux élémentss ∈ A et t ∈ A tels que as + bt = pgcd(a, b). Cette variante est généralement appeléealgorithme d’Euclide étendu.On définit récursivement des éléments rk, sk et tk de A de la façon suivante : on poser0 = a, s0 = 1, t0 = 0, r1 = b, s1 = 0, t1 = 1 et pour k ≥ 1

qk = quotient dans la div. euclidienne de rk−1 par rkrk+1 = rk−1 − rkqksk+1 = sk−1 − skqktk+1 = tk−1 − tkqk

On vérifie alors par récurrence sur k, que les éléments sk et tk ainsi définis vérifient larelation

rk = ask + btk

pour tout k ≥ 0. En particulier, si ` est l’indice du dernier reste non nul, on obtient

d = r` = as` + bt`.

Entrées : a,b éléments de A euclidien, avec b 6= 0Sorties : d = pgcd(a, b) et (s, t) ∈ A2 tel que d = as + btr := [a, b]s := [1, 0]t := [0, 1]i := 1tant que le dernier élément de la liste r est non nul faire

q := quotient de la div. euclidienne de ri−1 par riri+1 := ri−1 − qiri (reste de la div. euclidienne de ri−1 par ri)si+1 := si−1 − qisiti+1 := ti−1 − qitii = i + 1

fin` = i− 1retourner (r` = d, s`, t`)

Algorithme 2 : Algorithme d’Euclide étendu

Remarque. L’algorithme précédent fournit une preuve constructive du théorème deBézout, à l’inverse de la proposition 3 qui prouve l’existence d’une relation de Bézoutmais ne donne aucun moyen d’en déterminer une.

Il convient d’établir le résultat suivant affirmant la correction de l’algorithme 2.

Proposition 5L’algorithme 2 calcule correctement, à partir de (a, b) ∈ A, où A est euclidien et b 6= 0,un pgcd d de (a, b) dans A ainsi qu’une relation de Bézout d = as + bt, où s, t ∈ A.

11

12

Chapitre 2

Algèbre effective et notion de coût

Dans le chapitre 1 on s’est concentré sur certaines propriétés algébriques des an-neaux sur lesquels ce cours se concentre : Z et Q[X]. On souhaite maintenant adopterun autre point de vue sur certaines de ces propriétés algébriques en les considérantsous l’angle “effectif”. Avec à l’esprit la possibilité de manipuler ces anneaux via unlogiciel de calcul formel ou de calcul numérique, on veut s’assurer que les opéra-tions usuelles (addition, multiplication, exponentiation, division euclidienne, calculde pgcd et de relations de Bézout,...) peuvent être programmées de manière à ce quele temps de calcul n’augmente “pas trop vite” avec la taille des données. Cette ap-proche donne lieu à la notion de coût d’un algorithme.

1 Algorithmes élémentaires, coût

Définition 1 (Algorithme, coût)Dans ce cours, on appelle algorithme la donnée de deux listes E (“entrée”) et S (“sortie”)et d’une suite d’instructions produisant la sortie S à partie de l’entrée E. Le coût d’unalgorithme est la mesure du nombre d’opérations nécessaires à son exécution. La notiond’opération, utilisée dans cette définition, est une convention établie préalablement àl’analyse de l’algorithme.

Exemple. Si l’on souhaite écrire un algorithme d’addition de deux entiers dans Z, onpeut prendre E = [a, b] (les entiers à sommer), S = [a + b], et définir une “opération”comme étant l’addition de 2 chiffres en base 10.

Définition 2Un algorithme est dit élémentaire si les instructions qu’il contient n’utilise que la défini-tion des objets donnés en entrée (en particulier, un tel algorithme ne fait pas appel à desdonnées calculées par d’autres algorithmes).

Pour illustrer cette définition et la notion de coût, on donne ci-dessous des algo-rithmes d’addition et de multiplication dans Z et Q[X].

13

1.1 Addition dans Z et Q[X]

Pour donner ces algorithmes, il est important de préciser comment on représente lesentiers et les polynômes à coefficients rationnels. La représentsation sur machine desentiers est intuitive : on fixe une base de numération B (disons 2, ou plus générale-ment une puissance de 2, par exemple 264 dans les machines 64 bits) et on écrit toutentier a sous la forme

a = (−1)sr

∑i=0

aiBi ,

s ∈ {0, 1}, 0 ≤ ai ≤ B − 1, pour tout i. Si ar 6= 0, la taille de a est définie comme étantla longueur r + 2 de la liste [s; a0, a1, . . . , ar], déterminant entièrement l’entier a.La représentation sur machine des éléments de Q[X] est beaucoup plus complexe,puisqu’elle sous-entend que l’on a donné à la machine une représentation pour lesrationnels (par exemple comme listes de 2 entiers [a, b] où l’on identifie les listes [a, b]et [c, d] si a × d = b × c, ce qui sous-entend que la machine sait multiplier des en-tiers...).On début avec un algorithme d’addition d’entiers, écrit dans le cas simplifié où les 2entiers à additionner sont de même signe.

Entrées : a = (−1)s ∑ni=0 aiBi, b = (−1)s ∑n

j=0 bjB j des entiers écrits en base B,avec an 6= 0 ou bn 6= 0.

Sorties : a + b = (−1)s ∑n+1k=0 ckBk

1. γ0 := 02. pour k = 0..n faire

ck = ak + bk + γkγk+1 = 0si ck ≥ B alors

ck = ck −Bγk+1 = 1

finfin3. cn+1 := γn+1retourner (−1)s ∑n+1

k=0 ckBk

Algorithme 3 : Algorithme d’addition dans Z

Remarque. Si a et b n’ont pas le même signe (disons respectivement (−1)s et (−1)t,il faut modifier légèrement l’algorithme ci-dessus en comparant au préalable (−1)saket (−1)tbk pour tout k. Une autre remarque importante est que l’algorithme ci-dessussous-entend que la machine sait additionner les chiffres en base B.

Analyse du coût. Comme le suggère la remarque ci-dessus, “l’unité” choisie pourmesurer le coût est le nombre d’opérations sur les chiffres.L’étape 1 est une simple assignation ; on considère que cela coûte 0 opération sur leschiffres. À l’étape 2, on fait, à chaque incrémentation de k dans la boucle “pour”,une ou deux additions de chiffres pour calculer ck et au plus une soustraction (si

14

ck ≥ B). Les autres instructions, y compris la sortie, ne coûtent aucune opération surles chiffres. En tout, on fait donc au plus 3(n + 1) opérations sur les chiffres en baseB.

Donnons également un algorithme d’addition dans Q[X]. Pour P ∈ Q[X], on adoptela représentation usuelle :

P =n

∑i=0

aiXi ,

où ai ∈ Q pour tout i, i.e. on voit un polynôme comme la liste de ses coefficients[a0, a1, . . . , an]. On rappelle que le degré d’un polynôme non nul P est

deg P := maxi{i ≥ 0 : ai 6= 0} .

On a également une notion de taille, pour les polynômes non-nuls. Cette notion esttrès utile pour l’estimation du coût des algorithmes ; on la donne donc formellementci-dessous en rappelant, en passant, la définition de taille pour un entier.

Définition 3 (Taille)Soit B une base de numération et soit

a = (−1)st

∑i=0

aiBi ∈ Z , P =r

∑j=o

pjX j ∈ Q[X] ,

avec at 6= 0, pr 6= 0. On définit :

• la taille de a comme étant la longueur t + 2 de la liste [s; a0, . . . , at],

• la taille de P comme étant la longueur r + 1 de la liste [p0, . . . , pr] de ses coeffi-cients.

Entrées : a = ∑ni=0 aiXi, b = ∑n

j=0 bjX j, avec an 6= 0 ou bn 6= 0 et les ai, bj ∈ Q.Sorties : a + b = ∑n

k=0 ckXk

1. pour k = 0..n faireck = ak + bk

finretourner ∑n

k=0 ckXk

Algorithme 4 : Algorithme d’addition dans Q[X]

On note que l’algorithme ci-dessus est très proche de son analogue dans Z, à celàprès qu’il n’apparaît pas de retenues dans l’algorithme d’addition dans Q[X] (contrai-rement au cas de Z où l’on a utilisé la variable γi pour stocker la valeur de la i-èmeretenue). Le coût de l’algorithme ci-dessus est également en cn opérations dans Q

(“l’unité” de mesure pour le coût d’un algorithme dans Z est ici choisie comme étantl’opération sur les rationnels), où c > 0 est une constante indépendante de n.

15

Convention. Étant donné une unité de mesure du coût, on donnera toujours les esti-mées pour le coût d’un algorithme, à une constante multiplicative (ou additive) près,en fonction de la taille des entrées. On adoptera la notation “grand O” pour donnerle coût d’un algorithme à une constante multiplicative (ou additive) près.

Définition et proposition 1Avec la convention ci-dessus, l’algorithme 3 (resp. 4) d’addition dans Z (resp. dansQ[X]) a un coût en O(n) opérations sur les chiffres en base B (resp. O(n) opérationsdans Q), si l’entrée est de taille n. On dit qu’il s’agit d’un algorithme dont le coût estlinéaire en la taille de l’entrée.

1.2 Multiplication dans Q[X]

On donne l’algorithme “naïf” suivant de multiplication dans Q[X]. On verra dansla suite de ce chapitre (et à plus forte raison lors du chapitre sur la transformée deFourier discrète), qu’on peut substantiellement améliorer cet algorithme pour fairebaisser son coût.

Entrées : a = ∑nk=0 akXk, b = ∑m

j=0 bjX j, avec an 6= 0, bm 6= 0 et les ai, bj ∈ Q.Sorties : a · b = ∑n+m

k=0 ckXk

1. pour i = 0..n fairedi := aiXi · b

finretourner c := ∑n

i=0 di

Algorithme 5 : Algorithme “naïf” de multiplication dans Q[X]

Analyse du coût. Il faut comprendre chaque opération aiXi · b comme le produit derationnels ai × bj (pour tout j), puis le décalage du degré de +i places (après multi-plication par aiXi, le j-ème coefficient bj de b apparaît dans le (i + j)-ème coefficientde aiXi · b).À la fin de l’étape 1, chaque coefficient de a a été multiplié par chaque coefficient de b,soit (n + 1)(m + 1) multiplications dans Q. Ces produits ai × bj sont sommés ensuitepour former les n + m + 1 coefficients de a · b. Comme, pour s ∈ N≥2, une additionde s termes équivaut à s− 1 additions de 2 termes, on doit en tout effectuer

(n + 1)(m + 1)− (n + m + 1) = nm

additions de rationnels. Le coût total est ainsi de (n+ 1)(m+ 1)+ nm opérations dansQ. L’algorithme de multiplication ci-dessus a donc un coût en O(nm) opérations surles rationnels pour des entrées a, b de taille respective n, m.

Définition et proposition 2L’algorithme 5 ainsi que son analogue pour la multiplication des entiers (écrits en baseB), est quadratique en la taille des entrées i.e., si les entrées a et b sont de taille n (à uneconstante multiplicative ou additive près), alors, son éxécution nécessite au plus O(n2)opérations sur les rationnels (ou sur les chiffres en base B dans le cas des entiers).

16

On pourrait en effet donner un algorithme “naïf” de multiplication d’entiers, construitsur le modèle de l’algorithme 5, en exploitant la similarité des représentations d’unentier a = ∑0≤i≤n aiBi et d’un polynôme P = ∑0≤j≤m pjX j. Ces algorithmes n’étantpas optimaux, et pour éviter des redondances inutiles, on omet la description précised’un algorithme de multiplication naïve d’entiers.

1.3 Division euclidienne dans Q[X]

En se concentrant toujours sur le cas de l’anneau euclidien Q[X], on donne un algo-rithme de division euclidienne. On notera qu’il s’adapte sans difficulté pour donnerun algorithme de division euclidienne dans l’anneau euclidien Z.

Entrées : a = ∑nk=0 akXk, b = ∑m

j=0 bjX j ∈ Q[X], avec an 6= 0, bm 6= 0, n ≥ m.Sorties : quotient et reste dans la division euclidienne de a par b1. r := a, u := b−1

m ∈ Q.2. pour i = n−m, n−m− 1, ..., 0 faire

si deg r = m + i alorslc(r) := coeff. dom. de r,qi := lc(r)ur := r− qiXi · b

finfinretourner [q := ∑0≤i≤n−m qiXi, r]

Algorithme 6 : Division euclidienne dans Q[X]

Exercice 2.2. Montrer que l’algorithme 6 calcule correctement le quotient et le restedans la division euclidienne de a par b.Analyse du coût. L’analyse est proche de celle de l’algorithme 5. À chaque pas-sage dans la condition “si”, à l’intérieur de la boucle “pour”, on calcule qiXi · b (soitm + 1 multiplications dans Q). Le caclul de la différence r − qiXi · b ne requiert quem additions supplémentaires dans Q car le coefficient de plus haut degré (ce degrévaut (m + i)) de r est exactement compensé par qiXi · b. Ainsi chaque passage dansla condition “si” requiert au plus m + 1 multiplications et m additions dans Q. Lenombre d’itérations dans la boucle “pour” étant n−m + 1 ; on déduit que le nombremaximal d’opérations dans Q effectuées à l’étape 2 est (2m + 1)(n− m + 1). À celàs’ajoute le coût de l’inversion de bm, effectué une fois pour toute à l’étape 1. Les autresinstructions (assignations et représentations de polynômes) sont négligées dans lecalcul du coût. On déduit la proposition suivante.

Proposition 1L’algorithme 6 de division euclidienne dans Q[X] est quadratique en la taille des entréesi.e., si les entrées a et b sont de taille n (à une constante multiplicative ou additive près),alors, son éxécution nécessite au plus O(n2) opérations sur les rationnels.

17

On garde en tête que la multiplication des entiers (et donc des rationnels) et plus coû-teuse que l’addition des entiers. Ce sont les multiplications de rationnels requises parl’algorithme 6 qui sont donc limitantes. En d’autres termes, si l’on sait effectuer plusrapidement les multiplications dans Z, on déduira un algorithme plus performantde divison euclidienne dans Q[X].

2 Analyse du coût de l’algorithme d’Euclide

Dans cette section on reprend l’algorithme 1 du chapitre précédent et on analyse soncoût dans le cas où l’anneau euclidien A est Q[X]. Par commodité, on redonne cetalgorithme :

Entrées : a,b éléments d’un anneau euclidien A, avec b 6= 0Sorties : un pgcd de a et btant que b 6= 0 faire

r := reste de la division euclidienne de a par ba := bb := r

finretourner a

Analyse du coût dans le cas A = Q[X]. Notons n = deg a et m = deg(b) et suppo-sons, sans perte de généralité, que n ≥ m. Le nombre d’itérations dans la boucle “tantque” est majoré par m+ 1 (la “chute de degré” est au moins 1, à chaque itération, pourle reste r). Notons ri (1 ≤ i ≤ `) la suite des restes non nuls calculés par l’algorithme(de sorte que r` = pgcd(a, b) et que le nombre d’itérations dans la boucle “tant que”est `+ 1 ≤ m + 1). Pour tout 1 ≤ i ≤ `, notons ni = deg ri. On a vu dans l’analysedu coût de l’algorithme 6 que la divison euclidienne de ri−1 par ri nécessite au plus(2ni + 1)(ni−1 − ni + 1) additions et multiplications dans Q (à quoi l’on doit ajouterau plus `+ 1 ≤ m + 1 inversions). Le “cas le pire” i.e le plus coûteux correspond auxégalités ni−1 − ni = 1 (et donc ni = m− i + 1) (dès que i ≥ 2) i.e le degré du restechute seulement de 1 à chaque étape. On a alors dans ce cas un nombre total :

(2m + 1)(n−m + 1) + ∑2≤i≤m+1

(ni−1 − ni + 1)(2ni + 1)

=(2m + 1)(n−m + 1) + 2 ∑2≤i≤m+1

2(m− i + 1) + 1

=(2m + 1)(n−m + 1) + 2m(m− 1) + 2m = 2nm + n + m + 1 ,

d’additions ou multiplications dans Q. On déduit donc l’énoncé suivant :

Proposition 2L’algorithme d’Euclide traditionnel dans Q[X] ci-dessus a un coût en O(nm) opérationsdans Q si les entrées a et b sont de degré respectif n et m. En particulier cet algorithme aun coût quadratique en la taille des entrées.

18

Remarque. On note, un peu contre-intuitivement, que le coût n’augmente pas si-gnificativement lorsque l’on calcule le pgcd de a et b par l’algorithme ci-dessus parrapport à la simple division euclidienne de a par b par l’algorithme 6. Mieux encore,on peut montrer (cf TD) que l’algorithme d’Euclide étendu (algorithme 2 du chapitreprécédent) dans Q[X] a aussi un coût quadratique en le degré des entrées (le coûtsupplémentaire dû à la recherche d’une relation de Bézout n’augmente donc pas si-gnificativement le nombre d’opérations par rapport au seul calcul de pgcd).Notons également qu’une analyse proche de celle faite ci-dessus permet de montrerque dans le cas A = Z l’algorithme d’Euclide traditionnel ci-dessus a également uncoût quadratique en la taille des entiers donnés en entrée (et le coût est essentielle-ment le même pour l’algorithme d’Euclide étendu dans Z).

3 Exemples de méthodes d’amélioration du coût

On débute dans cette section l’étude de méthodes permettant de réduire le coût desalgorithmes. Une approche simple, mais parfois efficace, consiste en un changementde représentation pour les objets donnés en entrée. On illustre cette méthode dans lesdeux premiers paragraphes ci-dessous.

3.1 Évaluation de polynômes : l’algorithme de Hörner

Soit K un corps (disons K = Q, K = R, K = C, K = Z/pZ avec p un nombre premier,etc...). Soit α ∈ K et P = a0 + a1X + · · · anXn ∈ K[X] un polynôme de degré n. Onsouhaite donner un algorithme efficace permettant l’évaluation de P en α (i.e. le calculde P(α)).

Méthode 1 (“naïve”) : On calcule :1. les αi pour tout 2 ≤ i ≤ n, (ce qui coûte au plus n− 1 multiplications dans K),2. les aiα

i pour tout 1 ≤ i ≤ n, (ce qui coûte au plus n multiplications dans K),3. on fait la somme des n + 1 termes aiα

i (ce qui coûte au plus n additions dans K).

Dans le pire des cas, le calcul de P(α) requiert donc 2n− 1 multiplications et n addi-tions dans K.

Méthode 2 (Hörner) : on considère l’algorithme suivant.

Entrées : P = a0 + a1X + · · ·+ anXn ∈ K[X] un polynôme de degré n ≥ 1, etα ∈ K

Sorties : P(α)1. v := an2. pour i = n− 1, · · · , 0 faire

v := v× α + aifinretourner v

Algorithme 7 : Algorithme de Hörner

19

Analyse du coût. À chaque itération dans la boucle “pour”, on fait 1 multiplicationpar α et 1 addition. Le nombre d’opérations total est donc au plus de n multipica-tions dans K et de n additions dans K. Puisque l’on a vu que la multiplication (desentiers, par exemple) est plus coûteuse que l’addition (cf l’analyse du coût des algo-rithmes 3 et 4), la méthode de Hörner divise essentiellement par 2 le nombre maximald’opérations requises dans K pour calculer P(α), comparée à la méthode naïve.

L’amélioration du coût repose ici sur le fait que l’on voit le polynôme P non pascomme la suite de ses coefficients, mais comme le résultat, après n itérations, duprocédé

v := vX + ai ,

où i prend successivement les valeurs n− 1, n− 2, ..., 0 et où l’on initialise v := an.

3.2 Exponentiation rapide

Soit A un anneau, a ∈ A, et n ≥ 1 un entier. On souhaite donner un algorithmeefficace de caclul de an.

Méthode 1 (“naïve”) : On calcule ai pour tout 2 ≤ i ≤ n. Cette méthode coûte au plusn− 1 multiplications dans A.

Méthode 2 (exponentiation rapide) : on considère l’algorithme suivant.

Entrées : a ∈ A, où A est un anneau, et n = ∑ri=0 εi2i ∈N≥1 un entier écrit en

base 2Sorties : an

1. v := 12. pour i = 0..r faire

si εi = 1 alorsv = v× a

fina := a× a

finretourner v

Algorithme 8 : Algorithme d’exponentiation rapide

Analyse du coût. À chaque passage dans la boucle “pour”, on fait au plus 2 mul-tiplications dans A. Le coût total est donc de 2(r + 1) multiplications dans A. Or2r ≤ n < 2r+1, donc r = blog2(n)c. En conclusion, le coût de cet algorithme est enO(log n) opérations dans A.

L’amélioration par rapport à la méthode naïve est considérable. L’efficacité de l’algo-rithme d’exponentiation rapide repose sur le fait que l’on demande que n soit repré-senté dans son écriture en base 2.

20

3.3 Multiplication par la méthode de Karatsuba

Comme on l’a mentionné plus haut, le coût quadratique de la multiplication par laméthode naïve (cf algorithme 5) n’est pas satisfaisant. On donne dans cette sectionune premier moyen de réduire ce coût. On verra dans un chapitrte ultérieur commentle réduire plus significativement encore par transformation de Fourier discrète.

La méthode que l’on décrit dans cette section est due au mathématicien russe Karat-suba. L’analyse du coût de la méthode est plus délicate à conduire que dans les castraités jusqu’ici. Cette analyse va nécessiter l’introduction d’un outil important pourl’analyse d’algorithme généraux : les séries génératrices.

Définition 4 (Séries génératrices)Soit K un corps et (an)n≥0 une suite quelconque d’éléments de K. On appelle sériegénératrice associée à (an) la série formelle ∑n≥0 anXn.

On insiste ici sur le fait que ∑n≥0 anXn est une série formelle, i.e. un simple moyende donner une autre représentation pour la suite (an)n≥0. En particulier, on ne sepose pas pour ces séries les questions de convergence quio sont habituelles pourles séries numériques ou les séries de fonctions. On aura besoin de deux propriétésimportantes des séries formelles (ces propriétés sont admises).

Proposition 3Soit K un corps, a ∈ K, (an)n≥0 et (bn)n≥0 des suites de K. On a les propriétés suivantes.

1 ) En définissant la somme ∑n≥0 snXn de ∑n≥0 anXn et ∑n≥0 bnXn par sn =an + bn (pour tout n) et le produit ∑n≥0 pnXn de ∑n≥0 anXn et ∑n≥0 bnXn parpn = ∑n

k=0 akbn−k (pour tout n), on munit l’ensemble des séries génératrices àcoefficients dans K d’une structure d’anneau commutatif.

2 ) On a le développement en série formelle :

11− aX

= ∑n≥0

anXn .

Décrivons maintenant la méthode de Karatsuba : on donne en entrée deux entiers a, bà n = 2k (i.e. n est pair) chiffres en base B. Écrivons :

a = a1Bk + a0 , b = b1Bk + b0 .

Ainsi, les ai et bj ont au plus k chiffres en base B. Posons :

c1 = a1 × b1 , c0 = a0 × b0 , c1/2 = a0b1 + a1b0 .

On a bien sûr :a× b = c1 × 102k + c1/2 × 10k + c0 .

21

Toute l’astuce de la méthode repose alors sur la remarque suivante : le calcul de

c1/2 = c1 + c0 − (a1 − a0)(b1 − b0)

ne requiert qu’une seule multiplication supplémentaire de nombres à au plus k chiffres(le produit (a1 − a0)(b1 − b0)) en plus de c1 et c0. On a vu par ailleurs que l’addition,en base B a un coût linéaire en la taille des entrées. Ainsi, si l’on note tn le coût (ennombre d’opérations sur les chiffres en base B) de la multiplication de Karatsuba de2 nombres à (au plus) n = 2k chiffres en base B, l’astuce ci-dessus nous permet devoir que

tn = 3tn/2 + c · n ,

où c > 0 est une constante.

Pour analyser le coût de cette méthode, il nous faut exprimer tn comme une fonctionde n, i.e. résoudre la récurrence ci-dessus. Pour cela, on va se placer dans la situationoù n = 2m est uen puissance de 2 et l’on note pour tout m ≥ 0,

t′m = t2m .

On doit alors résoudre la récurrence

t′m = 3t′m−1 + c× 2m .

Notons T(X) = ∑m≥0 t′mXm la série génératrice associée à la suite (t′m)m≥0. Le résultatdonne une forme simple pour T(X) ainsi qu’une valeur de tn en fonction de n.

Théorème 1Avec les notations ci-dessus, on a

T(X) =1 + 2c1− 3X

− 2c1− 2X

.

En particulier, pour tout n ≥ 1, on a

tn = (2c + 1)nlog2(3) − 2cn ,

où l’on rappelle la valeur approchée log2(3) ' 1, 58496....

22

Chapitre 3

Quelques applications de l’algorithmed’Euclide

Ce chapitre est consacré à la description d’applications variées de l’algorithme d’Eu-clide. En particulier on mentionne l’algorithme des restes chinois, la cryptographieRSA, et le résultant, outil permettant notamment de calculer les points d’intersectionde certaines courbes algébriques.

1 Inversion modulaire et algorithme des restes chinois

Dans cette section, A désigne un anneau euclidien (disons A = Z ou A = Q[X]).

1.1 Inversion modulaire

Étant donné un élément m ∈ A, on dit que a ∈ A est inversible modulo m si la classea de a modulo m est inversible dans l’anneau quotient A/(m). On donne ci-dessousun algorithme simple permettant de calculer dans ce cas l’inverse de a modulo m (i.e.on calcule b ∈ A tel que ab− 1 ∈ (m)).

Entrées : a, m ∈ A, m 6= 0, où A est un anneau euclidien.Sorties : Erreur si a n’est pas inversible modulo m, ou b ∈ A tel que

ab ≡ 1(modm) sinon.1. Par euclide étendu, calculer (d, s, t) ∈ A3 tels que d = as + tm = pgcd(a, m)retourner Erreur si d 6= 1 et s sinon.

Algorithme 9 : Algorithme d’inversion modulaire

Analyse du coût. Le coût est celui de l’algorithme d’Euclide étendu utilisé à l’étape1. Si la version de l’algorithme d’Euclide étendu utilisé est l’algorithme 2 du chapitre1, on déduit donc que l’algorithme ci-dessus a un coût quadratique.

23

1.2 Algorithme des restes chinois

On peut prendre l’exercice suivant comme point de départ motivant et illustrant lethéorème des restes chinois et son incarnation effective : l’algorithme des restes chi-nois.

Exercice 3.3. Combien y a-t-il d’entiers positifs ayant au plus 2 chiffres en base 10,dont le reste dans la division euclidienne par 9 est 4 et dont le reste dans la divisioneuclidienne par 11 est 6 ?

On réinterprète la question de l’exercice : on cherche les entiers positifs x à deuxchiffres en base 10 tels que {

x ≡ 4 mod 9x ≡ 6 mod 11 .

Le cadre général dans lequel on se place pour répondre à cette question est le suivant.Dans l’anneau euclidien A, on se donne des éléments m1, . . . , mr supposés 2 à 2 pre-miers entre eux et des éléments quelconques a1, . . . , ar ∈ A. Pour chaque i = 1, . . . , r,on a le morphisme d’anneaux

πi : A→ A/(mi) , x 7→ x mod mi .

On définit alors

π : A→ A/(m1)× · · · × A/(mr) , x 7→ (π1(x), . . . , πr(x)) .

On rappelle la propriété suivante du morphisme π que l’on appelle théorème des resteschinois.

Proposition 1 (Théorème des restes chinois)Avec les notations et hypothèses ci-dessus (notamment, on suppose les mi deux à deuxpremiers entre eux), le morphisme d’anneaux π est surjectif et son noyau est l’idéal de Aengendré par le produit m := m1 · · ·mr.

Preuve. On a x ∈ ker π si et seulement si πi(x) = 0 dans A/(mi) pour tout i, si etseulement si mi | x pour tout i. Comme les mi sont supposés deux à deux premiersentre eux, cela équivaut encore au fait que le prduit m1 · · ·mr divise x, i.e. x ∈ (m).Montrons la surjectivité de π. Par A-linéarité de π, il suffit de trouver un antécé-dent pour chaque ei = (0, · · · , 1, 0, · · · , 0), où le coefficient 1 est en i-ème position et1 ≤ i ≤ r. Fixons un indicei ; les éléments m/mi et mi sont premiers entre eux dansl’anneau euclidien A. On peut donc écrire une relation de Bézout

smmi

+ tmi = 1 .

On a alors πj(sm/mi) = 0 pour tout j 6= i et πi(sm/mi) = 1. Ainsi π(sm/mi) = ei. �

24

Corollaire 1En conservant les notations de la proposition, pour tout a1, . . . , ar ∈ A le système decongruences

x ≡ ai mod mi , ∀i ∈ {1, . . . , r} ,

admet une solution dans A. De plus cette solution est unique modulo le produit m :=m1 · · ·mr.

La version effective du théorème des restes chinois donne lieu à l’algorithme suivant.

Entrées : m1, . . . mr ∈ A, des éléments 2 à 2 premiers entre eux, et a1, . . . , ar ∈ Aoù A est un anneau euclidien.

Sorties : Un élément x ∈ A tel que x ≡ ai mod mi pour tout i.1. m := m1 · · ·mr2. pour i = 1, · · · , r faire

calculer par Euclide étendu si, ti ∈ A tels que simmi

+ timi = 1ci := reste dans la division euclidienne de aisi par mi

finretourner ∑r

i=1 cimmi

.

Algorithme 10 : Algorithme des restes chinois

Analyse du coût. À l’étape 1, on fait r− 1 multiplication dans A pour calculer m.À l’étape 2, à chaque itération de i, on fait deux divisions euclidiennes (m par mi puisaisi par mi) et on utilise une fois l’algorithme d’Euclide étendu pour calculer si et ti.À l’etape de sortie on fait r multiplications et r − 1 additions dans A. De l’analysedes algorithmes de multiplication (algo 5), de division euclidienne (algo 6), et del’algorithme d’Euclide étendu (algo 2), on déduit la proposition suivante.

Proposition 2L’algorithme 10 dans A = Q[X] (resp. A = Z) a un coût en O(n2) opérations dansQ (resp. opérations sur les chiffres dans une base de numération donnée B) pour despolynômes mi, aj de degré au plus n (resp. des entiers mi, aj à au plus n chiffres en baseB).

Exercice 3.4. Appliquer l<algorithme 10 pour terminer la résolution de l’exercice 3.3.

2 Anneaux Z/nZ et cryptographie RSA

2.1 Rappels sur les anneaux Z/nZ

Dans ce paragraphe, n désigne un entier naturel non nul fixé. On donne quelquesrappels sur l’anneau Z/nZ des classes de congruence modulo n.

25

Définition 1On dit que deux entiers relatifs a et b sont congrus modulo n ou encore que a est congruà b modulo n si n divise a− b. On notera a ≡ b mod n ou a ≡ b [n].

Proposition 3La relation de congruence modulo n vérifie les propriétés suivantes

1 ) ∀a ∈ Z a ≡ a mod n ("Réfléxivité"),

2 ) ∀(a, b) ∈ Z2 a ≡ b mod n ⇐⇒ b ≡ a mod n ("Symétrie"),

3 ) ∀(a, b, c) ∈ Z3 (a ≡ b mod n ∧ b ≡ c mod n) ⇒ a ≡ c mod n ("Transiti-vité").

On dit que la relation de congruence est une relation d’équivalence (cf chapitre suivantpour un rappel de la définition générale) sur l’ensemble des entiers.

Proposition 4Pour tout entier relatif a, il existe un unique entier naturel r ∈ {0, . . . , n− 1} tel quea ≡ r mod n

Preuve. Il suffit de considérer le reste de la division euclidienne de a par n. �

Définition 2Pour tout a ∈ Z, on note a+ nZ ou a la classe de congruence de a modulo n, c’est-à-dire

a + nZ = a := {b ∈ Z | b ≡ a mod n} .

On note Z/nZ l’ensemble des classes de congruence modulo n.

La Proposition 4 admet le corollaire suivant :

Corollaire 2Z/nZ =

{0, 1, . . . , n− 1

}.

On souhaite munir l’ensemble Z/nZ des classes de congurence modulo n d’une ad-dition et d’une multiplication. Le point de départ de la construction est le résultatsuivant.

Proposition 5Soit n un entier naturel non nul. On note a, b, a′ et b′ quatre entiers relatifs. On a lespropriétés suivantes : si a ≡ b mod n et a′ ≡ b′ mod n alors

a + a′ ≡ b + b′ mod n a− a′ ≡ b− b′ mod n aa′ ≡ bb′ mod n

26

Remarque : On dit que la relation de congruence est compatible avec l’addition, lasoustraction et la multiplication définies sur Z.

La Proposition5 permet en particulier de munir l’ensemble quotient Z/nZ d’uneaddition et d’une multiplication définies comme suit.

Définition 3Soient x et y deux éléments de Z/nZ. On pose :

1 ) (Addition) x + y := s, où s désigne le reste de la division euclidienne de x + y parn,

2 ) (Multiplication) x y := p, où p désigne le reste de la division euclidienne de xypar n.

Proposition 6Soit n ∈ N≥1. L’ensemble Z/nZ, muni des lois “+′′et“×” ci-dessus, est un anneaucommutatif dont le neutre pour l’addition (resp. pour la multiplication) est la classe de 0(resp. de 1) modulo n. Par ailleurs le groupe des inversibles

(Z/nZ)× = {k : pgcd(k, n) = 1}

a pour ordre ϕ(n) := #{1 ≤ k ≤ n : pgcd(k, n) = 1} ; c’est l’indicatrice d’Euler den.Si la décomposition en produit de facteurs premiers de n est n = pr1

1 · · · prss alors

ϕ(n) =s

∏i=1

pri−1i (pi − 1) .

2.2 Cryptographie RSA

Il s’agit d’un célèbre cryptosystème asymétrique, à clé publique dont des variantes so-phistiquées sont toujours utilisées aujourd’hui dans la vie courante.

Le schéma de communication est le suivant : un émetteur (traditionnellement appeléAlice) et un récepteur (traditionnellement appelé Bob) souhaitent communiquer.

Étape 1. Alice doit tout d’abord choisir deux grands nombres premiers p < q. Ellecalcule le produit N = p× q ainsi que ϕ(N) = (p− 1)(q− 1). Alice choisit ensuiteun entier e ∈ {2, ϕ(N) − 1} qui est inversible modulo ϕ(N) (ce choix peut se faireen utilisant l’algorithme d’Euclide). Alice publie ensuite sa clé publique (accessible àtous) : (N, e). La clé privée d’Alice (connue de elle seule) est (ϕ(N), d) où d est l’inversede e modulo ϕ(N) calculé grâce à l’algorithme d’inversion modulaire.

27

Étape 2. Bob prend connaissance de la clé publique (N, e) d’Alice. Il choisit un mes-sage x ∈ (Z/NZ)× à envoyer à Alice et il le chiffre en utilisant la clé publique d’Alice :

m := xe mod N .

Le message m obtenu est la version crytpée ou chiffrée de x.

Étape 3. Alice reçoit le message m et doit maintenant le déchiffrer. Elle utilise pour celasa clé privée ; elle calcule

md ≡ xed mod N .Par définition de d, il existe u ∈ Z tel que ed = 1 + uϕ(N). On a donc

xed = x1+uϕ(N) = x× (xϕ(N))u ≡ x mod N ,

car, comme x ∈ (Z/NZ)×, on a xϕ(N) ≡ 1 mod N.

On résume les définitions et assertions ci-dessus dans l’énoncé suivant.

Définition et proposition 1En conservant les notations de la section 2.2, on a les définitons et propriétés suivantes.

1 ) La clé publique d’Alice est le couple (N = p× q, e) où e est inversible moduloϕ(N) ; cette clé étant connue de tous, on dit que le système RSA est un système àclé publique.

2 ) La clé privée d’Alice est le couple (ϕ(N) = (p− 1)(q− 1), d) où d est l’inversede e modulo ϕ(N) ; cette clé étant différente de la clé publique d’Alice, on sait quele crytposystème RSA est un système asymétrique.

3 ) Un message clair est un élément x ∈ (Z/NZ)× que Bob souhaite transmettre àAlice. Le message chiffré associé est la classe modulo N de m := xe.

4 ) On a la propriété md ≡ x mod N, qui permet à Alice le déchiffrement du mes-sage chiffré m de Bob.

Remarque. La sécurité de la méthode RSA est garantie tant qu’il n’existe pas d’al-gorithme efficace permettant de calculer la clé privée (ϕ(N), d) à partir de la clé pu-blique (N, e).

La proposition suivante montre que déduire la clé privée de la clé publique équivautessentiellement à factoriser N.

Proposition 7Soit N = pq un produit de deux nombres premiers distincts. Il est équivalent de savoirrésoudre l’un ou l’autre des problèmes suivants.

1 ) Factoriser l’entier N.

2 ) Calculer ϕ(N) en ne connaissant que N (et pas ses facteurs premiers p, q).

Preuve. Pour “2)⇒ 1)”, considérer le polynôme X2 − (N − ϕ(N) + 1)X + N. �

28

3 Résultant

Le résultant est une quantité associée à un couple de polynôme et qui fournit unealternative à l’algorithme d’Euclide pour détecter l’existence d’un facteur communà ces polynômes. On débute par un lemme qui va nous permettre de ramener laquestion de l’existence d’un facteur commun non trivial de deux polynômes à unproblème d’algèbre linéaire.

3.1 Définition et propriété fondamentale

On se donne un anneau intègre A et f = ∑ni=0 fiXi, g(X) = ∑m

j=0 gjX j des polynômesà coefficients dans A de degré respectif n, m. On note K le corps des fractions de A,qui est le “plus petit corps contenant A” (penser à A = Z et K = Q par exemple).

Lemme 1L’équation u f + vg = 0, en les inconnues u, v ∈ A[X] satisfaisant deg u < deg g etdeg v < deg f , admet une solution (u, v) 6= (0, 0) si et seulement si f et g admettentun facteur commun non trivial (i.e. non constant) dans K[X].

Preuve. Supposons u f + vg = 0 pour des polynômes (u, v) 6= (0, 0) satisfaisant lesconditions de degré de l’énoncé. Par symétrie des rôles joués par u et v, on peutsupposer v 6= 0. Alors pour toute racine α de f dans un corps L contenant K (penserpar exemple à L = C si K = Q), on a 0 = u(α) f (α) = −v(α)g(α). Or deg v < deg fet v 6= 0, donc pour au moins une racine α de f , la multiplicité de α comme racinede v est strictement inférieure à la multiplicité de α comme racine de f . Fixons unetelle racine α0. On a alors g(α0) = 0. Ainsi g et f sont tout deux dans le noyau dumorphisme d’évaluation

evalα0 : K[X]→ K[α0] := {P(α0) : P ∈ K[X]} , Q 7→ Q(α0) .

Comme K[X] est principal, on a ker evalα0 = (Pα0) pour un unique polynôme unitairenon nul Pα0 ∈ K[X]. Le polynôme Pα0 est le facteur commun cherché.Pour la réciproque, si P ∈ K[X] est un facteur commun non trivial de f et g, on écritf = P f1, g = Pg1, pour des f1, g1 ∈ K[X]. On choisit alors pour (u, v) le couple(d× g1, d× (− f1)), pour un choix convenable de d ∈ A. �

Définition 4 (Matrice de Sylvester, résultant)On conserve les mêmes notations que ci-dessus et on définit Ad[X] := {h ∈A[X] : deg h ≤ d}, pour tout d ∈ N. La matrice de Sylvester Sylv( f , g) associéeà ( f , g) est la matrice de l’application A-linéaire

ψ f ,g : Am−1[X]× An−1[X]→ An+m−1[X] , (u, v) 7→ u f + vg ,

relativement aux bases

29

• ((Xm−1, 0), (Xm−2, 0), . . . , (1, 0), (0, Xn−1), (0, Xn−2), . . . , (0, 1)) deAm−1[X]× An−1[X] et

• (Xn+m−1, Xn+m−2, . . . , 1) de An+m−1[X].

Le résultant de ( f , g), noté Res( f , g) est le déterminant de la matrice Sylv( f , g) i.e. ledéterminant de l’application linéaire ψ f ,g.

En conservant les notations ci-dessus, on a donc

Sylv( f , g) =

fn 0 · · · 0 gm · · · 0

fn−1 fn · · · gm−1. . . ...

fn−2 fn−1. . . ...

...... gm

...... · · · fn

... . . . ......

... · · · ... g0...

...

f0 f1 · · · ... 0...

...

0 f0 · · · ......

......

...... . . . ...

... . . . ...0 0 · · · f0 0 · · · g0

∈ Mm+n(A) .

La propriété fondamentale du résultant est la conséquence suivante du lemme 1.

Proposition 8On conserve les notations comme ci-dessus. Les polynômes f et g admettent un facteurcommun non constant dans K[X] si et seulement si Res( f , g) = 0.

3.2 Applications.

Les applications du résultant sont multiples ; les améliorations récentes (implantéesdans les logiciels modernes de calcul formel et numérique) de temps de calcul pour ledéterminant de matrices en fait un outil très efficace. ON donne 3 exemples illustrantl’utilisation du résultant.

1 ) Points d’intersection de courbes algébriques. Soit K un corps. Une courbe algébriqueplane sur K est une partie de K2 du type :

Ch := {(x, y) ∈ K2 : h(x, y) = 0} , h(X, Y) ∈ K[X, Y] .

Soit f , g ∈ K[X, Y] et C f , Cg les courbes algébriques associées. On souhaite dé-terminer les points d’intersection I f ,g = C f ∩ Cg des courbes C f et Cg. NotonsA = K[Y] ; on peut alors voir f et g comme des éléments de A[X] et on notealors ResX( f , g) le résultant par rapport à X de f et g. Soit b ∈ K. Notons que

30

h(Y) := ResX( f (X, Y), g(X, Y)) s’annule en Y = b si et seulement si les po-lynômes f (X, b) et g(X, b) dans K[X] ont une racine commune dans un corpsL ⊃ K. Pour déterminer I f ,g, on cherche donc les racines b ∈ K de h(Y), puis lesracines communes a ∈ K de f (X, b) et g(X, b).

2 ) Mise sous forme cartésienne d’une équation paramétrique de courbe. On se donne unecourbe algébrique plane sous forme paramétrique :x(t) = P1(t)

Q1(t)

y(t) = P2(t)Q2(t)

,

où P1, P2, Q1, Q2 ∈ K[t]. On souhaite obtenir une équation cartésienne f (x, y) =0 pour cette courbe. On utilise une nouvelle fois le résultant ; l’anneau A quel’on choisit est cette fois A = K[X, Y]. La proposition8 permet alorsde voir quel’on peut choisir :

f (X, Y) = Rest(XP1(t)−Q1(t), YP2(t)−Q2(t)) .

3 ) Discriminant d’un polynôme. On note encore A un anneau intègre, K = Frac(A)son corps des fractions, et f ∈ A[X] un polynôme de degré n ∈N.

Définition 5Le discriminant de f est l’élément de A :

disc( f ) := (−1)n(n−1)

2 Res( f , f ′) ,

où f ′ désigne le polynôme dérivé de f .

La proprosition 8 donne alors :

Proposition 9Avec les notations ci-dessus, f admet une racine de multiplicité au moins 2 dansun corps L ⊃ K si et seulement si disc( f ) = 0.

Cette proposition généralise le cas partculier bien connu n = 2.

31

32

Chapitre 4

Transformée de Fourier rapide

L’objectif de ce chapitre est de décrire un algorithme permettant la multiplicationrapide (avec un coût « presque » linéaire en la taille des entrées) dans Z et Q[x] (ainsique dans des anneaux plus généraux). La méthode permettant cette multiplicationefficace s’appelle transformation de Fourier rapide. Cette méthode, que l’on va décriredans A[x], où A est un anneau intègre quelconque, nécessite l’exsitence de racines del’unité dans A. On débute en établissant quelques faits élémentaires concernant lesracines primitives n-èmes de l’unité.

1 Racines de l’unité

Soit A un anneau (commutatif et) intègre.

Définition 1 (Racines primitives n-èmes de 1)Soit n ∈N≥1 et soit ω ∈ A.

1 ) ω est une racine n-ème de 1 dans A si ωn = 1.

2 ) ω est une racine primitive n-ème de 1 dans A si c’est une racine n-ème de 1 et sipour tout diviseur premier p de n, on a ω

np 6= 1.

Exemple. Pour tout n ≥ 1, exp(2iπ/n) est une racine primitive n-ème de 1 dansA = C. Dans A = Z/17Z, tous les éléments non nuls sont des racines 16-èmes de 1.La classe de 3 est une racine primitive 16-ème de 1, mais pas la classe de 2.

Lemme 1Soit A un anneau intègre et soit `, n ∈ N satisfaisant n ≥ 2 et 1 ≤ ` < n. Soit ω uneracine primitive n-ème de 1 dans A. Alors :

1 ) ω` 6= 1,

2 ) ∑0≤j<n ω`j = 0.

33

Preuve. On va utiliser à plusieurs reprises la formule :

(?) (c− 1) ∑0≤j<m

cj = cm − 1 ,

valable pour tout c ∈ A et tout m ∈N≥1.Notons g = pgcd(`, n). On a 1 ≤ g < n. Il existe donc un diviseur premier p de n telque g divise n/p. On applique (?) avec c = ωg et m = n/(pg). Alors, pour un certaina ∈ A, on a

a · (ωg − 1) = ωn/p − 1 6= 0 .

En particulier ωg 6= 1. Soit maintenant u, v ∈ Z tels que u`+ vn = g. Appliquons (?)avec c = ω` et m = u, on obtient, pour un certain b ∈ A,

b · (ω` − 1) = ωu` − 1 = ωg−vn − 1 = ωg − 1 6= 0 .

Donc ω` 6= 0. Pour le second point, on prend c = ω` et m = n dans (?) et on obtient :

(ω` − 1) ∑0≤j<n

ω`j = ω`n − 1 = 0 .

On conclut en utilisant le premier point et le fait que A est intègre. �

On voit donc qu’une racine primitive n-ème de 1 dans A est un élément d’ordre ndans le groupe des inversibles A×.

Remarque. Comme (Z/pZ)× est un groupe cyclique d’ordre p − 1, alors Z/pZ

contient des racines primitives n-èmes de 1 si et seulement si n | (p − 1) (cf TD).Cela provient du fait qu’un racine primitive n-ème de 1 dans un anneau intègre A estexactement un élément d’ordre n de A×.

2 Transformée de Fourier discrète

Soit A un anneau intègre, n ∈N≥1 et ω ∈ A une racine primitive n-ème de 1.

Définition 2 (Transformée de Fourier discrète, convolution)(i) La transformée de Fourier discrète sur R relativement à ω est l’application linéaireTFDω : A[X]→ A[X] définie pour f ∈ A[X] par

TFDω( f ) = ( f (1), f (ω), . . . , f (ωn−1)) .

(ii) La convolution de 2 polynômes f = ∑0≤j<n f jxj, g = ∑0≤k<n gkxk de A[x] relati-vement à l’entier n est h = f ? g = ∑0≤`<n h`x` ∈ A[x] où pour tout ` :

h` = ∑j+k≡`( mod n)

f jgk = ∑0≤j<n

f jg(`−j)( mod n) .

34

Remarque. Dans la suite, il sera fondamental d’observer que calculer f ? g équivaut àcalculer le produit de f par g modulo xn− 1. Autrement dit, avec les mêmes notationsque dans la définition :

f ? g ≡ f g(mod (xn − 1)) .

Dans le but de calculer rapidement le produit f g, on cherche donc à résoudre le pro-blème proche de calculcer rapidement la convolution f ? g. Le point de départ de laméthode est le lemme suivant établissant un lien entre convolution et transformée deFourier discrète.

Lemme 2En conservant les notations de la définition ci-dessus, on a, pour tout f , g ∈ A[x] dedegré < n,

TFDω( f ? g) = TFDω( f ) · TFDω(g) ,

où, dans le membre de droite, le produit est effectué coordonnée à coordonnée :(u1, . . . , un) · (v1, . . . , vn) = (u1v1, . . . , unvn), si (ui) et (vj) sont des vecteurs de An.

Preuve. C’est une conséquenc eimmédiate de la remarque ci-dessus : f ? g ≡ f g(mod(xn − 1)) (cf TD pour le détail). �

En s’appuyant sur le lemme, on voit que la méthode pour calculer rapidement f ? gpeut être découpée en 3 étapes :

1 ) Calcul rapide de TFDω( f ) et TFDω(g).

2 ) Calcul rapide du produit coordonnée à coordonnée de vecteurs de An.

3 ) Déduction rapide de h = f ? g à partir de la connaissance de TFDω(h).

Le coût de l’étape 2) est facile à évaluer : cette étape nécessite au plus n opérationsdans A, et donc le coût correspondant est linéaire en la borne n sur le degré de f et g.Le lemme suivant permet de répondre à la contrainte 3) ci-dessus.

Lemme 3On conserve les notations de la définition 2. On a les résultats suivants :

(i) La représentation matricielle de l’application linéaire TFDω relativement aux basescanoniques de A<n[x] = {P ∈ A[x] : deg P < n} et de An est la matrice Mω =(ω jk)0≤j,k<n.

(ii) ω−1 est une racine primitive n-ème de 1 dans A.

(iii) Mω ·Mω−1 = nIdn, de sorte que si n est inversible dans A, alors TFDω est uneapplication linéaire inversible d’inverse (1/n)TFDω−1 .

Preuve. cf TD. �

Étant donné (iii), on supposera dans la suite que n · 1A est inversible dans A. On adonc réduit la contrainte 3) ci-dessus à la contrainte 1). Le traitement de la contrainte1) fait l’objet de la section suivante.

35

3 Transformée de Fourier rapide

Le cadre est le suivant : A est un anneau intègre, n ∈ N≥1 est tel que n · 1A ∈ A×,et ω est une racine primitive n-ème de 1 dans A. On considère un polynôme f (x) =∑0≤j<n f jxj ∈ A[x]. On souhaite calculer rapidement TFDω( f ). On procède récursi-vement : pour décrire la méthode, on va donc supposer n pair.

a. Écrivons d’abord la division euclidienne de f par les polynômes unitaires xn/2− 1et xn/2 + 1 ; elles seront utiles dans la suite.

f = q0(xn/2 − 1) + r0 = q1(xn/2 + 1) + r1 , deg q0, deg q1, deg r0, deg r1 < n/2 .

Utiliser l’algorithme d’Euclide est trop coûteux (le coût serait quadratique en le degrédes entrées qui peut valoir jusqu’à n− 1) pour calculer les rj. Heureusement, le casparticulier de division euclidienne que l’on considère est très simple. En effet, si l’onécrit f = F1xn/2 + F0 avec F0, F1 ∈ A[x] de degré < n/2 (i.e. on regroupe les termesde « haut » et de « bas » degré dans f ), on voit que f = ( f − F0 − F1) + (F0 + F1)(resp. f = ( f − F0 + F1) + (F0 − F1)) avec f − F0 − F1 (resp. f − F0 + F1) divisible parxn/2 − 1 (resp. par xn/2 + 1). Comme deg F0, deg F1 < n/2 , on conclut

r0 = F0 + F1 , r1 = F0 − F1 .

b. On calcule ensuite les coordonées de TFDω( f ) : les f (ωi). On sépare suivant laparité de i :

f (ω2`) = q0(ω2`)(ω`n − 1) + r0(ω

2`) = r0(ω2`)

f (ω2`+1) = q1(ω2`+1)(ω`nωn/2 + 1) + r1(ω

2`+1) = r1(ω2`+1) ,

où l’on utilise le fait que 0 = ωn − 1 = (ωn/2 − 1)(ωn/2 + 1), et donc ωn/2 + 1 = 0car ω est une racine primitive n-ème de 1 et A est intègre.

c. Notons r∗1(x) = r1(ωx). Comme ω2 est une racine primitive n/2-ème de 1 (cf TD),on est donc ramené au calcul de TFDω2(r0) et de TFDω2(r∗1) où deg r0, deg r∗1 < n/2.Un appel récursif permet alors de faire ces deux calculs.

Entrées : k ∈N, n = 2k inversible dans A anneau intègre contenant une racineprimitive n-ème de 1. f = ∑0≤j<n f jxj ∈ A[x].

Sorties : TFDω( f ) = ( f (1), f (ω), . . . , f (ωn−1)).1. Si n = 1, renvoyer f0.2. r0 = ∑0≤j<n/2( f j + f j+n/2)xj, r∗1 = ∑0≤j<n/2( f j − f j+n/2)(ωx)j

3. Appel récursif pour calculer TFDω2(r0) et TFDω2(r∗1).retourner (r0(1), r∗1(1), r0(ω

2), r∗1(ω), . . . , r0(ωn−2), r∗1(ω

n−2)

Algorithme 11 : Transformation de Fourier rapide

Le résultat ci-dessous fait l’analyse du coût de cet algorithme.

36

Théorème 1On conserve les notations de l’algorithme 11. L’algorithme 11 calcule correctementTFDω( f ). Si l’on note S(n) (resp. T(n)) le nombre maximal d’additions (resp. d emulti-plications dans A) nécessaires au calcul de TFDω par l’algorithme 11, on a les relations :

S(1) = T(1) = 0 , S(n) = 2S(n/2) + n , T(n) = 2T(n/2) + n/2 ,

ainsi S(n) = n log n et T(n) = (1/2)n log n.

4 Convolution et multiplication rapide dans A[x]

On peut maintenant mettre en pratique la méthode décrite à la section 2.

Entrées : k ∈N, n = 2k inversible dans A anneau intègre contenant une racineprimitive n-ème de 1. f , g ∈ A[x] de degré < n.

Sorties : f ? g.1. Calculer ω2, . . . , ωn−1.2. Calculer u := TFDω( f ), v := TFDω(g) dans An.3. Calculer le produit coordonnée à coordonnée w := u · v.retourner (1/n)TDFω−1(w).

Algorithme 12 : Convolution rapide

L’analyse du coût ci-dessous énonce en particulier l’application de la méthode aucalcul rapide du produit de polynômes dans A[x].

Théorème 2On conserve les notations de l’algorithme 12. L’algorithme 12 calcule correctement f ? g.En particulier si deg( f g) < n, cet algorithme calcule le produit de polynômes f g dansA[x]. Le nombre d’opérations nécessaires à son exécution est au plus 3n log n additionsdans A, (3/2)n log n + n − 2 multiplications par des puissances de ω, n multiplica-tions dans A et n divisions par n · 1A dans A. En tout l’algorithme 12 nécessite au plus(9/2)n log n + O(n) opérations dans A.

37

38

Chapitre 5

Séries de Fourier

Dans ce chapitre, indépendant du reste de ce manuscrit, on présente la théorie clas-sique du développement en série de Fourier des fonctions continues par morceauxpériodiques. Les notes qui suivent ont été écrites par Daniel Perrin. Les notes com-plètes sont disponibles ici : https://www.math.u-psud.fr/~perrin/CAPES/analyse/fonctions/FourierDP.pdf.

39

.

Les series de Fourier

Daniel Perrin

La raison d’etre de ce cours est la presence des series de Fourier au pro-gramme de nombreuses sections de BTS (electronique, optique, etc.) et, par-tant, au programme du CAPES. Le contenu de ces programmes comprend :• La definition des coefficients de Fourier pour une fonction continue par

morceaux, de periode T , a la fois sous les formes cosnωt et sinnωt et einωt.• Le theoreme de convergence ponctuelle de Dirichlet pour les fonctions

de classe C1 par morceaux (admis).• La formule de Parseval (admise).Il est aussi fait allusion a l’utilisation du developpement en serie de Fourier

d’une fonction periodique pour calculer la somme d’une serie numerique.

Dans ce qui suit nous allons aborder tous ces themes, en allant nettementplus loin que les programmes de BTS.

1 Introduction, notations et rappels

1.1 Motivation

L’interet des series de Fourier 1 apparaıt notamment quand on cherche aresoudre les equations differentielles lineaires du second ordre associees auxcircuits electriques. Considerons un circuit RLC comprenant un condensateurde capacite C, une bobine d’inductance L et une resistance R. On envoie dansce circuit un courant alternatif, dont la tension est une fonction periodiques(t), et on s’interesse a la charge q(t) du condensateur. L’equation (E) qui

regit ce circuit est Lq′′ + Rq′ +q

C= s(t). On sait qu’on en trouve les solu-

tions en ajoutant a la solution generale de l’equation homogene (E0) associeea (E) une solution particuliere de (E). Lorsque le signal s est sinusoıdal, parexemple s(t) = sinωt, c’est facile car on cherche une solution de la forme 2

a cosωt + b sinωt. Mais, souvent, le signal fourni est plus complique, et pasforcement regulier (signal en creneau ou en dent de scie par exemple). Sil’on a une decomposition de s(t) en somme de fonctions trigonometriques :s(t) =

∑Nn=0(an cosnωt + bn sinnωt) le calcul est encore facile en traitant

separement le cas de chaque terme (on parle d’harmoniques) et en les ajou-tant (principe de superposition). En general on ne peut esperer avoir un tel

1. Joseph Fourier (1768-1830) a introduit les series qui portent son nom a propos d’uneautre question de physique : l’equation de la chaleur.

2. Sauf dans le cas de resonance.

1

developpement avec une somme finie et c’est pourquoi on va essayer d’ecrirela fonction periodique s comme somme d’une serie trigonometrique. C’esttoute la problematique des series de Fourier.

1.2 Le cadre

Rappelons quelques definitions indispensables.

1.1 Definition. Une fonction f : [a, b]→ C est dite continue (resp. de classeCp) par morceaux sur [a, b] s’il existe une subdivision a = a0 < a1 < · · · <an = b et des fonctions fi continues (resp. de classe Cp) sur [ai, ai+1] tellesque f soit egale a fi sur l’intervalle ouvert ]ai, ai+1[.

1.2 Remarque. Une fonction continue par morceaux n’est pas necessairementcontinue aux points de subdivision, mais elle admet en ces points x une limitea gauche (resp. a droite) notee f(x−) (resp. f(x+)).

1.3 Definition. Soit T un nombre reel > 0. Une fonction f definie sur R estdire periodique de periode T si l’on a, pour tout x ∈ R, f(x + T ) = f(x).

Le nombre ω =2π

Test appele 3 pulsation associee a T .

On notera que si f est periodique de periode T elle l’est aussi de periode2T, 3T, ... ou −T,−2T, ... Une fonction de periode T est entierement donneepar sa restriction a un intervalle de la forme [a, a+T ]. Une fonction periodiquesera dite de classe Cp par morceaux si elle l’est sur un tel intervalle.

1.3 Deux formules

1.4 Proposition. Soit f une fonction periodique de periode T continue parmorceaux sur R. On a les formules :

1) Pour tous a, b ∈ R,

∫ b

a

f(t) dt =

∫ b+T

a+T

f(u) du.

2) Pour tout a ∈ R,

∫ T

0

f(t) dt =

∫ a+T

a

f(t) dt.

Demonstration. Pour 1), on effectue le changement de variables u = t+T eton utilise la periodicite, pour 2) on utilise la relation de Chasles :∫ a+T

a

=

∫ 0

a

+

∫ T

0

+

∫ a+T

T

et le point 1).

3. La fonction sinωt est alors periodique de periode T : sinω(t + T ) = sinωt carωT = 2π. C’est ainsi qu’on peut retenir la formule donnant la pulsation.

2

1.4 Deux exemples

Les exemples suivants correspondent a des signaux classiques et on lestrouve souvent, avec des variantes, dans les exercices de BTS :• La fonction creneau, par exemple de periode 2π, qui vaut 1 sur [0, π]

et 0 sur ]π, 2π[.

0 !-! 2!

1

Figure 1 – La fonction creneau

• La fonction 4 dent de scie f , paire, periodique de periode 2π, definiesur [0, π] par f(x) = π − x.

0 π

π

-π 2π

Figure 2 – La fonction dent de scie

2 Les coefficients de Fourier

2.1 Un peu de geometrie

Parmi les fonctions periodiques de periode T on dispose de trois types defonctions remarquables : cosnωt, sinnωt pour n ∈ N et einωt pour n ∈ Z.

Dans tous les cas ω =2π

Test la pulsation associee a T . Notre objectif est

d’ecrire les autres fonctions comme combinaisons lineaires de celles la.

4. Il y a d’autres dents de scie possibles, par exemple la fonction discontinue, de periodeπ, definie par f(x) = x sur [0, π[.

3

Il y a un cadre ou l’on sait calculer les coefficients de telles decompositions,c’est celui de l’espace euclidien, avec un produit scalaire, note (x|y), et une

base orthonormee e1, . . . , en. En effet, si l’on a x =n∑i=1

xiei, avec xi ∈ R,

un calcul immediat montre que les xi sont donnes par xi = (x|ei). C’estexactement la meme chose dans le cas complexe, mais avec un produit sca-laire hermitien. Or, ici, sur l’espace des fonctions continues par morceauxde periode T a valeurs reelles (resp. complexes), on dispose d’un produitscalaire 5 euclidien (resp. hermitien) donne par la formule :

(f |g) =1

T

∫ T

0

f(t)g(t) dt,

auquel on associe comme d’habitude une norme ‖f‖2 par la formule :

‖f‖22 = (f |f) =1

T

∫ T

0

|f(t)|2 dt.

La remarque essentielle est alors la suivante :

2.1 Proposition. 1) Les fonctions en(t) := einωt pour n ∈ Z forment unefamille orthonormale pour le produit scalaire ci-dessus.

2) Les fonctions γn(t) := cosnωt pour n ∈ N et σn(t) := sinnωt formentune famille orthogonale pour le produit scalaire ci-dessus.

Demonstration. 1) On calcule (ep|eq) = 1T

∫ T0eipωte−iqωt dt = 1

T

∫ T0ei(p−q)ωt dt

et cette integrale est nulle sauf pour p = q ou elle vaut 6 1.2) Le calcul est analogue pour les cosinus et sinus. Il faut connaıtre

quelques formules de trigonometrie ou passer par les exponentielles. On no-tera les formules (γ0|γ0) = 1 et, pour n ≥ 1, (γn|γn) = (σn|σn) = 1

2.

Cette proposition permet de faire de la geometrie. En voici un premierexemple :

2.2 Corollaire. 1) Si f est un polynome trigonometrique en exponentielles :

f(t) =n=N∑n=−N

cneinωt on a la formule : cn = (f |en) =

1

T

∫ T

0

f(t)e−inωt dt.

5. Ce n’est pas tout a fait un produit scalaire car (f |f) peut etre nul meme si f nel’est pas, par exemple si f est nulle sauf en un nombre fini de points, mais c’est sansimportance.

6. On voit que le coefficient 1/T a pour but de normer les fonctions.

4

2) Si f est un polynome trigonometrique en cosinus et sinus :

f(t) =N∑n=0

an cosnωt+N∑n=1

bn sinnωt

on a les formules a0 =1

T

∫ T

0

f(t) dt et, pour n ≥ 1 :

an =2

T

∫ T

0

f(t) cosnωt dt et bn =2

T

∫ T

0

f(t) sinnωt dt.

2.2 Definition des coefficients de Fourier

Lorsque f est periodique mais pas necessairement un polynome trigo-nometrique, on definit encore ses coefficients de Fourier par les formules ci-dessus :

2.3 Proposition-Definition. Soit f : R → C une fonction periodique deperiode T , continue par morceaux. On definit les coefficients de Fourier

de f par les formules suivantes : cn =1

T

∫ T

0

f(t)e−inωt dt pour n ∈ Z, a0 =

1

T

∫ T

0

f(t) dt et, pour n ≥ 1 :

an =2

T

∫ T

0

f(t) cosnωt dt et bn =2

T

∫ T

0

f(t) sinnωt dt.

On a les relations 7 : a0 = c0, et, pour n ≥ 1, cn = 12(an − ibn), c−n =

12(an + ibn), an = cn + c−n, bn = i(cn − c−n).

On a l’egaliteN∑

n=−N

cnen(t) =N∑

n=−N

cneinωt =

N∑n=0

an cosnωt+N∑n=1

bn sinnωt.

Cette quantite est notee SNf(t) et la serie de Fourier de f est la serie dontles sommes partielles sont les SNf , autrement dit la serie

∑n∈Z cne

inωt ousa variante reelle ∑

n≥0

an cosnωt+∑n>0

bn sinnωt.

2.4 Remarques. 1) Nous verrons ci-dessous que, pour la theorie, la varianteexponentielle est souvent plus commode. En revanche, les exercices de BTSutilisent plutot les variantes en cosinus et sinus.

7. Certains auteurs definissent a0 avec 2/T comme les an. Cela oblige a commencer laserie de Fourier par a0/2.

5

2) Il est souvent utile de noter que si la fonction f est paire (resp. impaire)ses coefficients de Fourier bn (resp. an) sont nuls.

3) Lorsqu’on veut preciser la fonction on note le coefficient cn(f) voire

f(n).4) Si une serie trigonometrique

∑n∈Z cne

inωt converge (disons uniformement)vers f(t), on montre, comme dans le cas des polynomes, que les cn sont lescoefficients de Fourier de f .

2.3 Problematique

Quelles sont les questions qui se posent maintenant (et que l’on trouveradans les exercices de BTS) ? D’abord, il y a le calcul explicite des coefficientsde Fourier pour une fonction f donnee (par exemple en creneau ou en dentde scie). C’est en general un calcul sans malice (souvent par integration parparties), mais non sans risque d’erreur (attention a la valeur de la periode,aux reports de constantes, etc.). Il y a ensuite deux questions mathematiquesdifficiles. La premiere est celle de la convergence de la serie de Fourier de fvers la fonction f (convergence simple, convergence uniforme, etc.). C’estl’objet du theoreme de Dirichlet. Elle permettra d’obtenir des formules desommes de series en appliquant cette convergence en des points particuliers.La seconde est le calcul de la norme de f . C’est l’objet de la formule deParseval, generalisation du theoreme de Pythagore. Cette formule aura deuxtypes d’applications, des calculs de serie (comme Dirichlet), mais aussi desapplications physiques (car la norme de f correspond a la valeur efficace dusignal et elle est liee a l’energie du systeme).

3 Une premiere approche de la formule de

Parseval

3.1 L’enonce

Le theoreme en vue est le suivant :

3.1 Theoreme. (Formule de Parseval 8) Soit f : R → C une fonctioncontinue par morceaux, de periode T , et an, bn, cn ses coefficients de Fourier.On a les formules :

‖f‖22 =1

T

∫ T

0

|f(t)|2 dt =∑n∈Z

|cn|2,

8. Marc-Antoine Parseval des Chenes, 1755-1836.

6

‖f‖22 = |a0|2 +1

2

+∞∑n=1

|an|2 +1

2

+∞∑n=1

|bn|2.

Nous ne demontrerons pas entierement ce theoreme 9, mais nous allonsprouver l’inegalite de Bessel qui en est une composante essentielle et nousetablirons Parseval dans le cas particulier ou f est de classe C1 (voir Annexe2) . Notons deja qu’il suffit de traiter le cas des coefficients cn, l’autre s’endeduisant au moyen des formules de 2.3. Dans ce qui suit, les notations sontcelles de 3.1.

3.2 Le cas d’un polynome trigonometrique

La formule de Parseval est facile lorsque f est un polynome trigonometrique :

f(t) =n=N∑n=−N

cneinωt. C’est un simple calcul euclidien : on a f =

∑Nn=−N cnen,

d’ou, en calculant le produit scalaire (f |f) =∑

p,q(cpep|cqeq) =∑

p,q cpcq(ep|eq) =∑p,q cpcqδp,q =

∑p |cp|2. (On a utilise la symetrie hermitienne et le fait que la

famille en est orthonormale, qui donne (ep|eq) = δp,q, symbole de Kronecker.)

3.3 L’inegalite de Bessel

La propriete suivante est aussi une application des techniques euclidiennes :

3.2 Proposition. Rappelons qu’on pose SNf =N∑

n=−N

cnen avec en(t) = einωt.

On a les formules suivantes :

1) ‖SNf‖22 =N∑−N

|cn|2,

2) (f − SNf |SNf) = 0,3) ‖f‖22 = ‖f − SNf‖22 + ‖SNf‖22.

Demonstration. Le point 1) a deja ete vu : c’est la formule de Parseval pourun polynome trigonometrique. Le point 2) vient de 1) et de la “linearite” duproduit scalaire :

(f |SNf) = (f |n=N∑n=−N

cnen) =n=N∑n=−N

cn(f |en) =n=N∑n=−N

cncn = (SNf |SNf).

9. Pour une preuve complete, voir par exemple le polycopie d’integration sur ma pageweb : http://www.math.u-psud.fr/ perrin/Enseignement.html.

7

Le point 3) n’est autre le theoreme de Pythagore : on calcule le carre scalairede f en ecrivant f = (f − SNf) + SNf . On a donc ‖f‖22 = ‖f − SNf‖22 +‖SNf‖22 + (SNf |f − SNf) + (f − SNf |SNf). Mais, en vertu de 2), f − SNfet SNf sont orthogonaux, d’ou le resultat.

Le corollaire suivant donne un cote de Parseval :

3.3 Corollaire. (Inegalite de Bessel) La serie∑+∞−∞ |cn|2 converge et on

a∑+∞−∞ |cn|2 ≤ ‖f‖22.

Demonstration. En effet, les sommes partielles de cette serie, qui sont les‖SN‖22 sont bien majorees par ‖f‖22.

Une consequence tres importante de Bessel est la convergence de la suite|cn| vers 0 :

3.4 Corollaire. (Riemann-Lebesgue) Les suites cn, an et bn tendent vers0 quand n tend vers ±∞.

Demonstration. Pour cn c’est clair car la serie des |cn| converge et on endeduit les an, bn par 2.3.

4 Le theoreme de Dirichlet

C’est le resultat suivant, qui assure la convergence ponctuelle de la seriede Fourier vers la fonction f , sauf aux points de discontinuite :

4.1 Theoreme. (Dirichlet 10) Soit f : R → C une fonction periodique deperiode T , de classe C1 par morceaux. Alors, pour tout x ∈ R, la serie de

Fourier SNf(x) converge versf(x+) + f(x−)

2.

4.2 Remarque. Bien entendu, si f est continue en x, on a f(x−) = f(x+) =

f(x) doncf(x+) + f(x−)

2= f(x).

Demonstration. La preuve necessite quelques etapes. On note deja qu’onpeut supposer que la periode de f est egale a 2π, quitte a remplacer f(t) parg(t) = f(2πt/T ). On utilise ici la variante complexe avec les exponentielles.

Rappelons qu’on a cn =1

∫ π

−πf(t)e−int dt. On en deduit :

SNf(x) =N∑

n=−N

cneinx =

1

∫ π

−πf(t)

N∑n=−N

ein(x−t) dt.

10. Peter Lejeune-Dirichlet, 1805-1859, mathematicien allemand.

8

Dans un premier temps, nous allons supposer f continue, voir l’Annexe1 pour le cas general. Il s’agit donc de montrer que SNf(x) tend vers f(x)quand N tend vers +∞, pour x ∈ R fixe.

4.1 Idee numero 1 : la convolution

Quiconque a deja rencontre l’operation de convolution∫f(t)g(x − t) dt

que l’on voit ici, sait qu’il faut effectuer le changement de variable u = x− tqui change la difference de cote. Dans le cas present on obtient :

SNf(x) =1

∫ x+π

x−πf(x− u)

N∑n=−N

einu du.

4.2 Idee numero 2 : decaler l’intervalle d’integration

Comme les fonctions dans l’integrale sont de periode 2π, il resulte de 1.4qu’on a aussi :

SNf(x) =1

∫ π

−πf(x− u)

N∑n=−N

einu du.

4.3 Idee numero 3 : la somme de la serie geometrique

La somme KN(u) =N∑

n=−N

einu = e−iNu2N∑n=0

einu est la somme d’une serie

geometrique et elle se calcule comme telle. On a :

KN(u) = e−iNu1− ei(2N+1)u

1− eiu= e−iNu

(1− ei(2N+1)u)(1− e−iu)2(1− cosu)

=cosNu− cos(N + 1)u

1− cosu=

2 sin (2N+1)u2

sin u2

2 sin2 u2

.

En definitive, on a donc KN(u) =sin(N + 1

2)u

sin u2

.

4.4 Idee numero 4 : KN est un noyau

Dans le langage des series de Fourier, cela signifie qu’on a1

∫ π

−πKN(u) du =

1 et c’est evident en revenant a l’expression de KN comme somme d’expo-

9

nentielles. Cela permet d’ecrire f(x) sous une forme analogue a SNf(x) :

f(x) =1

∫ π

−πKn(u)f(x) du

et d’avoir la difference sous la forme :

∆N = SNf(x)− f(x) =1

∫ π

−πKN(u)(f(x− u)− f(x)) du.

4.5 Idee numero 5 : tenir compte de la valeur de KN

On remplace KN par sa valeur dans la derniere integrale :

∆N =1

∫ π

−π(f(x− u)− f(u))

sin(N + 1

2

)u

sin u2

du.

4.6 Idee numero 6 : developper le sinus

On ecrit sin(N +

1

2

)u = cosNu sin

u

2+ sinNu cos

u

2et, a 1

2πpres, ∆N

apparaıt alors comme somme de deux integrales :∫ π

−π(f(x− u)− f(x)) cosNudu et

∫ π

−π(f(x− u)− f(x))

cos u2

sin u2

sinNudu.

4.7 Idee numero 7 : Riemann-Lebesgue

On voit la premiere integrale comme un coefficient de Fourier de la fonc-tion continue de u, f(x−u)−f(x) et, en vertu de 3.4, elle tend vers 0 quandN tend vers l’infini. Pour la seconde, l’argument est identique a condition demontrer la continuite de la fonction quotient. C’est la derniere idee.

4.8 Idee numero 8 : la derivee

La fonction u 7→ (f(x − u) − f(x))cos u

2

sin u2

est evidemment continue sur

[−π, π] sauf peut-etre en 0. Pour voir qu’elle l’est en 0, on ecrit :

f(x− u)− f(x)

sin u2

=f(x− u)− f(x)

u× u

sin u2

et il s’agit de voir que les deux termes ont une limite quand u tend vers 0.Pour le premier, c’est le fait que f est de classe C1, pour le second, c’est lalimite de sinx/x en 0. On peut donc appliquer Riemann-Lebesgue au secondterme et on acheve ainsi la preuve de Dirichlet.

10