1 polynome und die fft sören tönis seminar: ergänzungen zu dap2
TRANSCRIPT
1
Polynome und die FFT
Sören Tönis
Seminar: Ergänzungen zu DAP2
2
• Polynome– Addition– Multiplikation– Alternative Darstellungsformen
• Koeffizientendarstellung• Point-Value-Darstellung
– Komplexe Einheitswurzeln– Diskrete Fouriertransformation– Schnelle Fouriertransformation
3
Polynome
• Polynome vom Grad n-1 und Länge n
1
0)(
n
j
jjxaxA
111
00 ...
nn xaxaxa
51238 34 xxxz.B.:
4
Addition von Polynomen
1
0)(
n
j
jjxaxA
1
0)(
n
j
jjxbxB
)()()( xCxBxA
1
0)(
n
j
jjxcxC
jjj bac
wobei
mit
5
Addition von Polynomen
39228
)2325(
51238
234
23
34
xxxx
xxx
xxx
6
Addition von Polynomen
• Polynom hat Grad des höheren der beiden addierten Polynome
• Bei Polynomen vom Grad n-1 sind n Additionen notwendig
jjj bac
7
Multiplikation von Polynomen
1
0)(
n
j
jjxaxA
1
0)(
n
j
jjxbxB
22
0)(
n
j
jjxcxC
j
K kjkj bac0
)()()( xCxBxA wobei
mit
8
Multiplikation von Polynomen
45867520441412
18201412
36402824
45503530
542
91076
23456
3456
234
23
3
23
xxxxxx
xxxx
xxxx
xxx
xx
xxx
9
Multiplikation von Polynomen
Grad (C) = Grad (A) + Grad (B)
10
Darstellungsweise von Polynomen
- Koeffizientendarstellung
- Point-Value-Darstellung
11
Koeffizientendarstellung
Koeffizientendarstellung von Polynom mit Grad
n-1 durch Vektor
Auswertung erfolgt nach Horn-Schema über den gewählten Punkt:
),...,( 11,0 naaaa
))...))((...(()( 1020201000 nn axaxaxaxaxA
12
Koeffizientendarstellung
Addition erfolgt wie bei den Polynomen:
1,...,1,0für mit
),...,,(
),...,,(
),...,,(
110
110
110
njbac
cccc
bbbb
aaaa
jjj
n
n
n
13
Koeffizientendarstellung
Addition hat den Zeitaufwand von n), wie auch die normale Addition von zwei Polynomen. Genau so Multiplikation möglich, mit Zeitaufwand ( ). Wir multiplizieren einfach jeden Koeffizienten in Vektor a mit jedem Koeffizienten in Vektor b.
2n
14
Point-Value-Darstellung
Die Punkt-Wert Darstellung eines Polynoms des Grades n-1 besteht aus n Paaren:
1,...,1,0
)(
)},(),...,,(),,{( 111100
nk
xAy
yxyxyx
kk
nn
kxWobei alle verschieden sind und
für
15
Point-Value-Darstellung
Polynom hat viele verschiedene Point-Value Darstellungen da n verschieden x als Basis der Abbildung genutzt werden können.
Wir können beliebige auswählen.110 ,...,, nxxx
16
Point-Value-Darstellung
Aufwand für diese Auswertung/Entwicklung (ab
jetzt nur der Begriff Evaluation) ( ) nachHorn-Schema.
Ziel: ( ) ist kein Vorteil, wir wollen die Evaluation möglichst in linearer Zeit abwickeln.
Weg: Kluge wählen.
2n
2n
kx
17
Begriffsklärung
1. Evaluation:
Umwandlung von Koeffizientendarstellung
in Point-Value-Darstellung
2. Interpolation:
Umwandlung von Point-Value-Dartellung
in Koeffizientendarstellung
18
Vorschau
Wir brauchen für Multiplikation von Polynomen
nach Standard-Rechnung ( ), es gilt zu zeigen, daß wir durch Umformungen eine Aufwandsersparnis erzielen.
2n
19
Addition in Point-Value-Darst.
)()()(
)()()(
kkk xxAxC
xBxAxC
)},(),...,,(),,{(
)},(),...,,(),,{(
)},(),...,,(),,{(
111111000
111100
111100
nnn
nn
nn
yyxyyxyyx
yxyxyx
yxyxyx
Voraussetzung: A und B wurden an den gleichen Punkten evaluiert
AB
C
20
Multiplikation in Point-Value-Darst.
)()()(
)()()(
kkk xxAxC
xBxAxC
)},(),...,,(),,{(
)},(),...,,(),,{(
)},(),...,,(),,{(
111111000
111100
111100
nnn
nn
nn
yyxyyxyyx
yxyxyx
yxyxyx
Voraussetzung: A und B wurden an den gleichen Punkten evaluiert
AB
C
Problem ! : Grad C = Grad A + Grad B
21
Vorschau
Problematik:
A,B Polynome vom Grad n-1 und C
Polynom von Grad 2n-2, für punktweise
Multiplikation müssen wir bei der Evaluation
unsere Spaltenvektoren „auffüllen“ !
22
Multiplikation in Point-Value-Darst.
Lösung: Extended Point-Value-Darstellung von
A und B !
)},(),...,,(),,{(
)},(),...,,(),,{(
)},(),...,,(),,{(
121212111000
12121100
12121100
nnn
nn
nn
yyxyyxyyx
yxyxyx
yxyxyxAB
C
Bemerkung: 2n-1 wegen Gradgrenze 2n
23
Einschub
Literatur spricht von „degree bound“ Gradschranke!
Polynom der Länge n hat Grad n-1 und Gradschranke n, Polynom der Länge 2n-1 hat den Grad 2n-2 und Gradschranke 2n-1 und somit auch Gradschranke 2n.
24
Vorschau
1. Verdoppeln der Gradschranke.
Erstellen einer Koeffizientendarstellung von A(x) und B(x), durch hinzufügen von höherwertigen 0-Koeffizienten.
2. Evaluation
Berechnen der Point-Value-Darstellung von A(x) und B(x), durch Anwenden der FFT.
25
Vorschau
3. Punktweises Multiplizieren:
Berechnen von C(x)=A(x)B(x) punktweises Multiplizieren der Werte
4. Interpolation:
Erstellen der Koeffizientendarstellung zum Polynom C(x).
26
Vorschau
110
11,0
,...,,
,...,
n
n
bbb
aaa221,0 ,..., nccc
)(),(
)(),(
)(),(
122
122
12
12
02
02
nn
nn
nn
nn
BA
BA
BA
Koeffizienten-darstellung
Point-Value-Darstellung
)(
)(
)(
122
12
02
nn
n
n
C
C
C
Standard-MultiplikationZeitaufwand
EvaluationZeitaufwand
InterpolationZeitaufwand
punktweise MultiplikationZeitaufwand
)lg( nn)lg( nn
)( 2n
)(n
27
Komplexe Einheitswurzeln
Eine Komplexe n-te Einheitswurzel ist eine komplexe Zahl mit
heißt primitive n-te Einheitswurzel, wenn
1n
1,...,1,01,1 nkkn alle für aber
28
Eigenschaften der Einheitswurzel
Es gibt n verschiedene n-te Einheitswurzeln, diese sind darstellbar als die Potenzen einer primitiven n-ten Einheitswurzel
1210 ,...,,,: n
29
Eigenschaften der Einheitswurzel
Jede ganzzahlige Potenz einer n-ten Einheitswurzel ist wieder n-te Einheitswurzel, denn
Dies gilt auch für negative k.
k
11)()( kknnknk
30
Eigenschaften der Einheitswurzel
Ist n gerade, so gilt für jede primitive n-te Einheitswurzel , denn
,d.h. ist 2-te Einheitswurzel, also 1 oder -1.
Da aber ist, da primitiv ist,
gilt .
1: 2/ n1)( 22/ nn 2/n
12/ n 12/ n
31
Eigenschaften der Einheitswurzel
Das Quadrat einer primitiven n-ten Einheitswurzel (n gerade) ist primitive n/2-te Einheitswurzel,
denn 1.
2. Angenommen, sie sei nicht primitiv, dann
Dann ist aber ein
Widerspruch dazu, daß primitiv ist.
1)( 2/2 nn
. mit 2 1)(12/,....,1 knk
nkk 212 mit
32
Eigenschaften der Einheitswurzel
Ist primitive n-te Einheitswurzel, so ist ebenfalls primitive n-te Einheitswurzel, denn
1.
2. Angenommen, sei nicht primitiv, dann
Dann ist aber
ein Widerspruch dazu, dass primitiv ist.
1
11/1/1)( 11 nn 1
. mit -1 1)(1,....,1 kknk 11/1/1 kk
33
Eigenschaften der Einheitswurzel
Die n komplexen n-ten Einheitswurzeln
bilden mit der Multiplikation zusammen eine Gruppe mit der gleichen Struktur wie die
additive Gruppe
110 ,...,, nnnn
nn mod),(
34
Komplexe Einheitswurzeln
Lemma (Cancellation Lemma):
Für jede ganze Zahl
kn
dkdn
dkn
, und 00,0 gilt
35
Komplexe Einheitswurzeln
Korollar:
Für jede ganze Zahl
1
0
22/
nn
n gilt
36
Komplexe Einheitswurzeln
Lemma (Halving Lemma):
n>0 ist gerade, dann sind die Quadrate der
n komplexen n-ten Einheitswurzeln die
n/2 komplexen (n/2)ten Einheitswurzeln.
37
Komplexe Einheitswurzeln
Lemma (Summation Lemma):
Für jede ganze Zahl und nicht negative ganze Zahl k, nicht durch n teilbar,
1n
0)(1
0
n
j
jkn
38
Diskrete Fouriertransformation
1
0
)(n
j
jjxaxA 1210 ,...,,, n
nnnn
),...,,( 110 naaaa
Der Einfachheit halber betrachten wir wieder nur n anstatt 2n.
Polynom an
Wir definieren für
1
0
)(n
j
kjnj
knk aAy
ky 1,...,1,0 nk
39
Diskrete Fouriertransformation
Der Vektor y heißt diskrete Fouriertransformation des
Vektors a, oder ).(aDFTy n
40
Schnelle Fouriertransformation
FFT nutzt Divide & Conquer Strategie
FFT bildet aus zwei Polynome)(xA )(),( ]1[][ xAxA o
der Länge n/2.
12/1
2531
]1[
12/2
2420
]0[
...)(
...)(
n
n
nn
xaxaxaaxA
xaxaxaaxA
Das erste Polynom enthält die Koeffizienten mit geradem Index, das zweite die mit ungeradem Index. Daraus folgt:
41
Schnelle Fouriertransformation
)()()( 2]1[2]0[ xxAxAxA Anstelle der Evaluation des gesamten Polynoms, müssen wir nur noch unsere beiden Teilpolynome über evaluieren und die Ergenis dann nach obiger Gleichung kombinieren.
Die Zerlegung in Polynome der Länge n/2, lässt uns zwar die Gleiche Rechnung, aber die Größe halbiert sich.
212120 )(,...,)(,)( nnnn
Für unseren Algorithmus ist oBdA n eine Potenz von 2
42
Rekursive FFT
1 n length [a] n ist Potenz von 2
2 if n=1
3 then return a
4
5
6
7
8
9
10 for k 0 to n/2-1
11 do
12
13
14 return y y soll ein Spaltenvektor sein
1ni
n e /2
),...,,( 220]0[
naaaa
),...,,( 131]1[
naaaa
)( ]0[]0[ aFFTRECURSIVEy
)( ]1[]1[ aFFTRECURSIVEy
]1[]0[kkk yyy
]1[]0[)2/( kknk yyy
n
43
Interpolation
)}(),...,(),{( 1,11,10,0 nn yxyxyx
)(xA
)( kk xAy 1,...,1,0 nk
Für n Point-Value Paare
existiert ein eindeutiges Polynom der Länge n,
so daß für
44
Interpolation
Dazu betrachten wir die Matrizengleichung nach Folie 14
1
1
0
1
1
0
11
211
11
211
10
200
1
1
1
nnnnnn
n
n
y
y
y
a
a
a
xxx
xxx
xxx
Vandermonde-Matrix, invertierbar falls alle x verschieden
yxxxVa n1
110 ),...,,(
45
Interpolation
1
3
2
1
0
)1)(1()1(3)(21
)1(3963
)1(2642
132
1
3
2
1
0
1
1
1
1
11111
nnn
nn
nn
nnn
nnnnn
nnnnn
nnnnn
n a
a
a
a
a
y
y
y
y
y
46
Interpolation
)(1 yDFTa n
1,...,1,01 1
0
njyn
an
k
kjnkj für
n
Mit der Inversen der Vandermonde-Matrix erhalten wir
Vergleich mit Folie 38: Tausch im Algorithmus von a und y und
mit , nur noch Division von jedem Element durch n.1n
Es folgt Interpolation hat gleiche Laufzeit wie Evaluation !
47
Ergebnis
a,b Vektoren der Länge n, n Potenz von 2
))()(( 221
2 bDFTaDFTDFTba nnn
a,b durch 0 zu Länge 2n aufgefüllt
48
Laufzeit FFT
Laufzeit T(n)=2T(n/2)+(n)=(nlg n)
49
Zur VeranschaulichungParallele FFT
50
Literatur
Cormen, Leiserson, Rivest: Introduction to algorithm
H.W. Lang: Algorithmen in Java