310 likes | 507 Views
Polynome und schnelle Fourier-Transformation. Mohsen Taheri FU Berlin – SoSe2012. Polynome. Ein Polynom ist eine Funktion Koeffizienten: Ein Polynom hat Grad k wenn der höchste Koeffizient mit einem Wert ungleich 0 Länge = jede ganze Zahl großer als Grad eines Polynoms .
E N D
Polynome und schnelle Fourier-Transformation Mohsen Taheri FU Berlin – SoSe2012
Polynome • Ein Polynom ist eine Funktion • Koeffizienten: • Ein Polynom hat Gradk wenn der höchste Koeffizient mit einem Wert ungleich 0 • Länge = jede ganze Zahl großer als Grad eines Polynoms Polynome und FFT
Addition von Polynomen • Seien und • Polynome der Länge n • Addition von A(x) und B(x) ist • hat auch Länge n • und • Beispiel • Laufzeit: Polynome und FFT
Multiplikation von Polynomen • Seien und • Polynome der Länge n • Multiplikation von A(x) und B(x) ist • Wobei • Länge(C) = Länge(A) + Länge(B) • Beispiel • Laufzeit: Polynome und FFT
Darstellung von Polynomen • Koeffizienten-Darstellung • Point-Value-Darstellung Polynome und FFT
Koeffizienten-Darstellung • Das Polynom als ein Vektor der Koeffizienten • Addition: • Laufzeit • Multiplikation (wie vorhin): • wobei • Laufzeit Polynome und FFT
Point-Value-Darstellung • Polynom Länge n in Point-Value-Darstellung: • eine Menge von Punkten • alle sind disjunkt • für alle : • Auswertung durch Horne-Schema (in ) Polynome und FFT
Addition in Point-Value-Darstellung • A : • B : • Addition: • Laufzeit: Polynome und FFT
Multiplikation in Point-Value-Darstellung • Problem: Länge(A.B)=Länge(A)+Länge(B) • Lösung: Extended Point-Value • 2n Punkte statt n Punkte • A: • B: • Multiplikation: • C: • Laufzeit : Polynome und FFT
Evaluation • Evaluation: Transform von Koeffizienten-Vektor zur Point-Value-Darstellung • Evaluating: Die Auswertung eines Polynoms unter einen bestimmten Wert von x • Mit Hilfe von Horne-Schema in • Evaluation insgesamt in Polynome und FFT
Interpolation • Interpolation: Transform von Point-Value-Darstellung zur Koeffizienten-Darstellung • Lagranges Formel Polynome und FFT
Theorem 1: Eindeutigkeit von Interpolation der Polynomen • Für alle Menge von n Punkten • mit disjunkt • gibt es ein eindeutiges Polynom A(x) der Länge n, so dass • für alle Polynome und FFT
DFT • effiziente Methode für Evaluation und Interpolation • Diskrete Fourier Transform • Das Polynom in n komplexe n-te Einheitswurzeln auswerten • Eingabe: Koeffizienten-Vektor • Ausgabe: Vektor • Auswertung der Polynom in n Komplexe n-te Einheitswurzeln Polynome und FFT
Komplexe Einheitswurzeln • komplexe Einheitswurzel: eine komplexe Zahl • wobei • Es gibt genau n komplexe n-te Einheitswurzeln: • für k=0,1, … , n-1: • Die Zahl : primitive n-te Einheitswurzel • alle anderen Zahlen sind die Potenzen dieser Zahl • n komplexe n-te Einheitswurzeln sind dann: Polynome und FFT
Komplexe Einheitswurzeln - Eigenschaften • Additive Gruppe • Die n Zahlen haben die gleiche Struktur wie die additive Gruppe • Beweis: Polynome und FFT
Komplexe Einheitswurzeln - Eigenschaften • Cancellation Lemma • Für jede ganze Zahl gilt: • Beweis: . • Korollar: • Für alle ganze Zahlen n>0 gilt: Polynome und FFT
Komplexe Einheitswurzeln - Eigenschaften • Halving Lemma: • wenn n>0 gerade Zahl • die Quadrate der n komplexen n -te Einheitswurzeln sind die n/2 komplexe (n/2)-te Einheitswurzeln: Polynome und FFT
Komplexe Einheitswurzeln - Eigenschaften • Halving Lemma: • Beweis: Da n gerade ist, nehmen wir an n=2m • Zu zeigen: • Nach Cancellation Lemma: • da , ist dann , also □ Polynome und FFT
Komplexe Einheitswurzeln - Eigenschaften • Summation Lemma: • Für jede ganze Zahl n≥1 und für k≠0 und nicht dividierbar durch n, gilt: Polynome und FFT
FFT • Evaluation eines Polynoms in • unter Verwendung der Eigenschaften der Einheitswurzeln • Diese Methode heißt Fast Fourier Transform(FFT). • Annahme n ist ein 2er Potenz ( ) • Divide-and-Conquer Polynome und FFT
FFT • das Polynom A(x) in gerade und ungerade indizierte Koeffizienten teilen • zwei neue Polynome der Länge n/2 • Das Polynom wird so berechnet: Polynome und FFT
FFT • das Problem von Auswerten des Polynoms in n Punkten ( ) reduziert zu: • 1. zwei Polynome der Länge n/2 in Punkten ( ) auswerten • 2. das Resultat mit Hilfe der Abgleichung zusammen addieren Polynome und FFT
FFT • Nach Halving Lemma: • die Anzahl der Elemente der Liste nicht n, sondern n/2. • Die zwei Subprobleme haben genau die gleiche Struktur wie das ursprüngliche Problem und sind halb so groß. Polynome und FFT
Rekursiv FFT RECURSIVE-FFT(a) • n = a.length() • if n==1 • return a • for k=0 to n/2-1 • return y Eingabe: Ausgabe: Polynome und FFT
Rekursiv FFT • Zeilen11-12 kombinieren das Ergebnis der rekursiven Berechnung • Zeile 11 für • Zeile 12 für • zusammengefügt wird Vektor y berechnet Polynome und FFT
Rekursiv FFT - Laufzeit • jeder rekursiver Aufruf kostet • n = Länge des Eingabevektors • Laufzeit: Polynome und FFT
Interpolation in Einheitswurzeln • umgekehrtes Verfahren • Polynom vom Point-Value zurück zu Koeffizienten • Berechnung von DTF als eine Matrizenmultiplikation • Vandermonde-Matrix • wir brauchen die Inverse-Matrix Polynome und FFT
Inverse von Vandermonde-Matrix • Theorem: Für j,k=0,1,…,n-1 sind die (j,k)Einträge von die Zahlen • Beweis: • z.z.: , wobei die n×n Identitätsmatrix • betrachte die (j,j')Einträge von • Falls j=j‘ : • Falls j≠j‘ : • -(n-1) ≤ j-j' ≤ n-1 j-j' ist nicht durch n dividierbar • Summation Lemma : Polynome und FFT
Interpolation in Einheitswurzeln • I : (j,k)Einträge der sind: • II : • Vergleiche mit Polynom in Einheitswurzeln • leichte Modifikation in Algorithmus berechnet die Interpolation • tausche a und y • ersetze durch • dividiere jedes Element durch n • Also die Interpolation auch in berechenbar Polynome und FFT
Zusammenfassung Standard-Multiplikation Laufzeit Koeffizienten- Darstellung Interpolation Laufzeit Evaluation Laufzeit punktweise Multiplikation Laufzeit Point-Value- Darstellung Polynome und FFT