Numerik 255 6 Interpolation und numerische Approximation 6.1 Polynominterpolation 6.2 Spline-Interpolation 6.3 Bestapproximation in Innenprodukträumen 6.4 Trigonometrische Interpolation 6.5 Schnelle Fourier-Transformation (FFT) 6.6 Anwendungen der FFT 6.7 Mustererkennung und Rekonstruktion von Signalen 6 Interpolation und numerische Approximation TU Bergakademie Freiberg, WS 2011/12
Numerik 256 6.1 Polynominterpolation Das (allgemeine) Interpolationsproblem: Zu gegebener Funktion f : [a, b] C und gegebenen Stützstellen (Knoten) a x 0 < x 1 < x 2 < < x n b soll eine einfache Funktion p : [a, b] C 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 a f(x)dx näherungsweise zu bestimmen). 6.1 Polynominterpolation TU Bergakademie Freiberg, WS 2011/12
Numerik 257 Das polynomiale Interpolationsproblem: Zu gegebenen (paarweise verschiedenen) Knoten a x 0 < x 1 < x 2 < < x n b und gegebenen Funktionswerten f 0, f 1,..., f n C soll ein Interpolationspolynom p(x) = π n x n + π n 1 x n 1 + + π 1 x + π 0 P n (mit komplexen Koeffizienten π 0, π 1,..., π n, d.h. n + 1 Freiheitsgrade) vom Grad n konstruiert werden, das die n + 1 Interpolationsbedingungen erfüllt. p(x i ) = f i (i = 0, 1,..., n) 6.1 Polynominterpolation TU Bergakademie Freiberg, WS 2011/12
Numerik 258 Satz 6.1. Die polynomiale Interpolationsaufgabe ist eindeutig lösbar. Mit den Lagrange-Grundpolynomen ([JOSEPH LOUIS LAGRANGE (1736 1813)]) 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. 6.1 Polynominterpolation TU Bergakademie Freiberg, WS 2011/12
Numerik 259 Beispiel 1. Daten: (x 0, f 0 ) = ( 1, 1), (x 1, f 1 ) = (0, 1), (x 2, f 2 ) = (2, 2). 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. 3.5 3 2.5 2 1.5 1 0.5 0 0.5 1 1.5 L 0 L 1 L 2 2 1 0 1 2 3 P 6.1 Polynominterpolation TU Bergakademie Freiberg, WS 2011/12
Numerik 260 Die Auswertung der Lagrange-Formel ist aufwendig, wenn ein neues Datenpaar hinzukommt. Eine rekursive Berechnung ist ökonomischer: Lemma 6.2. Für eine beliebige Indexmenge 0 i 0 < i 1 < < i k n bezeichne p i0,i 1,...,i k das (nach Satz 6.1 eindeutig bestimmte) Polynom vom Grad k, das die Bedingungen p i0,i 1,...,i k (x ij ) = f ij (j = 0, 1,..., k) erfüllt. Dann gilt die Rekursionsformel 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. 6.1 Polynominterpolation TU Bergakademie Freiberg, WS 2011/12
Numerik 261 Rechenschema (Algorithmus von Neville-Aitken, [CHARLES WILLIAM NEVILLE ( 1941)]; [ALEXANDER CRAIG AITKEN (1895 1967)] ): 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 ) 6.1 Polynominterpolation TU Bergakademie Freiberg, WS 2011/12
Numerik 262 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). 6.1 Polynominterpolation TU Bergakademie Freiberg, WS 2011/12
Numerik 263 Tableau der dividierten Differenzen von f (vgl. 4.4): 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 f 3,4 mit 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). 6.1 Polynominterpolation TU Bergakademie Freiberg, WS 2011/12
Numerik 264 Satz 6.3. (vgl. Satz 4.7 in 4.4) Mit Hilfe der dividierten Differenzen lässt sich das (nach Satz 6.1 eindeutig bestimmte) Interpolationspolynom p in Newton-Form darstellen. Rechenaufwand: 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 ) Zur Bestimmung der Differenzentafel: 3 2 (n2 + n) Gleitpunktoperationen. Zur Auswertung des Newtonschen Interpolationspolynoms mit dem Horner-Schema ([WILLIAM GEORGE HORNER (1786 1837)]): 3n Gleitpunktoperationen (pro Auswertungspunkt). 6.1 Polynominterpolation TU Bergakademie Freiberg, WS 2011/12
Numerik 265 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. 6.1 Polynominterpolation TU Bergakademie Freiberg, WS 2011/12
Numerik 266 Baryzentrische Interpolationsformeln. Das zu den (paarweise verschiedenen) Interpolationsknoten {x 0, x 1,..., x n } gehörende Knotenpolynom sei definiert durch ω n+1 (x) := (x x 0 )(x x 1 ) (x x n ) P n+1. Definiert man die baryzentrischen Gewichte {w j } n j=0 durch w j := nk=0 k j 1 (x j x k ) = 1 ω n+1 (x, j = 0,..., n, (6.1) j) so gilt für die Lagrange Grundpolynome w j l j (x) = ω n+1 (x), j = 0,..., n, x x j und hiermit lässt sich das Interpolationspolynom darstellen durch die... 6.1 Polynominterpolation TU Bergakademie Freiberg, WS 2011/12
Numerik 267 erste baryzentrische Formel p(x) = ω n+1 (x) n j=0 f j w j x x j. Da die konstante Funktion f 1 exakt interpoliert wird gilt 1 = ω n+1 (x) n j=0 w j x x j, und somit nach Quotientenbildung und Kürzen die zweite baryzentrische Formel n p(x) = j=0 n f j w j x x j w j. j=0 x x j 6.1 Polynominterpolation TU Bergakademie Freiberg, WS 2011/12
Numerik 268 Aufdatierung. Bei Hinzunahme von x n+1 w neu j := w alt j x j x n+1, j = 0,..., n, (2n + 2 Flops). w n+1 aus (6.1), n + 1 weitere Flops, falls x j x n+1 gemerkt werden. Aufwand. Berechnung von {w j } n j=0 erfordert n j=1 3j = 3 2n(n + 1) Flops. Bei gegebenen Gewichten {w j } n j=0 5n + 4 = O(n) Flops. Weitere Vorteile. jede Auswertung von p in weiteren w j hängen nicht von den Daten f j ab, d.h. bei gegebenen Gewichten können beliebige Funktionen f in O(n) Flops interpoliert werden. w j unabhängig von Knotennummerierung (vgl. dividierte Differenzen). 6.1 Polynominterpolation TU Bergakademie Freiberg, WS 2011/12
Numerik 269 Beispiel. Interpolation an äquidistanten Knoten in [a, b] führt auf ( ) n w j = ( 1) j j = 0, 1,..., n j (modulo des gemeinsamen Faktors ( 1)n n! ( n). n b a) 6.1 Polynominterpolation TU Bergakademie Freiberg, WS 2011/12
Numerik 270 Satz 6.4 (Fehler der Polynominterpolation). Die Funktion f C n+1 [a, b] werde durch das Polynom p P n interpoliert an den paarweise verschiedenen Knoten {x 0, x 1,..., x n } [a, b]. Dann gibt es zu jedem x [a, b] ein ξ = ξ(x) (a, b) mit f(x) p(x) = ω 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 ω n+1(t). (6.2) a t b 6.1 Polynominterpolation TU Bergakademie Freiberg, WS 2011/12
Numerik 271 Korollar 6.5. Die Funktion f C [a, b] mit f (n) (x) M x [a, b], n N, (6.3) werde für jedes n N durch das Polynom p n P n an der beliebigen Knotenfolge {x (n) j } n j=0 [a, b] interpoliert. Dann gilt max f(x) p n(x) 0 für n. x [a,b] Die sehr starke Forderung (6.3) ist erfüllt z.b. für e x, sin x, cos x und (natürlich) für Polynome. Bereits für die rationale Funktion f(x) = 1/x mit f (n) (x) = ±n!/x n+1 gilt (6.3) etwa auf dem Intervall [1, 2] schon nicht mehr. 6.1 Polynominterpolation TU Bergakademie Freiberg, WS 2011/12
Numerik 272 Optimale Knoten: Idee (motiviert durch Fehlerabschätzung): Wähle Knoten a x 0 < x 1 < < x n b so, dass max ω 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 ([PAFNUTIĬ L VOVICH TSCHEBYSCHEFF (1821 1894)]) x (T) i = b a 2 ( 2(n i) + 1 cos 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 6.1 Polynominterpolation TU Bergakademie Freiberg, WS 2011/12
Numerik 273 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 6.1 Polynominterpolation TU Bergakademie Freiberg, WS 2011/12
Numerik 274 Beispiel 4.(Runge a -Phänomen b ) Interpoliere an n + 1 äquidistanten Stützstellen f(x) = 1 1 + x 2 ( 5 x 5) (Runge-Funktion) 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 a [CARL DAVID TOLMÉ RUNGE (1856 1927)]. b C. Runge. Über emprirische Funktionen und die Interpolation zwischen äquidistanten Ordinaten. Zeitschrift für Mathematik und Physik 46 (1901) pp. 224 243 6.1 Polynominterpolation TU Bergakademie Freiberg, WS 2011/12
Numerik 275 Beispiel 5. Interpoliere an n + 1 Tschebyscheff-Knoten f(x) = 1 1 + x 2 ( 5 x 5). 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 6.1 Polynominterpolation TU Bergakademie Freiberg, WS 2011/12
Numerik 276 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. 6.1 Polynominterpolation TU Bergakademie Freiberg, WS 2011/12
Numerik 277 Für äquidistante Knoten in [ 5, 5] gilt lim n ω n+1 (z) n+1 = G(z), { } 1 G(z) = exp Re [(z + 5) log(z + 5) (z 5) log(z 5)] 1. 10 2 1 1 i Im 0 x c x c 1 i 2 5 0 5 Re Höhenlinien von G(z), rot gekennzeichnet ist das Niveau von G(±i), welches in ±x c ±3.6333843024 die reelle Achse schneidet. 6.1 Polynominterpolation TU Bergakademie Freiberg, WS 2011/12
Numerik 278 Satz 6.6 (Runge, 1901). Besitzt die Funktion f keine Singularität im Gebiet D ρ := {z C : G(z) G(ρ)}, ρ > 0, so gilt p n (x) f(x) für n gleichmäßig für x [ ρ, ρ]. 6.1 Polynominterpolation TU Bergakademie Freiberg, WS 2011/12
Numerik 279 Eine Anwendung: Numerische Differentiation. Naheliegende Idee, um die n-te Ableitung einer komplizierten Funktion f anzunähern: (1) Bestimme ein Interpolationspolynom p vom Grad n für f. (2) Differenziere p n-mal: p (n) (x) = n! f 0,1,...,n. Beispiele: (a) Knoten: x 0 und x 1 = x 0 + h, d.h. f (x 0 ) p (x 0 ) = 1! f 0,1 = f(x 0 + h) f(x 0 ). h (b) Knoten: x 0 = x 1 h, x 1 und x 2 = x 1 + h, d.h. f (x 1 ) p (x 1 ) = 2! f 0,1,2 = f(x 1 + h) 2f(x 1 ) + f(x 1 h) h 2. 6.1 Polynominterpolation TU Bergakademie Freiberg, WS 2011/12
Numerik 280 Problematik: Numerische Auslöschung. Für f(x) = sinh(x) = 1 2 (ex e x ) approximiere 0.636653582... = f(0.6) = f (0.6) für h = 10 e, e = 1, 2,..., im IEEE-double-Format (Maschinengenauigkeit: eps = 2 52 2.2 10 16 ). f(0.6 h) 2f(0.6) + f(0.6 + h) h 2 e f (0.6) e f (0.6) 1 0.63718430367986 5 0.63665517302525 2 0.63665888761277 6 0.63682392692499 3 0.63665363525534 7 0.64392935428259 4 0.63665358540632 8 2.22044604925031 6.1 Polynominterpolation TU Bergakademie Freiberg, WS 2011/12
Numerik 281 Diskretisierungsfehler 1 12 f (4) (0.6) h 2 1 20 10 2e, Rundungsfehler 4h 2 eps = 4 eps 10 2e. 10 5 10 0 Rundungsfehler optimale Schrittweite 10 5 Fehler 10 10 10 15 10 20 Diskretisierungsfehler 10 8 10 6 10 4 10 2 Schrittweite 6.1 Polynominterpolation TU Bergakademie Freiberg, WS 2011/12
Numerik 282 6.2 Spline-Interpolation Splines sind stückweise Polynome. (Wörtlich: Spezielle biegsame Kurvenlineale, die durch Halterungen gezwungen werden, auf dem Zeichenpapier gegebene Punkte zu verbinden; wurden im Schiffsbau verwendet.) 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. Satz 6.7. Die Menge ST k aller Splines vom Grad k bez. T ist ein (n + k)- dimensionaler linearer Raum. 6.2 Spline-Interpolation TU Bergakademie Freiberg, WS 2011/12
Numerik 283 Im Runge-Beispiel: 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 6.2 Spline-Interpolation TU Bergakademie Freiberg, WS 2011/12
Numerik 284 6.2.1 Lineare Spline-Interpolation Einfachster Fall: k = 1. Ein Spline s vom Grad 1 (linearer Spline) ist charakterisiert durch die beiden Eigenschaften: 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 man einen linearen Spline s ST 1 mit s(x i ) = f i für alle i = 0, 1,..., n. 6.2 Spline-Interpolation TU Bergakademie Freiberg, WS 2011/12
Numerik 285 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 6.2 Spline-Interpolation TU Bergakademie Freiberg, WS 2011/12
Numerik 286 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). 6.2 Spline-Interpolation TU Bergakademie Freiberg, WS 2011/12
Numerik 287 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. 6.2 Spline-Interpolation TU Bergakademie Freiberg, WS 2011/12
Numerik 288 6.2.2 Kubische Spline-Interpolation Gesucht ist ein interpolierender kubischer Spline s S 3 T. Charakteristische Eigenschaften: 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). Fazit: 3(n 1) + (n + 1) = 4n 2 Bedingungen, aber 4n Freiheitsgrade. 6.2 Spline-Interpolation TU Bergakademie Freiberg, WS 2011/12
Numerik 289 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 ([CHARLES HERMITE (1822 1901)]): 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) 6.2 Spline-Interpolation TU Bergakademie Freiberg, WS 2011/12
Numerik 290 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 Funktionswerte f i (i = 0, 1,..., n) darstellen: := s (x i ) und die α 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 ), wobei h i := x i x i 1. M. a. W.: Ein kubischer Spline ist durch die Funktionswerte f i und die Momente µ i (i = 0, 1,..., n) eindeutig bestimmt. 6.2 Spline-Interpolation TU Bergakademie Freiberg, WS 2011/12
Numerik 291 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 (i = 1, 2,..., n 1) und zwei Zusatzgleichungen: f i f i 1 h i (N) µ 0 = 0, µ n = 0, (H) h 1 3 µ 0 + h 1 6 µ 1 = f 1 f 0 f h 0, 1 h n 6 µ n 1 + h n 3 µ n = f n f n f n 1, h n (P) µ 0 = µ n, 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. 6.2 Spline-Interpolation TU Bergakademie Freiberg, WS 2011/12
Numerik 292 Wir definieren allgemein H k = H k (a, b) := { f : [a, b] R :f, f,..., f (k 1) absolutstetig, f (k) ex. f.ü, f (k) L 2 (a, b) } und setzen für f H k, f 2 := ( b a f (x) 2 dx) 1/2. Lemma 6.8. Für f H 2 und s S 3 T gilt f s 2 2 = f 2 2 s 2 2 { n 2 [f (x) s (x)]s (x) b a i=1 [f(x) s(x)]s (x) x i x i 1 + }. 6.2 Spline-Interpolation TU Bergakademie Freiberg, WS 2011/12
Numerik 293 Satz 6.9 (Minimierungseigenschaft kubischer Splines). Ist f H 2 und s ST 3 ein zugehöriger kubischer 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. Interpretation von Satz 6.9. Unter allen Funktionen f H 2 mit f(x i ) = f i, i = 0, 1,..., n minimiert der interpolierende kubische Spline mit einer der Zusatzbedingungen (H), (N) oder (P) näherungsweise die Biegeenergie E B (f) := b a f (x) 2 dx (1 + f (x) 2 ) 3/2 b a f (x) 2 dx. 6.2 Spline-Interpolation TU Bergakademie Freiberg, WS 2011/12
Numerik 294 Im Folgenden werden nur vollständige kubische Splines (Bedingung (H)) betrachtet, analoge Aussagen gelten unter den Bedingungen (N) bzw. (P). Die Momente des vollständigen kubischen Splines 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 (6.4) mit d 0 = f 1 f 0 h 1 f 0, d j = f j+1 f j h j+1 f j f j 1 h j (1 j n), und d n = f n f n f n 1 h n. 6.2 Spline-Interpolation TU Bergakademie Freiberg, WS 2011/12
Numerik 295 Lemma 6.10. F r jede Wahl der Knoten a = x 0 < x 1 < < x n = b ist das Gleichungssystem (6.4) eindeutig lösbar. D.h.: Zu jeder Knotenwahl gibt es genau einen vollständigen kubischen Interpolationsspline f r f. Satz 6.11 (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 M 4 := max a x b f (4) (x) und h max := max 1 i n h i = max 1 i n (x i x i 1 ). 6.2 Spline-Interpolation TU Bergakademie Freiberg, WS 2011/12
Numerik 296 6.3 Bestapproximation in Innenprodukträumen Sei V ein Vektorraum über R oder C mit Innenprodukt (, ). Dann wird durch v := (v, v) 1/2 (v V ) eine Norm auf V definiert. Ist V bez. dieser Norm vollständig, so heisst (V, (, )) ein Hilbert-Raum. Beispiele: 1.) R n (C n ) mit Innenprodukt (x, y) = y x ((x, y) = y H x ) ist ein Hilbert- Raum. (Die vom Innenprodukt induzierte Norm ist die Euklid-Norm.) 2.) l 2 := { x = {x j } j N C : j=0 x i 2 < } mit dem Innenprodukt (x, y) = j=1 x jy j ist ein Hilbert-Raum. 3.) C := { x = {x j } j N l 2 : x j = 0 bis auf endlich viele j } mit dem Innenprodukt (x, y) = j=1 x jy j ist kein Hilbert-Raum. 4.) C n n mit dem Innenprodukt (A, B) = tr(b H A) ist ein Hilbert-Raum. (Die vom Innenprodukt induzierte Norm ist die Frobenius-Norm.) 5.) L 2 (a, b) = {f : [a, b] C : b a f(x) 2 dx < } mit dem Innenprodukt (f, g) = b f(x)g(x)dx ist ein Hilbert-Raum. a 6.3 Bestapproximation in Innenprodukträumen TU Bergakademie Freiberg, WS 2011/12
Numerik 297 Approximationsaufgabe: Sei U ein endlich-dimensionaler Teilraum des Innenproduktraums V und v V. Bestimme u = u (v) U mit u v < u v für alle u U, u u. u heißt die Bestapproximation an v aus U. Erinnerung. Sei U ein endlich-dimensionaler Teilraum des Innenproduktraums V. Dann ist die Orthogonalprojektion auf U P : V U definiert durch { v v U, P v = 0 v U. Ist {u 1, u 2,..., u n } eine Orthonormalbasis von U, so gilt P v = (v, u 1 )u 1 + (v, u 2 )u 2 + + (v, u n )u n für alle v V. 6.3 Bestapproximation in Innenprodukträumen TU Bergakademie Freiberg, WS 2011/12
Numerik 298 Satz 6.12. Sei U ein endlich-dimensionaler Teilraum des Innenproduktraums V, P die Orthogonalprojektion auf U und v V. Dann ist die Bestapproximation u aus U an v gegeben durch u = P v. Die Bestapproximation ist eindeutig bestimmt und charakterisiert durch u v U. Ist {u 1, u 2,..., u n } eine Orthonormalbasis von U, so gelten u = n (v, u j )u j und u = j=1 ( n ) 1/2 (v, u j ) 2 v j=1 sowie u v 2 = v 2 u 2. 6.3 Bestapproximation in Innenprodukträumen TU Bergakademie Freiberg, WS 2011/12
Numerik 299 Beispiel. Die Bestapproximation an A R n n aus dem Unterraum der symmetrischen Matrizen (bez. der Frobenius-Norm) ist A S := 1 2 (A + A ) (der symmetrische Anteil von A). Beispiel. Der Raum T n der trigonometrischen Polynome vom Grad n definiert durch T n := span{e ikt : k = 0, ±1,..., ±n} L 2 (0, 2π), (Bezeichnung: i 2 = 1) besitzt die Dimension 2n + 1. Die Funktionen { 1 2π e ikt } n k= n bilden eine ON-Basis von T n. Die Bestapproximation an f L 2 (0, 2π) aus T n ist also u n(t) = n k= n a k e ikt mit a k = 1 2π 2π 0 f(t)e ikt dt. 6.3 Bestapproximation in Innenprodukträumen TU Bergakademie Freiberg, WS 2011/12
Numerik 300 Bemerkung. Im Fall von a k = a k, k = 0, 1,..., n, (z.b. wenn f reellwertig ist) folgt mit α 0 = 2a 0, α k = 2 Re(a k ), β k = 2 Im(a k ) (k = 1, 2,..., n). Dies folgt aus u n(t) = u n(t) = α n 0 2 + [ αk cos(kt) + β k sin(kt) ] n k= n = a 0 + k=1 a k e ikt = a 0 + n a k e ikt + k=1 n a k e ikt k=1 n ( ak [cos(kt) + i sin(kt)] + a k [cos(kt) i sin(kt)] ) k=1 = a }{{} 0 + =: α 0 2 n [ 2 Re(ak ) cos(kt) 2 Im(a k ) }{{}}{{} =:α k k=1 =:β k ] sin(kt). 6.3 Bestapproximation in Innenprodukträumen TU Bergakademie Freiberg, WS 2011/12
Numerik 301 6.4 Trigonometrische Interpolation Seien f 0, f 1,..., f m 1 R und x j := 2πj/m (j = 0, 1,..., m 1), d.h. x 0 < x 1 < < x m 1 sind äquidistante Knoten aus [0, 2π). Gesucht ist ein reelles trigonometrisches Polynom vom Grad n, t n (x) = α n 0 2 + [ αk cos(kx) + β k sin(kx) ], k=1 das die m Interpolationsbedingungen t n (x j ) = f j (j = 0, 1,..., m 1) (6.5) erfüllt. Hierbei ist n = { m 2 falls m gerade, m 1 2 falls m ungerade. 6.4 Trigonometrische Interpolation TU Bergakademie Freiberg, WS 2011/12
Numerik 302 Transformation auf den (komplexen) Einheitskreis: φ : [0, 2π) T := {z C : z = 1}, x z = e ix = cos x + i sin x. Die Knoten x j gehen ber in die m-ten Einheitswurzeln: φ(x j ) = e 2πij/m = [e 2πi/m ] j = ωm j (j = 0, 1,..., m 1) mit ω m := e 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. 6.4 Trigonometrische Interpolation TU Bergakademie Freiberg, WS 2011/12
Numerik 303 ] ] ] ] R 2 [ αk β k = i [ 1 1 i ] [ ak a k = [ ak + a k i(a k a k ) = [ 2 Re(ak ) 2 Im(a k ), so folgt t n (x) = n a k e 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 ) ist die trigonometrische Interpolationsaufgabe hiermit zurückgeführt auf eine (gewohnliche) Interpolationsaufgabe für (algebraische) Polynome. 6.4 Trigonometrische Interpolation TU Bergakademie Freiberg, WS 2011/12
Numerik 304 Satz 6.13. Zu beliebig vorgegebenen paarweise verschiedenen Knoten x 0, x 1,..., x 2n [0, 2π) und zu beliebigen 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 6.14. 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). 6.4 Trigonometrische Interpolation TU Bergakademie Freiberg, WS 2011/12
Numerik 305 Satz 6.15. Das komplexe (algebraische) Interpolationspolynom p m 1 (z) = m 1 k=0 c k z k P m 1 mit p m 1 (ω j m) = f j C c k = 1 m m 1 j=0 (j = 0, 1,..., m 1) besitzt die Koeffizienten f j ω kj m, k = 0, 1,..., m 1. (6.6) In Matrix-Vektor-Schreibweise c 0 c 1. c m 1 = 1 m F m f 0 f 1. f m 1 6.4 Trigonometrische Interpolation TU Bergakademie Freiberg, WS 2011/12
Numerik 306 mit der Fourier-Matrix 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. Mit den Bezeichnungen aus Satz 6.15 minimiert das abgeschnittene Interpolationspolynom p m,d (z) := c 0 + c 1 z + + c d z d, 0 d m 1, unter allen Polynomen q P d die Fehlerquadratsumme zur Interpolationsvorschrift: m 1 j=0 f j p m,d (ω j m) 2 < m 1 j=0 f j q(ω j m) 2 für alle q P d, q p m,d. 6.4 Trigonometrische Interpolation TU Bergakademie Freiberg, WS 2011/12
Numerik 307 Satz 6.16. 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) = α n 0 2 + [ α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 gegeben durch α k = 2 m m 1 j=0 f j cos 2πjk m bzw. β k = 2 m m 1 j=0 f j sin 2πjk m, (k = 0, 1,..., n). Im Fall m = 2n muss β n = 0 gesetzt und α n halbiert werden. 6.4 Trigonometrische Interpolation TU Bergakademie Freiberg, WS 2011/12
Numerik 308 6.5 Schnelle Fourier-Transformation (FFT) Seien {ω j m} m 1 j=0 die m-ten Einheitswurzeln, (ω m := e 2πi/m ). Wir unterscheiden zwei grundlegende Aufgabenstellungen: Diskrete Fourier-Analyse: Bestimme zu vorgegebenen Funktionswerten f 0,..., f m 1 C die Koeffizienten c 0,..., c m 1 des Interpolationspolynoms p(z) = m 1 j=0 c j z j mit p(ω j m) = f j (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 6.5 Schnelle Fourier-Transformation (FFT) TU Bergakademie Freiberg, WS 2011/12
Numerik 309 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 H m (= F m ) C m m. 6.5 Schnelle Fourier-Transformation (FFT) TU Bergakademie Freiberg, WS 2011/12
Numerik 310 Lemma 6.17. Für die Fourier-Matrix F m gelten: = [ω kj m ] 0 k,j m 1 C m m (a) F m = F m (aber F H m F m für m > 2!), (b) F H m F m = mi m, d.h. die Spalten von F m sind orthogonal und besitzen alle die Euklid-Norm m. (c) F 1 m = 1 m F H m = 1 m F 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 naive Berechnung einer Fourier-Transformation (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 m) a a James William Cooley( 1926) and John Wilder Tukey (1915 2000): An algorithm for the machine calculation of complex Fourier series, Math. Comp. 19, 297 301 (1965). 6.5 Schnelle Fourier-Transformation (FFT) TU Bergakademie Freiberg, WS 2011/12
Numerik 311 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 ( ) ( ) 2π 2π ζ m := ω m = e 2πi/m = cos i sin, m m so dass F m = [ζ kj m ] 0 k,j m 1. Außerdem sei m gerade. 6.5 Schnelle Fourier-Transformation (FFT) TU Bergakademie Freiberg, WS 2011/12
Numerik 312 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 6.5 Schnelle Fourier-Transformation (FFT) TU Bergakademie Freiberg, WS 2011/12
Numerik 313 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 6.5 Schnelle Fourier-Transformation (FFT) TU Bergakademie Freiberg, WS 2011/12
Numerik 314 Jetzt nummerieren 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 6.5 Schnelle Fourier-Transformation (FFT) TU Bergakademie Freiberg, WS 2011/12
Numerik 315 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 6.5 Schnelle Fourier-Transformation (FFT) TU Bergakademie Freiberg, WS 2011/12
Numerik 316 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 6.5 Schnelle Fourier-Transformation (FFT) TU Bergakademie Freiberg, WS 2011/12
Numerik 317 Satz 6.18. 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 = e 2πi/m. 6.5 Schnelle Fourier-Transformation (FFT) TU Bergakademie Freiberg, WS 2011/12
Numerik 318 Berechne jetzt y = F m x für ein x C m (m gerade). Gemäß der Zerlegung von F m aus Satz 6.18 unterteilen wir dies in zwei Schritte: 1. Reduktionsschritt: Berechne [ ] Im/2 I m/2 z = x. D m/2 D m/2 Im Fall m = 8 ergibt sich: 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. Teilprobleme: 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). 6.5 Schnelle Fourier-Transformation (FFT) TU Bergakademie Freiberg, WS 2011/12
Numerik 319 Ist m = 2 p eine Zweierpotenz, 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 Transform). Satz 6.19. 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. 6.5 Schnelle Fourier-Transformation (FFT) TU Bergakademie Freiberg, WS 2011/12
Numerik 320 Die naive 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 zunächst eine permutierte Version ỹ = Qy von y 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). 6.5 Schnelle Fourier-Transformation (FFT) TU Bergakademie Freiberg, WS 2011/12
Numerik 321 6.6 Anwendungen der FFT Schnelle Berechnung einer Faltung: Sei S m := { x = {..., x 0, x 1,..., x m 1,...} : x j C } der Raum der doppelseitigen m-periodischen Folgen. S m ist isomorph zum C m. Auf S m sind zwei Multiplikationen definiert: Hadamard-Produkt: [x y] k = x k y k, Faltung oder Cauchy-Produkt: [x y] k = Lemma 6.20 (Faltungssatz). Für x, y S m gelten F m (x y) = (F m x ) (F m y), m F m (x y) = (F m x ) (F m y). m 1 j=0 x j y k j. 6.6 Anwendungen der FFT TU Bergakademie Freiberg, WS 2011/12
Numerik 322 Ist m = 2 p, so kann die Faltung wegen x y = F 1 m [(F m x ) (F m y)] = 1 m F m [(F m x ) (F m y)] durch drei FFT s, also mit m(1.5 log 2 (m) + 1) komplexen Multiplikationen, bestimmt werden (konventionelle Berechnung erfordert m 2 Multiplikationen). Dies wird zur Multiplikation großer ganzer Zahlen und zur Multiplikation von Polynomen eingesetzt. 6.6 Anwendungen der FFT TU Bergakademie Freiberg, WS 2011/12
Numerik 323 Eine Matrix A C m m heißt zirkulant, wenn sie die Form A = circul(a 0,..., a m 1 ) = besitzt. a 0 a 1 a m 2 a m 1 a m 1 a 0 a m 3 a m 2....... a 2 a 3 a 0 a 1 a 1 a 2 a m 1 a 0 6.6 Anwendungen der FFT TU Bergakademie Freiberg, WS 2011/12
Numerik 324 Lemma 6.21. Mit Hilfe der (zirkulanten) Shiftmatrix S m := circul(0, 1, 0..., 0) C m m kann jede zirkulante Matrix A = circul(a 0, a 1,..., a m 1 ) in der Form A = p(s m ) = a 0 I m + a 1 S m + a 2 S 2 m + a m 1 S m 1 m, d.h. als Polynom in S m, geschrieben werden. Die Eigenwerte λ j von A sind deshalb durch gegeben. λ j = p ( ω j m) = p (exp (2πij/m)) (j = 0, 1,..., m 1) v j = ist ein zugehöriger Eigenvektor. [ ] ωm, 0 ωm, j ωm 2j,..., ω m (m 1)j 6.6 Anwendungen der FFT TU Bergakademie Freiberg, WS 2011/12
Numerik 325 Lemma 6.22. Seien a = [a 0, a 1,..., a m 1 ] C m, A = circul(a) und x C m. Dann ist A x = a x. Satz 6.23. Seien a, b C m und A = circul(a). Dann gelten: (a) det(a) 0 alle Komponenten von F m a sind von 0 verschieden. (b) Das LGS A x = b ist genau dann lösbar, wenn [F m a] j = 0 stets [F m b] j = 0 impliziert (j = 0, 1,..., m 1). (c) Ist A x = b lösbar, so gilt für jede Lösung x : [F m x ] j = [F m b] j /[F m a] j für alle j {0, 1,..., m 1} mit [F m a] j 0. Ist [F m a] j = 0 (und folglich [F m b] j = 0), so kann [F m x ] j beliebig gewählt werden. 6.6 Anwendungen der FFT TU Bergakademie Freiberg, WS 2011/12
Numerik 326 Mit Hilfe der FFT kann das Produkt einer zirkulanten Matrix der Dimension m mit einem Vektor also in nur m(1.5 log 2 (m) + 1) komplexen Multiplikationen berechnet werden (vgl. Lemma 6.22). Darüberhinaus kann ein m-dimensionales lineares Gleichungssystem A x = b mit einer zirkulanten Koeffizientenmatrix A, A = circul(a), i.w. durch 3 FFT s (in ebenfalls m(1.5 log 2 (m) + 1) komplexen Multiplikationen) gelöst werden (vgl. Satz 6.23): Ist A invertierbar, so gilt A b = 1 m F m ((F m b)./ (F m a)), wobei./ komponentenweise Division bezeichnet. 6.6 Anwendungen der FFT TU Bergakademie Freiberg, WS 2011/12
Numerik 327 6.7 Mustererkennung und Rekonstruktion von Signalen 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ößenunabhängig ist das normierte Amplitudenspektrum a k = c k+2 /c 1 (k = 0,..., m 3). 6.7 Mustererkennung und Rekonstruktion von Signalen TU Bergakademie Freiberg, WS 2011/12
Numerik 328 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 ; 6.7 Mustererkennung und Rekonstruktion von Signalen TU Bergakademie Freiberg, WS 2011/12
Numerik 329 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 6.7 Mustererkennung und Rekonstruktion von Signalen TU Bergakademie Freiberg, WS 2011/12
Numerik 330 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 6.7 Mustererkennung und Rekonstruktion von Signalen TU Bergakademie Freiberg, WS 2011/12
Numerik 331 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 6.7 Mustererkennung und Rekonstruktion von Signalen TU Bergakademie Freiberg, WS 2011/12
Numerik 332 Gegeben: Signal f (Dimension m = 1024), k = 8 (16, 32). Aufgabe: Unterlege f mit Rauschen, bestimme die k groessten Fourier-Koeffizienten und rekonstruiere aus diesen das Signal. f_rausch = f +.1*randn(size(f)); c = fft(f_rausch); [ignore,j] = sort(abs(c)); ind = [m-k+1:m]; c_compr = zeros(size(c)); c_compr(j(ind)) = c(j(ind)); recon = ifft(c_compr); 6.7 Mustererkennung und Rekonstruktion von Signalen TU Bergakademie Freiberg, WS 2011/12
Numerik 333 10 Signal 10 Signal (verrauscht) 5 5 0 0 5 5 10 0 200 400 600 800 1000 10 0 200 400 600 800 1000 Rekonstruktion mit 8 Fourier Koeffizienten 10 4 Fehler 5 3 0 2 5 1 10 0 200 400 600 800 1000 0 0 200 400 600 800 1000 6.7 Mustererkennung und Rekonstruktion von Signalen TU Bergakademie Freiberg, WS 2011/12
Numerik 334 10 Signal 10 Signal (verrauscht) 5 5 0 0 5 5 10 0 200 400 600 800 1000 10 0 200 400 600 800 1000 Rekonstruktion mit 16 Fourier Koeffizienten 10 5 0 5 0.7 0.6 0.5 0.4 0.3 0.2 0.1 Fehler 10 0 200 400 600 800 1000 0 0 200 400 600 800 1000 6.7 Mustererkennung und Rekonstruktion von Signalen TU Bergakademie Freiberg, WS 2011/12
Numerik 335 10 Signal 10 Signal (verrauscht) 5 5 0 0 5 5 10 0 200 400 600 800 1000 10 0 200 400 600 800 1000 Rekonstruktion mit 32 Fourier Koeffizienten 10 5 0 0.4 0.3 0.2 Fehler 5 0.1 10 0 200 400 600 800 1000 0 0 200 400 600 800 1000 6.7 Mustererkennung und Rekonstruktion von Signalen TU Bergakademie Freiberg, WS 2011/12