4 frenchPHILIPPE ELBAZ-VINCENT
Proposition 2.6. Le morphisme DFTω,ninduit un isomorphisme de R−algèbres entre R[T]/(Tn−1)
et Rntel que
DFTω,n(P∗Q)=DFTω,n(P)·DFTω,n(Q).
Démonstration. Laissé en exercice (on pourra pour simplifier faire la démonstration dans le cas où
Rest un corps).
Exercice(s) 2.7.Soit R=Z/29Z.
(1) Trouver une racine 4-ième primitive de l’unité dans Z/29Zque l’on notera ω. Calculer ω−1.
(2) Déterminer les matrices de DFTωet DFTω−1et vérifier que leur produit est égale à 4Ioù I
est la matrice identité correspondante.
Refaire l’exercice avec R=Z/17Zet ωune racine 8-ième primitive de l’unité que l’on précisera.
On a ainsi transformé un produit de polynômes (assez coûteux en général) en un produit «coeffi-
cient par coefficient» qui est beaucoup plus performant. Le point crucial est que la transformation
a ici un coût bien moindre que O(n2) comme dans le cas de l’interpolation classique décrite dans
l’introduction. On va voir que dans le cas où nest une puissance de 2, on a un algorithme récursif,
dû à Cooley et Tuckey (1965), de la transformée de Fourier rapide, qui permet de faire cette multi-
plication. L’idée de cet algorithme est la suivante :
Si nest pair, on a une factorisation immédiate de Tn−1 donnée par (Tn
2−1)(Tn
2+1). Si ωest un
racine n-ième primitive de l’unité dans R, on remarque (à vérifier en exercice) que ω
n
2=−1. Ainsi,
pour tout i<n
2,ω2iest une racine de Tn
2−1 et ω2i+1un racine de Tn
2+1. Par division euclidienne,
si Pest un polynôme de degré <n, il existe des polynômes Q0,Q1,r0et r1de R[T], tous de degrés
<n
2, tels que
P=(Tn
2−1)Q0+r0,
=(Tn
2+1)Q1+r1,
Nous en déduisons que P(ω2i)=r0(ω2i) et P(ω2i+1)=r1(ω2i+1). En posant r∗
1(T)=r1(ωT), nous
pouvons écrire P(ω2i+1)=r∗
1(ω2i). En conclusion, il suffit d’évaluer les polynômes r0et r∗
1aux
puissances pairs de ω. Mais on peut faire cela par récurrence (sur la puissance), puisque nest une
puissance de 2 et que ω2est une racine n
2-ième primitive de l’unité (faire la vérification). C’est le
principe de l’algorithme.
Algorithme 2.8. «Transformée de Fourier Rapide (FFT3)»
Entrées : n=2k, k ∈N, P =Pn−1
i=0aiTi,ωune racine n−ième primitive de l’unité dans R et ω2,...,ωn−1.
Sortie : DFTω,n(P)=(P(1),...,P(ωn−1)∈Rn.
(1) Si n =1retourner a0
(2) r0=P0Éj<n
2(aj+aj+n
2)Tj, r ∗
1=P0Éj<n
2(aj−aj+n
2)ωjTj
(3) Appeler l’algorithme récursivement pour calculer r0et r ∗
1aux puissances de ω2
(4) retourner ¡r0(1),r∗
1(1),r0(ω2),r∗
1(ω2),···,r0(ωn−2),r∗
1(ωn−2)¢
Cela nous donne
Théorème 2.9. Soit n un puissance de 2 et ωune racine n−ième primitive de l’unité dans R. Alors
l’algorithme de la «Transformée de Fourier Rapide» est correct et calcule DFTω,nen O(nlog(n)) opé-
rations de R.
3Fast Fourier Transform