Énoncé
Ce problème
1a pour objet l'étude de la transformée de Fourier discrète et son application à un algorithme rapide de multiplication polynomiale.
Dans tout le problème, N désigne un entier naturel non nul et n = 2
N, ω
n= e
2iπn. On note C
n= (e
0, e
1, · · · , e
n−1) la base canonique de C
n:
e
0= (1, 0, · · · , 0), e
1= (0, 1, 0, · · · , 0), · · · , e
n−1= (0, 0, · · · , 0, 1).
On dénit le polynôme associé à un élément de C
npuis la transformée de Fourier discrète (notée F
n).
Pour chaque a ∈ C
n, le polynôme associé (noté A ) est déni par
a = (a
0, a
1, · · · , a
n−1) ⇒ A = a
0+ a
1X + · · · + a
n−1X
n−1. l'application F
nest dénie de C
ndans C
npar :
∀a ∈ C
n, F
n(a) = (A(1), A(ω
n), A(ω
n2), · · · , A(ω
nn−1)).
1. Étude du cas particulier N = 2, n = 4 .
a. Préciser ω
4puis l'image d'un élément (a
0, a
1, a
2, a
3) de C
4par l'application F
4. b. Préciser la matrice M
4de l'endomorphisme F
4dans la base C
4de C
4.
c. On désigne par M
4la matrice obtenue à partir de M
4en conjuguant tous les éléments. Calculer
M
4M
4. En déduire que M
4est inversible et préciser M
4−1. d. Calculer M
42et M
44.
2. Étude du cas général.
a. Établir que l'application F
nest un automorphisme.
b. Former la matrice M
nde F
ndans la base canonique C
nde C
n. Préciser en parti- culier, pour i et j entre 1 et n , le terme d'indice (i, j) de cette matrice.
c. Soit i et j deux entiers. En distinguant suivant que i − j est congru à 0 modulo n ou non, calculer la somme
n−1
X
k=0
ω
(i−j)kn.
1d'après E.P.I.T.A. 1999
d. Calculer le produit matriciel M
nM
n, en déduire F
n−1.
e. Calculer M
n2. Préciser l'eet de F
n2sur la base canonique. En déduire F
n4. 3. Image de quatre vecteurs particuliers.
On dénit deux vecteurs u et v de C
npar :
u = (Re(1), Re(ω
n), · · · , Re(ω
nn−1)), v = (Im(1), Im(ω
n), · · · , Im(ω
n−1n)) a. Exprimer F
n(e
1+ e
n−1) et F
n(e
1− e
n−1) en fonction de u et v . En déduire F
n(u)
et F
n(v) .
b. On dénit les vecteurs u
−, u
+, v
−, v
+par : u
−=
√ n
2 (e
1+ e
n−1) − u, u
+=
√ n
2 (e
1+ e
n−1) + u v
−=
√ n
2 (e
1− e
n−1) − v, v
+=
√ n
2 (e
1− e
n−1) + v Calculer F
n(u
−) , F
n(u
+) , F
n(v
−) , F
n(v
+) en fonction de u
−, u
+, v
−, v
+. 4. Étude d'un algorithme récursif de calcul de F
n(a) .
Dans cette question, on note ω = ω
net ω
0= ω
n2
de sorte que ω
2= ω
0.
À tout élément a = (a
0, a
1, · · · , a
n−1) de C
n, on associe les deux éléments b et c de C
n
2
(on rappelle que n = 2
N) dénis par :
b = (a
0, a
2, · · · , a
n−2), c = (a
1, a
3, · · · , a
n−1) On note A , B , C les polynômes respectivement associés à a , b , c .
a. Exprimer A avec des polynômes obtenus à partir de B , C en substituant X
2à X .
b. Montrer que, pour k entre 0 et
n2− 1 ,
A(ω
k) = B(ω
0k) + ω
kC(ω
0k), A(ω
n2+k) = B (ω
0k) − ω
kC(ω
0k) c. Expliquer comment, à partir des questions précédentes, on peut calculer F
n(a)
par un procédé récursif.
d. On suppose connus tous les ω
net leurs puissances. On note u
Nle nombre d'opé- rations (additions et multiplications) eectuées dans le calcul récursif de F
n(a) déni à la question précédente. En particulier u
0= 0 . Montrer que l'on peut organiser le calcul pour que
u
N= 2u
N−1+ 3 × 2
N−1e. En utilisant la suite u
N2
−NN∈N∗
, exprimer u
Nen fonction de N puis de n . 5. Produit rapide de deux polynômes.
On considère ici deux polynômes P et Q à coecients réels ou complexes de degré strictement inférieur à
n2et le polynôme R = P Q . On note
P = p
0+ p
1X + · · · + p
n−1X
n−1Q = q
0+ q
1X + · · · + q
n−1X
n−1R = r
0+ r
1X + · · · + r
n−1X
n−1p = (p
0, p
1, · · · , p
n−1) q = (q
0, q
1, · · · , q
n−1) r = p ∗ q = (r
0, r
1, · · · , r
n−1)
pq = (p
0q
0, p
1q
1, · · · , p
n−1q
n−1) (produit "terme à terme")
a. Comment s'exprime F
n(r) avec F
n(p) et F
n(q) ?
b. Quel est le nombre d'opérations (additions et multiplications) nécessaires pour calculer R = P Q par les formules usuelles ?
c. On calcule successivement :
les transformées de Fourier discrètes F
n(p) et F
n(q) par l'algorithme récursif.
le produit (terme à terme) F
n(p)F
n(q) .
la transformée de Fourier discrète inverse F
n−1(F
n(p)F
n(q)) .
Que calcule-t-on par cette méthode ? Déterminer en fonction de u
Npuis de n le nombre d'opérations eectuées lors de ces calculs.
d. Conclure.
Corrigé
1. a. Par dénition, ω
4= i et, si a = (a
0, a
1, a2, a
3) ,
F(a) = (a
0+ a
1+a
2+ a
3, a
0+ia
1− a
2−ia
3, a
0− a
1+a
2− a
3, a
0−ia
1− a
2+ia
3) b. D'après la question précédente,
M
4=
1 1 1 1
1 i −1 −i
1 −1 1 −1
1 −i −1 i
c. Après calculs, on trouve M
4M
a= 4I
4. On en déduit que M
4est inversible d'in- verse
14M
4puis que F
4est bijective. La bijection réciproque F
4−1est l'endomor- phisme de C
ndont la matrice dans la base canonique est
14M
4.
d. Après calculs, on trouve M
42= 4
1 0 0 0 0 0 0 1 0 0 1 0 0 1 0 0
, M
44= 16I
42. Dans toute cette question, on note ω au lieu de ω
n.
a. Comme F
nest un endomorphisme de C
n, pour prouver que F
nest bijective, il sut de montrer que F
nest injective.
Si F
n(a) = 0
Cn, le polynôme A associé à ce n -uplet a est nul en 1, ω
n, · · · , ω
n−1n. Il admet n racines distinctes en étant de degré au plus n − 1 , il est donc nul.
b. D'après la dénition de F
n,
M
n=
1 1 1 · · · 1
1 ω ω
2· · · ω
n−11 (ω)
2(ω
2)
2· · · (ω
n−1)
2... ... ... ... ...
1 (ω)
n−1(ω
2)
n−1· · · (ω
(n−1))
n−1
On en déduit que le terme d'indice (i, j) de cette matrice est (ω
j−1)
i−1= ω
(i−1)(j−1)c. Soit i et j deux entiers entre −n et n . La somme proposée est formée de termes en progression géométrique de raison ω
j−i. Par dénition de ω ,
ω
j−i( = 1 si i ≡ j mod n
∈ U
n\ {1} si i − j 6≡ j mod n
⇒
n−1
X
k=0
ω
(i−j)k=
( n si i ≡ j mod n 0 si i − j 6≡ j mod n car, pour ω
j−i6= 1,
n−1
X
k=0
ω
(i−j)k= 1 − (ω
i−j)
n1 − ω
i−j= 0.
d. Par dénition du produit matriciel, pour i et j entre 1 et n , i − j est entre −n + 1 et n − 1 , le terme (i, j) de M
nM
nest
n−1
X
k=1
ω
(i−1)(k−1)ω ¯
(k−1)(j−1)=
n−1
X
k=1
ω
(i−1−j+1)(k−1)car ω ¯ = ω
−1=
n−1
X
k=1
ω
(i−j)(k−1)=
( n si i = j 0 si i 6= j On en déduit que M
nM
n= nI
npuis que F
n−1est l'endomorphisme de C
ndont la matrice dans la base canonique est
n1M
n.
e. Le terme (i, j) de M
n2est
n−1
X
k=1
ω
(i−1)(k−1)ω
(k−1)(j−1)=
n−1
X
k=1
ω
(i−j+2)(k−1)=
( n si i + j − 2 ≡ 0 mod n 0 sinon
Pour i et j entre 1 est n , on peut exprimer i en fonction de j pour que la congruence soit vériée. On doit avoir i = 1 si j = 1 et i = n − j + 2 pour j entre 2 et n . Un seul terme est non nul par colonne et il est égal à n :
M
n2= n
1 0 0 · · · 0 0 0 0 · · · 1 ... ... ... ...
0 0 1 0
0 1 0 · · · 0
Cette matrice permet de préciser les images des vecteurs de la base canonique (attention au décalage d'indice)
F
n2(e
0) = ne
0, ∀j ∈ {1, · · · , n − 1}, F
n2(e
j) = ne
n−jOn en déduit que F
n4= n
2Id
Cn.
3. a. Les n -uplets F
n(e
1+ e
n−1) et F
n(e
1− e
n−1) correspondent à la somme et la diérence des colonnes 2 et n de la matrice A
n. Comme ω
n−1= ω
−1= ω , les parties réelles et imaginaires apparaissent conduisant à
F
n(e
1+ e
n−1) = 2u, F
n(e
1− e
n−1) = 2iv En composant par F
n(qui est C-linéaire), il vient
2F
n(u) = n F
n2(e
1) + F
n2(e
n−1)
= n(e
n−1+ e
1) 2iF
n(v) = n F
n2(e
1) − F
n2(e
n−1)
= n(e
n−1− e
1) )
⇒
F
n(u) = n
2 (e
1+ e
n−1) F
n(v) = in
2 (e
1− e
n−1) b. D'après les calculs précédents,
F
n√ n
2 (e
1+ e
n−1) + u
=
√ n
2 2u + F
n(u) = √ nu + n
2 (e
1+ e
n−1)
= √ n
√ n
2 (e
1+ e
n−1) + u
Les autres calculs sont analogues et conduisent à F
n(u
+) = √
nu
+, F
n(u
−) = − √
nu
−, F
n(v
+) = i √
nv
+, F
n(v
−) = −i √ nv
−4. a. Avec les conventions de l'énoncé,
A = a
0+ a
1X + a
2X
2+ · · · B = a
0+ a
2X + a
4X
2+ · · · C = a
1+ a
3X + a
5X
2+ · · ·
⇒ A = B(X b
2) + X C(X b
2)
b. La première relation demandée est obtenue simplement en remplaçant X par ω dans la relation A = B(X b
2) + X C(X b
2) de la question précédente. Pour les puissances au delà de
n2,
A(ω
n2+k) = a
0+ a
1ω
n2+k+ a
2ω
n+2k+ a
3ω
3(n2+k)+ a
4ω
2n+4k+ · · ·
= a
0+ a
2ω
0k+ a
4ω
02k+ · · ·
+ ω
n2+ka
1+ a
3ω
0k+ a
5ω
02k+ · · · car ω
n= 1
= B(ω
0k) − ω
kC(ω
0k) car ω
n2= −1.
c. Il faut bien faire attention ici à la relation n = 2
N. La récursivité est relative au passage de N à N − 1 c'est à dire de n à
n2. La méthode envisagée pour le calcul de F
n(a) est la suivante
On forme à partir de a les deux
n2-uplets b et c en séparant les indices pairs et impairs.
On calcule F
n2
(a) et F
n2
(b) .
On renvoie F
n(a) calculé à partir de F
n2
(a) et F
n2
(b) avec les formules de 4.b.
d. Organisation du calcul et évaluation de la complexité.
La formation de b et c se fait sans opérations (au sens de l'énoncé) Le calcul récursif de F
n2
(a) et F
n2
(b) se fait avec 2U
N−1opérations.
On eectue
n2multiplication pour calculer les ω
kC(ω
0k) . On eectue ensuite 2 ×
n2opérations (ajouter-soustraire) pour calculer A(ω
k) et A(ω
n2+k) . Comme
n2= 2
N−1, on obtient donc bien en tout
u
N= 2u
N−1+ 3 × 2
N−1e. Comme l'énoncé nous y invite, posons v
N= u
N2
−N. On en tire u
N= 2
Nv
Navec lequel on réécrit la relation de récurrence. On peut diviser par 2
Net obtenir une suite arithmétique
2
Nv
N= 2
Nv
N−1+ 3 × 2
N−1⇒ v
N= v
N−1+ 3
2 ⇒ v
N= 3N 2
⇒ u
N= 3
2 N 2
N= 3 2 ln 2 n ln n 5. a. D'après la dénition, F
n(r) est le produit terme à terme de F
n(p) et F
n(q) . Avec
les notations précisées par l'énoncé, on peut écrire F
n(r) = F
n(p)F
n(q) .
b. Nombre d'opérations pour la formule usuelle du produit de deux polynômes. Pré-
sentons ces nombres d'opérations dans un tableau pour la première moitié des
coecients. Le nombre d'opérations sera le même par symétrie pour les coe-
cients suivants.
degré ∗ +
0 1 0
1 2 1
2 3 2
... ... ...
n
4