Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

WS 2006-07 Algorithmentheorie 02 - Polynomprodukt und Fast Fourier Transformation Prof. Dr. Th. Ottmann.

Ähnliche Präsentationen


Präsentation zum Thema: "WS 2006-07 Algorithmentheorie 02 - Polynomprodukt und Fast Fourier Transformation Prof. Dr. Th. Ottmann."—  Präsentation transkript:

1 WS Algorithmentheorie 02 - Polynomprodukt und Fast Fourier Transformation Prof. Dr. Th. Ottmann

2 2WS Polynome Reelles Polynom p in einer Variablen x p(x) = a n x n a 1 x 1 + a 0 a 0,..., a n R, a n 0: Koeffizienten von p Grad von p: höchste Potenz in p (= n) Beispiel: p(x) = 3x 3 – 15x x Menge aller reellen Polynome: R[x]

3 3WS Operationen auf Polynomen 1. Addition

4 4WS Operationen auf Polynomen 2. Produkt c i : Welche Monomprodukte haben Grad i ? Polynomring R[x]

5 5WS Operationen auf Polynomen 3. Auswerten an der Stelle x 0 : Horner-Schema Zeit: O(n)

6 6WS Repräsentation eines Polynoms p(x) R[x] Möglichkeit zur Repräsentation von p(x): 1. Koeffizientendarstellung Beispiel:

7 7WS Repräsentation eines Polynoms 2. Nullstellenprodukt p(x) R[x] Beispiel:

8 8WS Repräsentation eines Polynoms 3. Punkt/Wertdarstellung Interpolationslemma Jedes Polynom p(x) aus R[x] vom Grad n ist eindeutig bestimmt durch n+1 Paare (x i, p(x i )), mit i = 0,...,n und x i x j für i j Beispiel: Das Polynom wird durch die Paare (0,0), (1,6), (2,0), (3,0) eindeutig festgelegt.

9 9WS Operationen auf Polynomen p, q R[x], Grad(p) = Grad(q) = n Koeffizientendarstellung Addition: O(n) Produkt: O(n 2 ) Auswertung an der Stelle x 0 : O(n) Punkt/Wertdarstellung

10 10WS Operationen auf Polynomen Addition: Zeit: O(n) Produkt: (Voraussetzung: n Grad(pq)) Zeit: O(n) Auswerten an der Stelle x´: ?? Umwandeln in Koeffizientendarstellung (Interpolation)

11 11WS Polynomprodukt Berechnung des Produkts zweier Polynome p, q vom Grade < n p,q Grad n-1, n Koeffizienten Auswertung: 2 n Punkt/Wertpaare und Punktweise Multiplikation 2 n Punkt/Wertpaare Interpolation pq Grad 2 n -2, 2 n -1 Koeffizienten

12 12WS Ansatz für Divide and Conquer Idee: (n sei gerade)

13 13WS Repräsentation von p(x) Annahme: Grad(p) < n 3a. Werte an den n Potenzen der n-ten komplexen Haupteinheitswurzel Potenz von n (Einheitswurzeln): 1 =

14 14WS Diskrete Fourier Transformation Werte von p für die n Potenzen von n legen p eindeutig fest, falls Grad(p)

15 15WS Auswertung an den Einheitswurzeln

16 16WS Auswertung an den Einheitswurzeln

17 17WS Polynomprodukt Berechnung des Produkts zweier Polynome p, q vom Grade < n p,q Grad n-1, n Koeffizienten Auswertung: 2 n Punkt/Wertpaare und Punktweise Multiplikation 2 n Punkt/Wertpaare Interpolation pq Grad 2 n -2, 2 n -1 Koeffizienten

18 18WS Eigenschaften der Einheitswurzel bilden eine multiplikative Gruppe Kürzungslemma Für alle n > 0, 0 k n, und d > 0 gilt: Beweis: Folge:

19 19WS Diskrete Fourier Transformation Fast Fourier Transformation: Berechnung von DFT n (p) mittels eines Divide-and-Conquer Ansatzes

20 20WS Diskrete Fourier Transformation Idee: (n sei gerade)

21 21WS Diskrete Fourier Transformation Auswertung für k = 0,..., n – 1

22 22WS Diskrete Fourier Transformation Beispiel:

23 23WS Berechnung von DFT n Einfachster Fall: n = 1 (Grad(p) = n –1 = 0) DFT 1 (p) = a 0 Sonst : Divide: Teile p in p 0 und p 1 auf Conquer: Berechne DFT n/2 (p 0 ) und DFT n/2 (p 1 ) rekursiv Merge: Berechne für k = 0,..., n –1: DFT n (p) k =

24 24WS Eine kleine Verbesserung Also falls k < n/2:

25 25WS Eine kleine Verbesserung Beispiel:

26 26WS Fast Fourier Transformation Algorithmus FFT Input: Ein Array a mit den n Koeffizienten eines Polynoms p und n = 2 k Output: DFT n (p) 1.if n = 1 then /* p ist konstant */ 2.return a 3.d [0] = FFT([a 0, a 2,..., a n-2 ], n/2) 4.d [1] = FFT([a 1, a 3,..., a n-1 ], n/2) 5. n = e 2 i/n 6. = 1 7. for k = 0 to n/2 – 1 do /* = n k */ return d

27 27WS FFT : Beispiel a = [0, 18, -15, 3 ] a [0] = [0, -15] a [1] = [18, 3] FFT([0, -15], 2) = (FFT([0],1) + FFT([-15],1), FFT([0],1) - FFT([-15],1)) = (-15,15) FFT([18, 3],2) = (FFT([18],1) + FFT([3],1), FFT([18],1) - FFT([3],1)) = (21,15) k = 0 ; = 1 d 0 = * 21 = 6 d 2 = -15 – 1 * 21 = -36 k = 1 ; = i d 1 = 15 + i*15 d 3 = 15 – i*15 FFT(a, 4) = (6, 15+15i, -36, 15 –15i)

28 28WS Analyse T(n) = Zeit um ein Polynom vom Grad < n an den Stellen auszuwerten. T(1) = O(1) T(n) = 2 T(n/2) + O(n) = O(n log n)

29 29WS Polynomprodukt Berechnung des Produkts zweier Polynome p, q vom Grade < n p,q Grad n-1, n Koeffizienten Auswertung durch FFT: 2 n Punkt/Wertpaare und Punktweise Multiplikation 2 n Punkt/Wertpaare Interpolation pq Grad 2 n -2, 2 n -1 Koeffizienten

30 30WS Interpolation Umrechnung der Punkt/Wert-Darstellung in die Koeffizientendarstellung Gegeben: (x 0, y 0 ),..., (x n-1, y n-1 ) mit x i x j, für alle i j Gesucht: Polynom p mit Koeffizienten a 0,..., a n-1, so dass

31 31WS Interpolation Matrixschreibweise

32 32WS Interpolation Spezialfall (hier) : Definition:

33 33WS Interpolation Satz Für alle 0 i, j n – 1 gilt: Beweis zu zeigen:

34 34WS Interpolation

35 35WS Interpolation Fall 1: i = j Fall 2: i j,

36 36WS Interpolation Summationslemma Für alle n > 0, l 0 mit n l Beweis:

37 37WS Interpolation

38 38WS Interpolation

39 39WS Interpolation und DFT denn

40 40WS Polynomprodukt durch FFT Berechnung des Produkts zweier Polynome p, q vom Grade < n p,q Grad n-1, n Koeffizienten Auswertung durch FFT: 2 n Punkt/Wertpaare und Punktweise Multiplikation 2 n Punkt/Wertpaare Interpolation durch FFT pq Grad 2 n -2, 2 n -1 Koeffizienten


Herunterladen ppt "WS 2006-07 Algorithmentheorie 02 - Polynomprodukt und Fast Fourier Transformation Prof. Dr. Th. Ottmann."

Ähnliche Präsentationen


Google-Anzeigen