Numerik I 194 5 Interpolation und numerische Approximation 5.1 Polynominterpolation 5.2 Spline-Interpolation 5.3 Diskrete Fourier-Transformation 5.4 Schnelle Fourier-Transformation (FFT) 5.5 Eine Anwendung 5 Interpolation und numerische Approximation TU Bergakademie Freiberg, WS 2011/12
Numerik I 195 Das (allgemeine) Interpolationsproblem. Zu gegebener Funktion f : [a, b] R und gegebenen Stützstellen (Knoten) a x 0 < x 1 < x 2 < < x n b soll eine einfache Funktion p : [a, b] R konstruiert werden, die die Interpolationsbedingungen p(x i ) = f(x i ) (i = 0, 1,..., n) erfüllt. Wozu? f ist nur an diskreten Punkten bekannt (Messwerte), aber eine geschlossene Formel für f ist auf ganz [a, b] erwünscht (z.b. um f an Zwischenstellen x [a, b] \ {x 0, x 1,..., x n } auszuwerten), f ist kompliziert und soll durch eine einfache Funktion angenähert werden (z.b. um die Ableitung f (x), x [a, b], oder das Integral b f(x)dx näherungsweise zu bestimmen). a 5 Interpolation und numerische Approximation TU Bergakademie Freiberg, WS 2011/12
Numerik I 196 5.1 Polynominterpolation Polynomiale Interpolationsaufgabe. Zu gegebenen (paarweise verschiedenen) Knoten a x 0 < x 1 < x 2 < < x n b und gegebenen Funktionswerten f 0, f 1,..., f n R soll ein Interpolationspolynom p(x) = π n x n + π n 1 x n 1 + + π 1 x + π 0 P n (mit reellen Koeffizienten π 0, π 1,..., π n = n + 1 Freiheitsgrade) vom Grad n konstruiert werden, das die n + 1 Interpolationsbedingungen erfüllt. p(x i ) = f i (i = 0, 1,..., n) 5.1 Polynominterpolation TU Bergakademie Freiberg, WS 2011/12
Numerik I 197 Satz 5.1 Die polynomiale Interpolationsaufgabe ist eindeutig lösbar. Mit den Lagrange-Grundpolynomen l i (x) := n j=0 j i x x j x i x j P n (beachte l i (x i ) = 1 und l i (x j ) = 0 für j i) lässt sich das Interpolationspolynom in der Lagrange-Form p(x) = n f i l i (x) i=0 darstellen. 5.1 Polynominterpolation TU Bergakademie Freiberg, WS 2011/12
Numerik I 198 3.5 3 2.5 P Beispiel 1. Daten: (x 0, f 0 ) = ( 1, 1), (x 1, f 1 ) = (0, 1), (x 2, f 2 ) = (2, 2). 2 1.5 1 0.5 0 0.5 1 1.5 L 0 L 1 L 2 2 1 0 1 2 3 Lagrange-Grundpolynome: l 0 (x) = x(x 2)/3, l 1 (x) = (x + 1)(x 2)/( 2), l 2 (x) = (x + 1)x/6. Interpolationspolynom: p(x) = l 0 (x) l 1 (x) + 2l 2 (x) = x 2 /2 + x/2 1. 5.1 Polynominterpolation TU Bergakademie Freiberg, WS 2011/12
Numerik I 199 Die Auswertung der Lagrange-Formel ist aufwändig, wenn ein neuer Knoten hinzukommt. Eine rekursive Berechnung ist ökonomischer: Lemma 5.2 Für eine beliebige Indexmenge 0 i 0 < i 1 < < i k n bezeichne p i0,i 1,...,i k das (nach Satz5.1 eindeutig bestimmte) Polynom vom Grad k, das die Bedingungen erfüllt. Dann gilt die Rekursionsformel p i0,i 1,...,i k (x ij ) = f ij (j = 0, 1,..., k) p i (x) = f i, p i0,i 1,...,i k (x) = (x x i 0 )p i1,i 2,...,i k (x) (x x ik )p i0,i 1,...,i k 1 (x) x ik x i0. 5.1 Polynominterpolation TU Bergakademie Freiberg, WS 2011/12
Numerik I 200 Rechenschema (Algorithmus von Neville-Aitken): x i k = 0 k = 1 k = 2 k = 3 k = 4 x 0 p 0 (x) = f 0 p 0,1(x) x 1 p 1 (x) = f 1 p 0,1,2 (x) p 1,2 (x) p 0,1,2,3 (x) x 2 p 2 (x) = f 2 p 1,2,3 (x) p 0,1,2,3,4 (x) p 2,3 (x) p 1,2,3,4 (x) x 3 p 3 (x) = f 3 p 2,3,4 (x) p 3,4 (x) x 4 p 4 (x) = f 4 (Berechnungsreihenfolge : p 0 p 1 p 0,1 p 2 p 1,2 p 0,1,2 ) 5.1 Polynominterpolation TU Bergakademie Freiberg, WS 2011/12
Numerik I 201 Beispiel 2 (vgl. Beispiel 1). x i k = 0 k = 1 k = 2 1 1 0 1 2 2 (x ( 1))( 1) (x 0)( 1) 0 ( 1) = 1 (x ( 1))(3x/2 1) (x 2)( 1) 2 ( 1) (x 0)2 (x 2)( 1) 2 0 = 3 2 x 1 = 1 2 x2 + 1 2 x 1 Aufwand des Neville-Aitken Schemas (für Auswertung des Interpolationspolynoms vom Grad n an einer Stelle x): 5 2 n2 + 7 2 n + 1 Gleitpunktoperationen (falls die Differenzen x x i (0 i n) vorab bestimmt werden). 5.1 Polynominterpolation TU Bergakademie Freiberg, WS 2011/12
Numerik I 202 Tableau der dividierten Differenzen von {(x i, f i )}: x i k = 0 k = 1 k = 2 k = 3 k = 4 x 0 f 0 f 0,1 x 1 f 1 f 0,1,2 f 1,2 f 0,1,2,3 x 2 f 2 f 1,2,3 f 0,1,2,3,4 f 2,3 f 1,2,3,4 x 3 f 3 f 2,3,4 x 4 f 4 mit x i, f i gegeben und f 3,4 f i0,i 1,...,i k := f i 1,i 2,...,i k f i0,i 1,...,i k 1 x ik x i0 (k 1). 5.1 Polynominterpolation TU Bergakademie Freiberg, WS 2011/12
Numerik I 203 Satz 5.3 Mit Hilfe der dividierten Differenzen läßt sich das (nach Satz 5.1 eindeutig bestimmte) Interpolationspolynom p in Newton-Form darstellen. p(x) = f 0 + f 0,1 (x x 0 ) + f 0,1,2 (x x 0 )(x x 1 ) + + f 0,1,...,n (x x 0 )(x x 1 ) (x x n 1 ) Rechenaufwand: Zur Bestimmung der Differenzentafel: 3 2 (n2 + n) Gleitpunktoperationen. Zur Auswertung des Newtonschen Interpolationspolynoms mit dem Horner-Schema: 3n Gleitpunktoperationen (pro Auswertungspunkt). 5.1 Polynominterpolation TU Bergakademie Freiberg, WS 2011/12
Numerik I 204 Beispiel 3 (vgl. Beispiele 1 und 2). Dividierte Differenzen: x i k = 0 k = 1 k = 2 1 1 f 0,1 = ( 1) ( 1) 0 ( 1) = 0 0 1 f 0,1,2 = 3/2 0 2 ( 1) = 1 2 2 2 Das bedeutet: f 1,2 = 2 ( 1) 2 0 = 3 2 p(x) = ( 1) + 0 (x ( 1)) + 1 2 (x ( 1))(x 0) = 1 2 x2 + 1 2 x 1. 5.1 Polynominterpolation TU Bergakademie Freiberg, WS 2011/12
Numerik I 205 Satz 5.4 (Fehler der Polynominterpolation) Für f C n+1 [a, b] sei p das Polynom vom Grad n, welches f an den Knoten a x 0 < x 1 < < x n b interpoliert. Außerdem bezeichne w n+1 (x) = n (x x i ) P n+1 i=0 das zugehörige Knotenpolynom. Dann gibt es zu jedem x [a, b] ein ξ = ξ(x) (a, b) mit f(x) p(x) = w n+1(x) (n + 1)! f (n+1) (ξ). Mit M n+1 := max a t b f (n+1) (t) gilt für alle x [a, b] die Fehlerabschätzung f(x) p(x) M n+1 (n + 1)! max w n+1(t). a t b 5.1 Polynominterpolation TU Bergakademie Freiberg, WS 2011/12
Numerik I 206 Optimale Knoten. Idee (motiviert durch Fehlerabschätzung): Wähle Knoten a x 0 < x 1 < < x n b so, dass max w n+1(t) = max a t b a t b n t x i i=0 so klein wie möglich wird. Lösung: Tschebyscheff-Knoten x (T) i = b a ( 2(n i) + 1 cos 2 2n + 2 ) π + a + b 2 (i = 0, 1,..., n) mit max a t b n i=0 t x (T) i = 2 ( b a für jede andere Wahl x 0,..., x n der Knoten. 4 ) n < max a t b n t x i i=0 5.1 Polynominterpolation TU Bergakademie Freiberg, WS 2011/12
Numerik I 207 Knotenpolynome mit äquidistanten und Tschebyscheff-Knoten: 0.8 aequidistante Knoten Tschebyscheff Knoten 0.6 0.4 0.2 0 0.2 0.4 0.6 0.8 1 0 1 2 5.1 Polynominterpolation TU Bergakademie Freiberg, WS 2011/12
Numerik I 208 Beispiel 4. Interpoliere f(x) = 1 1 + x 2 ( 5 x 5) (Runge-Funktion) an n + 1 äquidistanten Stützstellen: 8 n=10 8 n=14 7 7 6 6 5 5 4 4 3 3 2 2 1 1 0 0 1 5 0 5 1 5 0 5 5.1 Polynominterpolation TU Bergakademie Freiberg, WS 2011/12
Numerik I 209 Beispiel 5. Interpoliere f(x) = 1 1 + x 2 ( 5 x 5) (Runge-Funktion) an n + 1 Tschebyscheff-Knoten: 8 n=10 8 n=14 7 7 6 6 5 5 4 4 3 3 2 2 1 1 0 0 1 5 0 5 1 5 0 5 5.1 Polynominterpolation TU Bergakademie Freiberg, WS 2011/12
Numerik I 210 Fazit. Durch eine geeignete Knotenwahl (Tschebyscheff-Knoten) lässt sich auch die Runge-Funktion durch Interpolationspolynome beliebig genau annähern. Prinzipiell ist eine Approximation durch Interpolationspolynome aber nur dann ratsam, wenn man mit wenigen Knoten (d.h. mit Polynomen niedrigen Grades) ausreichend gute Ergebnisse erzielen kann. Das ist i.a. nur bei extrem glatten Funktionen (wie etwa bei der Exponentialfunktion) gewährleistet. (Die Runge-Funktion ist zwar in ganz R beliebig oft differenzierbar, besitzt aber Pole in ± 1. Wie gut eine Funktion durch reelle Interpolationspolynome genähert werden kann, hängt auch von der Lage ihrer komplexen Singularitäten ab!) Polynome hohen Grades neigen zu Oszillationen und sind daher zur Approximation oft unbrauchbar. 5.1 Polynominterpolation TU Bergakademie Freiberg, WS 2011/12
Numerik I 211 5.2 Spline-Interpolation Splines sind stückweise Polynome. a Idee: Um die Güte der Approximation zu verbesseren, wird hier nicht der Polynomgrad erhöht, sondern die Unterteilung des Intervalls verfeinert. Seien n + 1 Knoten in [a, b] gegeben: a = x 0 < x 1 < < x n 1 < x n = b. Mit T := [x 0, x 1 ] [x 1, x 2 ] [x n 1, x n ] bezeichnen wir die zugehörige Zerlegung des Intervalls [a, b]. Ein Spline vom Grad k bez. T ist eine Funktion s C k 1 [a, b], die auf jedem Teilintervall von T mit einem Polynom vom Grad k übereinstimmt: s [xi 1, x i ] P k für i = 1, 2,..., n. a Eigentlich: Spezielle biegsame Kurvenlineale, die durch Halterungen gezwungen werden, auf dem Zeichenpapier gegebene Punkte zu verbinden. Werden im Schiffsbau verwendet. 5.2 Spline-Interpolation TU Bergakademie Freiberg, WS 2011/12
Numerik I 212 Satz 5.5 ST k, die Menge aller Splines vom Grad k bez. T, ist ein (n + k)- dimensionaler Raum. 1 Runge Funktion Knoten linearer Spline kubischer Spline 0.8 0.6 0.4 0.2 0 5 4 3 2 1 0 1 2 3 4 5 5.2 Spline-Interpolation TU Bergakademie Freiberg, WS 2011/12
Numerik I 213 Einfachster Fall: k = 1. Splines vom Grad 1 oder lineare Splines. Die zwei charakteristischen Eigenschaften eines linearen Splines s: 1. Auf jedem Teilintervall [x i 1, x i ] von T ist s linear: s(x) = α i + β i x für alle x [x i 1, x i ] und i = 1, 2,..., n. 2. Auf ganz [a, b] ist s stetig, d.h. für i = 1, 2,..., n 1 lim s(x) = α i + β i x i = α i+1 + β i+1 x i = x x i lim s(x). x x i + Interpolationsaufgabe: Zu vorgebener Zerlegung T = [x 0, x 1 ] [x 1, x 2 ] [x n 1, x n ] von [a, b] und zu vorgegebenen Werten f 0, f 1,..., f n bestimme einen linearen Spline s S 1 T mit s(x i ) = f i für alle i = 0, 1,..., n. 5.2 Spline-Interpolation TU Bergakademie Freiberg, WS 2011/12
Numerik I 214 Offensichtlich: Diese Aufgabe ist eindeutig lösbar: s(x) = f i 1 + f i f i 1 x i x i 1 (x x i 1 ) für x [x i 1, x i ]. 1.2 1 linearer Interpolationsspline 0.8 0.6 0.4 0.2 0 x 0 x 1 x 2 x 3 x 4 0.2 0.4 0.6 0.8 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 5.2 Spline-Interpolation TU Bergakademie Freiberg, WS 2011/12
Numerik I 215 Fehler des linearen Interpolationssplines: (f C 2 [a, b]) Lokal, d.h. für x [x i 1, x i ]: f(x) s(x) = 1 2 f (ζ) (x x i 1 )(x x i ) 1 8 M 2,i h 2 i mit M 2,i = max xi 1 ζ x i f (ζ) und h i = x i x i 1. Global, d.h. für x [x 0, x n ]: f(x) s(x) 1 8 M 2 h 2 max mit M 2 = max 1 i n M 2,i = max x0 ζ x n f (ζ) und h max = max 1 i n h i. Adaptive Knotenwahl. Stategie: Fehler etwa gleich auf jedem Teilintervall. D.h.: Wähle h i invers proportional zu M 2,i (viele Knoten dort, wo die Krümmung von f groß ist). 5.2 Spline-Interpolation TU Bergakademie Freiberg, WS 2011/12
Numerik I 216 Zur Implementierung. Gegeben: x 0, x 1,..., x n und f 0, f 1,..., f n. Gesucht: Wert s(x) des linearen Interpolationssplines an der Stelle x. Bestimme g i 1 = (f i f i 1 )/(x i x i 1 ) für i = 1, 2,..., n. Falls x [x i 1, x i ], dann s(x) = f i 1 + g i 1 (x x i 1 ). Problem: Gegeben x, in welchem Teilintervall [x i 1, x i ] liegt x? Einfach, falls h i = h (äquidistante Knoten): { x x0 i = := min k N : k x x } 0. h h Schwieriger bei beliebigen Knoten: Binäres Suchen ergibt Komplexität von log 2 n. 5.2 Spline-Interpolation TU Bergakademie Freiberg, WS 2011/12
Numerik I 217 Nächster Fall: k = 3: Gesucht ist ein interpolierender kubischer Spline s S 3 T. Charakteristische Eigenschaften des kubischen Splines: 1. Auf jedem Teilintervall [x i 1, x i ] von T ist s kubisch: s(x) = p i (x) = α i + β i (x x i 1 ) + γ i (x x i 1 ) 2 + δ i (x x i 1 ) 3. 2. Auf ganz [a, b] ist s zweimal stetig differenzierbar, d.h.: p i (x i ) = p i+1 (x i ), p i(x i ) = p i+1(x i ), p i (x i ) = p i+1(x i ) für i = 1, 2,..., n 1. 3. Interpolationsbedingungen: s(x i ) = f i (i = 0, 1,..., n) (Also 3(n 1) + (n + 1) = 4n 2 Bedingungen, aber 4n Freiheitsgrade). 5.2 Spline-Interpolation TU Bergakademie Freiberg, WS 2011/12
Numerik I 218 Drei Möglichkeiten für die erforderlichen zwei Zusatzbedingungen. Natürlicher Spline: s (x 0 ) = s (x n ) = 0 (N) Hermitescher oder vollständiger Spline: s (x 0 ) = f 0 und s (x n ) = f n mit f 0, f n R. (H) Periodischer Spline: Falls s(x 0 ) = s(x n ), s (x 0 ) = s (x n ) und s (x 0 ) = s (x n ). (P) 5.2 Spline-Interpolation TU Bergakademie Freiberg, WS 2011/12
Numerik I 219 Berechnung des kubischen Interpolationssplines. Auf jedem Teilintervall [x i 1, x i ] hat der kubische Spline die Form s(x) = p i (x) = α i + β i (x x i 1 ) + γ i (x x i 1 ) 2 + δ i (x x i 1 ) 3. Die Koeffizienten lassen sich durch die Momente µ i := s (x i ) und die Funktionswerte f i (i = 0, 1,..., n) darstellen: (hierbei sei h i := x i x i 1 ) α i = f i 1, γ i = 1 2 µ i 1, β i = f i f i 1 h i δ i = µ i µ i 1 6h i. h i 6 (µ i + 2µ i 1 ), M. a. W.: Ein kubischer Spline ist durch die Funktionswerte f i und die Momente µ i (i = 0, 1,..., n) eindeutig bestimmt. 5.2 Spline-Interpolation TU Bergakademie Freiberg, WS 2011/12
Numerik I 220 Die (n + 1) Momente µ i erfüllen die (n 1) linearen Gleichungen h i 6 µ i 1 + h i + h i+1 µ i + h i+1 3 6 µ i+1 = f i+1 f i h i+1 f i f i 1 h i (i = 1, 2,..., n 1) und zwei Zusatzgleichungen: (N) µ 0 = 0, (H) h n µ n = 0, h 1 3 µ 0 + h 1 6 µ 1 = f 1 f 0 h 1 f 0, 6 µ n 1 + h n 3 µ n = f n f n f n 1, h n (P) µ 0 µ n = 0, h 1 6 µ 1 + h 1 6 µ n 1 + h 1 + h n µ n = f 1 f n 3 h 1 f n f n 1 h n. 5.2 Spline-Interpolation TU Bergakademie Freiberg, WS 2011/12
Numerik I 221 Sei H k T := { f C k 1 [a, b] : f [xi 1,x i ] C k [x i 1, x i ] } und f 2 := [ b a f (x) 2 dx] 1/2 = [ n i=1 ] 1/2 f (x) 2 dx (f HT k, k 2). x i 1 xi Lemma 5.6 Für f H 2 T und s S 3 T gilt f s 2 2 = f 2 2 s 2 2 [ 2 (f (x) s (x))s (x) b n a i=1 (f(x) s(x))s (x) x i+ x i 1 ]. 5.2 Spline-Interpolation TU Bergakademie Freiberg, WS 2011/12
Numerik I 222 Satz 5.7 [Minimierungseigenschaft kubischer Splines]. Ist f HT 2 und s S T 3 ein zugehöriger kubische Interpolationsspline, der eine der drei Zusatzbedingungungen (N), (H) oder (P) erfüllt, dann folgt ( ) s 2 2 f 2 2 =: b a f (x) 2 dx. 5.2 Spline-Interpolation TU Bergakademie Freiberg, WS 2011/12
Numerik I 223 Interpretation von Satz 5.7. Die Biegeenergie E B (f) = b a f (x) 2 dx (1 + f (x) 2 ) 3/2 b a f (x) 2 dx wird näherungsweise durch den kubischen Interpolationsspline s minimiert. Im folgenden werden nur vollständige kubische Splines (Bedingung (H)) betrachtet, analoge Aussagen gelten unter den Voraussetzungen (N) und (P). 5.2 Spline-Interpolation TU Bergakademie Freiberg, WS 2011/12
Numerik I 224 Die Momente erfüllen das LGS (s.o.) h 1 h 1 3 6 h 1 h 1 +h 2 6 3 h 2 6......... h n 1 6 h n 1 +h n 3 h n6 h n6 h n3 µ 0 µ 1. µ n 1 µ n = d 0 d 1. d n 1 d n mit d 0 = f 1 f 0 h 1 f 0, d j = f j+1 f j h j+1 f n f n f n 1 h n. f j f j 1 h j (1 j n) und d n = Lemma 5.8 Für jede Wahl der Knoten a = x 0 < x 1 < < x n = b ist dieses Gleichungssystem eindeutig lösbar. D.h.: Zu jeder Knotenwahl gibt es genau einen vollständigen kubischen Interpolationsspline für f. 5.2 Spline-Interpolation TU Bergakademie Freiberg, WS 2011/12
Numerik I 225 Satz 5.9 [Fehler bei kubischer Spline-Interpolation]. Ist f C 4 [a, b] und s ST 3 der vollständige kubische Interpolationsspline für f, dann gelten 5 max f(x) s(x) x [a,b] 384 M 4 h 4 max, max f (x) s (x) 1 x [a,b] 24 M 4 h 3 max, max f (x) s (x) x [a,b] 3 8 M 4 h 2 max mit und M 4 := max a x b f (4) (x) h max = max 1 i n h i = max 1 i n (x i x i 1 ). 5.2 Spline-Interpolation TU Bergakademie Freiberg, WS 2011/12
Numerik I 226 5.3 Diskrete Fourier-Transformation Für n 0 und reellen Koeffizienten α 0, α 1,..., α n sowie β 1, β 2,..., β n bezeichnen wir als trigonometrisches Polynom einen Ausdruck der Form wobei β n = 0 für n gerade. t n (x) = α n 0 2 + [ ] α k cos(kx) + β k sin(kx), k=1 Die trigonometrische Interpolationsaufgabe besteht darin, zu den m äquidistanten Knoten x j = 2πj/m, (j = 0, 1,..., m 1) im Intervall [0, 2π) und m gegebenen reellen Zahlen f 0, f 1,..., f m 1 ein trigonometrisches Polynom t n zu bestimmen, welches die m Interpolationsbedingungen t n (x j ) = f j (j = 0, 1,..., m 1) erfüllt. Hierbei sei n = { (m 1)/2 m ungerade m/2 m gerade. 5.3 Diskrete Fourier-Transformation TU Bergakademie Freiberg, WS 2011/12
Numerik I 227 Transformation auf den (komplexen) Einheitskreis: φ : [0, 2π) T := {z C : z = 1}, x z = exp(ix) = cos x + i sin x. Die Knoten x j gehen in die m-ten Einheitswurzeln über: φ(x j ) = exp(2πij/m) = [exp(2πi/m)] j = ωm j (j = 0, 1,..., m 1) mit ω m := exp(2πi/m) = cos(2π/m) + i sin(2π/m). Setzt man β 0 = 0 und für k = 0, 1,..., n [ ] [ 1 C 2 ak 2 := (α ] k iβ k ) 1 a k 2 (α = 1 k + iβ k ) 2 [ ] [ ] 1 i αk 1 i β k, d.h. 5.3 Diskrete Fourier-Transformation TU Bergakademie Freiberg, WS 2011/12
Numerik I 228 ] ] ] ] R 2 [ αk β k = i [ 1 1 i ] [ ak a k = [ ak + a k i(a k a k ) = [ 2 Real (ak ) 2 Imag(a k ), so folgt t n (x) = n a k exp(ikx) = n a k z k = z n n a k z k+n = z n p 2n (z) k= n k= n k= n mit p 2n (z) = n k= n a kz k+n = 2n j=0 a j nz j P 2n. Wegen p 2n (ω j m) = ω jn m t n (x j ) = ω jn m f j ist die trigonometrische Interpolationsaufgabe zurückgeführt auf ein (gewöhnliches, wenn auch komplexes) Interpolationsproblem für algebraische Polynome. 5.3 Diskrete Fourier-Transformation TU Bergakademie Freiberg, WS 2011/12
Numerik I 229 Satz 5.10 Zu beliebig vorgegebenen Funktionswerten f 0, f 1,..., f 2n R gibt es genau ein reelles trigonometrisches Polynom t n T n mit t n (x j ) = f j (j = 0, 1,..., 2n). Lemma 5.11 Für die m-ten Einheitswurzeln ω k m (k Z, m N) gelten: a) [ω k m] j = ω kj m = [ω j m] k (j Z), b) ω kl ml = ωk m (l Z, l 0), c) ω k m = ω k d) m 1 j=0 m, ω kj m = { m, falls k = 0 (mod m), 0, falls k 0 (mod m). 5.3 Diskrete Fourier-Transformation TU Bergakademie Freiberg, WS 2011/12
Numerik I 230 Satz 5.12 Das komplexe (algebraische) Interpolationspolynom p m 1 (z) = m 1 k=0 c kz k P m 1 mit p m 1 (ω j m) = f j C (j = 0, 1,..., m 1) besitzt die Koeffizienten c k = 1 m m 1 j=0 f j ω kj m (k = 0, 1,..., m 1). In Matrix-Vektor-Schreibweise c 0 c 1. c m 1 = 1 m F m f 0 f 1. f m 1 mit der Fourier-Matrix 5.3 Diskrete Fourier-Transformation TU Bergakademie Freiberg, WS 2011/12
Numerik I 231 F m := [ ωm kj ] 0 k,j m 1 = 1 1 1 1 ωm 1 ω m+1 m.... 1 ωm m+1 ωm (m 1)2 Bemerkung. Seien m N, d N 0, d m 1, f 0, f 1,..., f m 1 C und z j = ωm j (j = 0, 1,..., m 1). Unter allen Polynomen q P d vom Grad d minimiert p m,d (z) = c 0 + c 1 z + + c d z d, also das abgeschnittene Interpolationspolynom, die Fehlerquadratsumme m 1 j=0 f j q(z j ) 2 : m 1 j=0 f j p m,d (z j ) 2 < m 1 j=0 f j q(z j ) 2 für alle q P d, q p m,d. 5.3 Diskrete Fourier-Transformation TU Bergakademie Freiberg, WS 2011/12
Numerik I 232 Satz 5.13 Für m = 2n oder m = 2n+1 gibt es zu beliebigen f 0, f 1,..., f m 1 R ein reelles trigonometrisches Interpolationspolynom [ ] t n (x) = 1 n 2 α 0 + α k cos(kx) + β k sin(kx) T n k=1 vom Grad n, das die m Bedingungen t n (2πj/m) = f j (j = 0, 1,..., m 1) erfüllt. Seine Koeffizienten sind durch ( ) α k = 2 m 1 f j cos k 2πj bzw. β k = 2 m m m j=0 m 1 j=0 f j sin ( k 2πj m ) (k = 0, 1,..., n) gegeben. Im Fall m = 2n muß β n = 0 gesetzt und α n halbiert werden. 5.3 Diskrete Fourier-Transformation TU Bergakademie Freiberg, WS 2011/12
Numerik I 233 5.4 Schnelle Fourier-Transformation (FFT) Seien ω j m (j = 0,..., m 1, ω m := exp(2πi/m)) die m-ten Einheitswurzeln. Diskrete Fourier-Analyse: Bestimme zu vorgebenen Funktionswerten f 0,..., f m 1 C die Koeffizienten c 0,..., c m 1 des Interpolationspolynoms P (z) = m 1 j=0 c jz j mit P (ωm) j = f j für j = 0,..., m 1. Wir wissen: Mit der Fourier-Matrix F m := [ωm kj ] 0 k,j m 1 C m m gilt c 0 c 1. = 1 m F m f 0 f 1.. c m 1 f m 1 5.4 Schnelle Fourier-Transformation (FFT) TU Bergakademie Freiberg, WS 2011/12
Numerik I 234 Diskrete Fourier-Synthese: Inverse Aufgabe: Bestimme zu vorgebenen Koeffizienten c 0,..., c m 1 C die Funktionswerte f 0,..., f m 1 des Polynoms P (z) = m 1 j=0 c jz j an den m-ten Einheitswurzeln ωm, 0... ωm m 1. Offensichtlich: f 0 f 1. = W m c 0 c 1. f m 1 c m 1 mit der Matrix W m := [ω kj m ] 0 k,j m 1 = F m C m m. 5.4 Schnelle Fourier-Transformation (FFT) TU Bergakademie Freiberg, WS 2011/12
Numerik I 235 Lemma 5.14 Für die Fourier-Matrix F m = [ωm kj ] 0 k,j m 1 C m m gelten: (a) Fm T = F m (aber Fm H F m für m > 2!), (b) Fm H F m = mi m, d.h. die Spalten von F m sind orthogonal und besitzen alle die Euklid-Norm m. (c) Fm 1 = 1 m F m H = 1 F m m. Diskrete Fourier-Transformationen (d.h. diskrete Fourier-Analysen und Synthesen) müssen in der Praxis oft berechnet werden (Signalverarbeitung, Lösung der Poisson-Gleichung etc.). Die klassische Berechnung einer Fourier-Transformation (ein Matrix-Vektor-Produkt mit F m /m bzw. W m ) erfordert offenbar O(m 2 ) komplexe Multiplikationen. Bei Anwendung der schnellen Fourier-Transformation (FFT) reduziert sich dieser Aufwand auf O(m log 2 m). 5.4 Schnelle Fourier-Transformation (FFT) TU Bergakademie Freiberg, WS 2011/12
Numerik I 236 Diese Verbesserung kann nicht überbewertet werden: It [the FFT] has changed the face of science and engineering so much that it is not an exaggeration to say that life as we know it would be very different without the FFT. [Charles Van Loan, Computational Frameworks for the Fast Fourier Transform, SIAM, Philadelphia 1992, p. ix] Wir setzen (aus schreibtechnischen Gründen) im folgenden ( ζ m = ω m = exp 2πi ) ( ) ( ) 2π 2π = cos i sin, m m m so dass F m = [ζ kj m ] 0 k,j m 1. Außerdem sei m gerade. 5.4 Schnelle Fourier-Transformation (FFT) TU Bergakademie Freiberg, WS 2011/12
Numerik I 237 Die Idee der FFT (für m = 8): Mit ζ := ζ 8 ist 1 1 1 1 1 1 1 1 1 ζ ζ 2 ζ 3 ζ 4 ζ 5 ζ 6 ζ 7 1 ζ 2 ζ 4 ζ 6 ζ 8 ζ 10 ζ 12 ζ 14 1 ζ 3 ζ 6 ζ 9 ζ 12 ζ 15 ζ 18 ζ 21 F 8 =. 1 ζ 4 ζ 8 ζ 12 ζ 16 ζ 20 ζ 24 ζ 28 1 ζ 5 ζ 10 ζ 15 ζ 20 ζ 25 ζ 30 ζ 35 1 ζ 6 ζ 12 ζ 18 ζ 24 ζ 30 ζ 36 ζ 42 1 ζ 7 ζ 14 ζ 21 ζ 28 ζ 35 ζ 42 ζ 49 5.4 Schnelle Fourier-Transformation (FFT) TU Bergakademie Freiberg, WS 2011/12
Numerik I 238 Wegen ζ 8 = 1, d.h. ζ j = ζ k, wenn j k (ohne Rest) durch 8 teilbar ist, folgt 1 1 1 1 1 1 1 1 1 ζ ζ 2 ζ 3 ζ 4 ζ 5 ζ 6 ζ 7 1 ζ 2 ζ 4 ζ 6 1 ζ 2 ζ 4 ζ 6 1 ζ 3 ζ 6 ζ ζ 4 ζ 7 ζ 2 ζ 5 F 8 =. 1 ζ 4 1 ζ 4 1 ζ 4 1 ζ 4 1 ζ 5 ζ 2 ζ 7 ζ 4 ζ ζ 6 ζ 3 1 ζ 6 ζ 4 ζ 2 1 ζ 6 ζ 4 ζ 2 1 ζ 7 ζ 6 ζ 5 ζ 4 ζ 3 ζ 2 ζ 1 5.4 Schnelle Fourier-Transformation (FFT) TU Bergakademie Freiberg, WS 2011/12
Numerik I 239 Jetzt numerieren wir die Zeilen von F 8 um: zuerst werden die mit geradem (0,2,4,6), danach die mit ungeradem Index (1,3,5,7) gezählt. Die zugehörige Pemutationsmatrix wird mit P bezeichnet. 1 1 1 1 1 1 1 1 1 ζ 2 ζ 4 ζ 6 1 ζ 2 ζ 4 ζ 6 1 ζ 4 1 ζ 4 1 ζ 4 1 ζ 4 [ ] 1 ζ 6 ζ 4 ζ 2 1 ζ 6 ζ 4 ζ 2 B1,1 B 1,2 P F 8 = =: 1 ζ ζ 2 ζ 3 ζ 4 ζ 5 ζ 6 ζ 7 B 2,1 B 2,2 1 ζ 3 ζ 6 ζ ζ 4 ζ 7 ζ 2 ζ 5 1 ζ 5 ζ 2 ζ 7 ζ 4 ζ ζ 6 ζ 3 1 ζ 7 ζ 6 ζ 5 ζ 4 ζ 3 ζ 2 ζ 1 5.4 Schnelle Fourier-Transformation (FFT) TU Bergakademie Freiberg, WS 2011/12
Numerik I 240 Wir untersuchen die einzelnen Blöcke: Wegen ζ = ζ 8 ist ζ 2 = ζ 4, d.h. 1 1 1 1 B 1,1 = B 1,2 = 1 ζ 4 ζ4 2 ζ 3 4 1 ζ4 2 ζ4 4 ζ4 6 = F 4. 1 ζ4 3 ζ4 6 ζ4 9 Aus den Spalten 0,1,2 bzw. 3 von B 2,1 klammern wir ζ 0, ζ 1, ζ 2 bzw. ζ 3 aus : 1 1 1 1 1 0 0 0 B 2,1 = 1 ζ 2 ζ 4 ζ 6 0 ζ 0 0 1 ζ 4 1 ζ 4 0 0 ζ 2 0 = F 4D 4. 1 ζ 6 ζ 4 ζ 2 0 0 0 ζ 3 5.4 Schnelle Fourier-Transformation (FFT) TU Bergakademie Freiberg, WS 2011/12
Numerik I 241 Analog: B 2,2 = 1 1 1 1 ζ 4 0 0 0 1 ζ 2 ζ 4 ζ 6 0 ζ 5 0 0 1 ζ 4 1 ζ 4 0 0 ζ 6 0 = F 4(ζ 4 D 4 ) = F 4 D 4. 1 ζ 6 ζ 4 ζ 2 0 0 0 ζ 7 Insgesamt erhalten wir [ ] F4 F 4 P F 8 = F 4 D 4 F 4 D 4 = [ ] [ ] F4 O I4 I 4. O F 4 D 4 D 4 5.4 Schnelle Fourier-Transformation (FFT) TU Bergakademie Freiberg, WS 2011/12
Numerik I 242 Satz 5.15 Seien m gerade, σ die folgende (even/odd) Permutation σ = [0, 2..., m 2, 1, 3,..., m 1] und P = P σ die zugehörige Permutationsmatrix. Dann besitzt die zeilenpermutierte Fourier-Matrix F m die Zerlegung [ ] [ ] [ ] F m/2 F m/2 Fm/2 O Im/2 I m/2 P F m = =. F m/2 D m/2 F m/2 D m/2 O F m/2 D m/2 D m/2 Dabei bezeichnet D m/2 die Diagonalmatrix ( ) D m/2 = diag ζm, 0 ζm, 1..., ζm m/2 1 C (m/2) (m/2) mit ζ m = ω m = exp( 2πi/m). 5.4 Schnelle Fourier-Transformation (FFT) TU Bergakademie Freiberg, WS 2011/12
Numerik I 243 Berechne jetzt y = F m x für ein x C m (m gerade). Wegen der Zerlegung von F m aus Satz 17 unterteilen wir dies in zwei Schritte: 1. Reduktionsschritt: Berechne [ ] Im/2 I m/2 z = x. D m/2 D m/2 Für m = 8: z 0 = x 0 + x 4, z 1 = x 1 + x 5, z 2 = x 2 + x 6, z 3 = x 3 + x 7 z 4 = (x 0 x 4 ), z 5 = (x 1 x 5 )ζ m, z 6 = (x 2 x 6 )ζ 2 m, z 7 = (x 3 x 7 )ζ 3 m (m/2 komplexe Multiplikationen und m komplexe Additionen). 2. Berechne F m/2 z (0 : m/2 1) und F m/2 z (m/2 : m 1) (zwei Fourier-Transformationen der Dimension m/2). 5.4 Schnelle Fourier-Transformation (FFT) TU Bergakademie Freiberg, WS 2011/12
Numerik I 244 Ist m = 2 p eine Potenz von 2, so ist m/2 ebenfalls gerade und die beiden Fourier-Transformationen der Dimension m/2 können auf vier Fourier- Transformationen der Dimension m/4 reduziert werden. Der Aufwand zur Reduktion beträgt 2 m/4 = m/2 komplexe Multiplikationen (und 2 m/2 = m komplexe Additionen). Diese Prozess wird solange fortgesetzt bis man eine Multiplikation mit F m auf m Multiplikationen mit F 1 = [1] reduziert hat (eine Multiplikation mit F 1 erfordert offenbar keinen Aufwand). Dieses Reduktionsverfahren heißt schnelle Fourier-Transformation (FFT = Fast Fourier Transformation). Satz 5.16 Zur Durchführung einer schnellen Fourier-Transformation der Ordnung m = 2 p sind m 2 p = m 2 log 2(m) komplexe Multiplikationen und m log 2 (m) komplexe Additionen erforderlich. 5.4 Schnelle Fourier-Transformation (FFT) TU Bergakademie Freiberg, WS 2011/12
Numerik I 245 Die konventionelle Berechnung einer Fourier-Transformation der Länge m = 2 p durch F m x erfordert also 2 p+1 /p-mal mehr Multiplikationen als ihre Berechnung durch FFT. Wenn z.b. für p = 20 die FFT-Version eine Sekunde benötigt, so benötigt F m x etwa 29 Stunden. Verbleibendes Problem: Bestimmt man y = F m x durch FFT, so erhält man nicht y, sondern einen permutierte Version ỹ = Qy mit einer Permutationsmatrix Q R m m. Es gilt: Besitzt für m = 2 p der Index i {0, 1,..., m 1} die Binärdarstellung i = b p 1 2 p 1 + + b 2 2 2 + b 1 2 + b 0 =: [b p 1... b 2 b 1 b 0 ] 2, und ist r(i) := [b 0 b 1 b 2... b p 1 ] 2 = b 0 2 p 1 + b 1 2 p 2 + b 2 2 p 3 + + b p 1 (bit reversal), dann gelten y i = ỹ r(i) und ỹ i = y r(i). 5.4 Schnelle Fourier-Transformation (FFT) TU Bergakademie Freiberg, WS 2011/12
Numerik I 246 5.5 Eine Anwendung Interpretiere die m Ecken eines Polygons, (x 0, y 0 ),..., (x m 1, y m 1 ), als komplexe Zahlen: f 0 = x 0 + iy 0,..., f m 1 = x m 1 + iy m 1 (i 2 = 1). Das Ergebnis einer diskreten Fourier-Analyse dieser Zahlen [c 0, c 1,..., c m 1 ] = 1 m F m[f 0, f 1,..., f m 1 ] nennt man diskretes komplexes Spektrum des Polygons. Es spiegelt geometrische Eigenschaften des Polygons wider und kann daher zur Klassifikation von Formen (Mustererkennung) verwendet werden. Lage- und größeunabhängig ist das normierte Amplitudenspektrum a k = c k+2 /c 1 (k = 0,..., m 3). 5.5 Eine Anwendung TU Bergakademie Freiberg, WS 2011/12
Numerik I 247 5 4 3 2 1 0 0 1 2 3 4 5 5 4 3 2 1 0 0 1 2 3 4 5 5 4 3 2 1 0 0 1 2 3 4 5 0.5 0.5 0.5 0.4 0.4 0.4 0.3 0.3 0.3 0.2 0.2 0.2 0.1 0.1 0.1 0 10 20 30 0 10 20 30 0 10 20 30 a 1 < a 2, a 2 > a 3 ; a 1 > a 2, a 2 > a 3 ; a 1 > a 2, a 2 < a 3 ; 5.5 Eine Anwendung TU Bergakademie Freiberg, WS 2011/12
Numerik I 248 5 4.5 4 3.5 3 2.5 2 1.5 1 0.5 0.5 0.45 0.4 0.35 0.3 0.25 0.2 0.15 0.1 0.05 Polygon E F H 0 0 1 2 3 0 0 5 10 15 20 25 30 5.5 Eine Anwendung TU Bergakademie Freiberg, WS 2011/12
Numerik I 249 5 4.5 4 3.5 3 2.5 2 1.5 1 0.5 0.5 0.45 0.4 0.35 0.3 0.25 0.2 0.15 0.1 0.05 Polygon E F H 0 0 1 2 3 0 0 5 10 15 20 25 30 5.5 Eine Anwendung TU Bergakademie Freiberg, WS 2011/12
Numerik I 250 5 4.5 4 3.5 3 2.5 2 1.5 1 0.5 0.5 0.45 0.4 0.35 0.3 0.25 0.2 0.15 0.1 0.05 Polygon E F H 0 0 1 2 3 0 0 5 10 15 20 25 30 5.5 Eine Anwendung TU Bergakademie Freiberg, WS 2011/12