Bemerkung: F is nach Lemma 144 und anschließender Bemerkung eine Bijektion.
Lemma 147
Seien ~a,~b ∈ C n so, dass auch ~a ∗ ~b ∈ C n . Dann gilt F (~a ∗ ~b) = F(~a) · F ( ~b).
Beweis:
Es gilt
F(~a) · F ( ~b) = (P ~ a (1)P ~b (1), P ~ a (ω)P ~b (ω), . . . , P ~ a (ω n−1 )P ~b (ω n−1 ))
= (P ~ c (1), P ~ c (ω), . . . , P ~ c (ω n−1 ))
= F (~ c), mit ~ c = ~a ∗ ~b.
Idee: Berechne ~a ∗ ~b verm¨ oge F −1 (F(~a) · F ( ~b)). Die komponentenweise Multiplikation F(~a) · F ( ~b) ben¨ otigt nur O(n) Operationen.
Jedoch: F ist eine lineare Abbildung F(~a) = F~a, mit F = (ω kl ) 0≤l,k≤n−1 . Die Matrixmultiplikation ben¨ otigt aber Ω(n 2 ) Operationen (also keine offensichtliche Verbesserung im Vergleich zur klassischen Polynom-Multiplikation)!
Ausweg: ”Divide and Conquer”!!!
3.5.2 Berechnung der diskreten Fouriertransformation (FFT) Sei n = 2 k eine 2er-Potenz. Zerlege ~a = (a 0 , . . . , a n−1 ) in einen
geraden Anteil ~a g = (a 0 , a 2 , . . . , a n−2 ) und einen ungeraden Anteil ~a u = (a 1 , a 3 , . . . , a n−1 )
Dann gilt:
P ~ a (x) = P ~ a
g(x 2 ) + xP ~ a
u(x 2 ) .
Beispiel 148
Sei ~a = (1, 2, 4, 8), also P ~ a (x) = 1 + 2x + 4x 2 + 8x 3 . Damit ist ~a g = (1, 4) und
~a u = (2, 8), also
P ~ a
g(x 2 ) + xP ~ a
u(x 2 )
= 1 · (x 2 ) 0 + 4 · (x 2 ) 1 + x · (2 · (x 2 ) 0 + 8 · (x 2 ) 1 )
= 1 + 2 · x + 4 · x 2 + 8 · x 3
Lemma 149 Ist F
n2
,ω
2(~a g ) = (c 0 , . . . , c
n2
−1 ) und F
n2
,ω
2(~a u ) = (d 0 , . . . , d
n2
−1 ), so gilt F n,ω (~a) = (e 0 , . . . , e n−1 ) mit
e i = P ~ a (ω i )
= P ~ a
g(ω 2i ) + ω i P ~ a
u(ω 2i )
= c i + ω i d i
e
n2
+i = P ~ a (ω
n2+i )
= P ~ a
g(ω 2(
n2+i) ) + ω
n2+i P ~ a
u(ω 2(
n2+i) )
= c i + ω
n2+i d i
f¨ ur i = 0, . . . , n 2 − 1.
Bem.: ω 2 ist primitive n 2 -te Einheitswurzel. Nat¨ urlich ist ω 2
n2= 1.
Dies liefert folgenden Divide-and-Conquer-Algorithmus:
DFT(~a,ω)
Eingabe: ~a = (a 0 , . . . , a n−1 ), n = 2 k , ω Ausgabe: F n,ω (~a) = (e 0 , . . . , e n−1 )
if n = 1 then e 0 := a 0
else
~a g := (a 0 , a 2 , . . . , a n−2 )
~a u := (a 1 , a 3 , . . . , a n−1 ) (c 0 , . . . , c
n2
−1 ) :=DFT( ~a g , ω 2 ) (d 0 , . . . , d
n2
−1 ) :=DFT(~a u , ω 2 ) for i = 0 to n 2 − 1 do
e i := c i + ω i d i
e
n2
+i := c i + ω
n2+i d i
endfor endif
return(e 0 , . . . , e n−1 )
Satz 150
Der Algorithmus DFT berechnet F n,ω (~a) auf Eingabe n = 2 k , ~a, ω in T(n) = O(n log n) Operationen.
Beweis:
Aus dem Algorithmus erh¨ alt man folgende Rekursion T (n) = 2T(n/2) + cn
mit einer Konstante c > 0 und T (1) = 1. Mit n = 2 k folgt
T (2 k ) = 2T (2 k−1 ) + cn = 2(2T (2 k−2 ) + cn/2) + cn
= . . . = 2 ` T(2 k−` ) + `cn
Speziell f¨ ur ` = k gilt T (2 k ) = kc2 k + 2 k T (1), und wir erhalten
T(2 k ) = O(2 k k) = O(n log n).
3.5.3 Berechnung der inversen diskreten Fouriertransformation Satz 151
Es gilt
F n,ω −1 = 1
n F n,ω
−1.
Bemerkung: ω −1 ist ebenso eine primitive n-te Einheitswurzel.
Zum Beweis von Satz 151 ben¨ otigen wir folgendes Lemma:
Lemma 152
Ist ω eine primitive n-te Einheitswurzel, so gilt
n−1
X
j=0
ω kj = 0
f¨ ur alle k = 1, . . . , n − 1.
Beweis:
F¨ ur jedes a ∈ C , a 6= 1, gilt P n−1
j=0 a j = a a−1
n−1 . Speziell f¨ ur a = ω k ist a n = ω kn = 1, (k = 1, . . . , n − 1).
Nun zum Beweis von Satz 151.
Beweis:
Sei ~ e = F n,ω (~a) = (e 0 , . . . , e n−1 ). Wir zeigen, dass gilt:
1
n F n,ω
−1(~ e) = ~a
P ~ e (ω −k ) =
n−1
X
j=0
e j ω −kj =
n−1
X
j=0
P ~ a (ω j )ω −kj
=
n−1
X
j=0 n−1
X
i=0
a i ω ij ω −kj =
n−1
X
i=0
a i n−1
X
j=0
ω (i−k)j = na k ,
denn nach Lemma 152 ist P n−1
j=0 ω (i−k)j = 0, falls i 6= k.
Im Fall i = k gilt P n−1
ω (i−k)j = n.
3.6 Restklassen in Polynomringen 3.6.1 Einf¨ uhrung und Definitionen
Der Begriff der Restklasse stammt urspr¨ unglich aus der Teilbarkeitslehre in Z; (Z, +, ·) ist ein kommutativer Ring).
Definition 153
Sei n eine fest gew¨ ahlte ganze Zahl 6= 0. F¨ ur jedes ` ∈ Z heißt die Menge [`] n := {m ∈ Z : m − ` ist durch n teilbar}
die Restklasse von ` modulo n.
Bemerkungen
1
F¨ ur `, m ∈ Z gilt:
m ∈ [`] n ⇐⇒ m mod n = ` mod n .
Gilt m ∈ [`] n , so schreibt man auch m ≡ ` mod n oder m = ` mod n und spricht
” m kongruent ` modulo n“.
2
Es gilt [`] n = {` + kn : k ∈ Z } =: ` + n Z =: ` + (n).
3
Da es genau n verschiedene Reste 0, 1, . . . , n − 1 gibt, gibt es auch genau n
verschiedene Restklassen [0] n , [1] n , . . . , [n − 1] n .
Bemerkungen
4
Kongruenz modulo n definiert auf Z eine ¨ Aquivalenzrelation ∼ n : m ∼ n ` : ⇐⇒ n teilt m − `, und [`] n ist die ¨ Aquivalenzklasse von `.
5
Auf der Menge aller Restklassen [`] n kann man Addition und Multiplikation wie folgt definieren
[`] n + n [m] n := [` + m] n , [`] n · n [m] n := [` · m] n ,
und erh¨ alt einen kommutativen Ring; er heißt der Restklassenring Z modulo n und wird mit Z /(n) oder Z /n Z oder Z n bezeichnet.
6