Mathematik II/2 Numerik

Ähnliche Dokumente
5 Interpolation und numerische Approximation

6 Interpolation und numerische Approximation

6 Interpolation und numerische Approximation

2 Gleitpunktarithmetik und Fehleranalyse

8 Interpolation. 8.1 Problemstellung. Gegeben: Diskrete Werte einer Funktion f : R R an n + 1 Stützstellen. x 0 < x 1 <... < x n.

1 2 x x x x x x2 + 83

(x x j ) R m [x] (3) x x j x k x j. R m [x]. (4)

Beispiel für eine periodische Spline-Interpolationsfunktion: Wir betrachten f(x) = sin(πx) und geben die folgenden Stützstellen und Stützwerte vor:

KAPITEL 8. Interpolation

Computergestützte Mathematik zur Linearen Algebra

Numerik für Ingenieure I Wintersemester 2008

Klassische Polynom Interpolation.

Institut für Geometrie und Praktische Mathematik

Numerische Lineare Algebra

6 Polynominterpolation

H.J. Oberle Analysis II SoSe Interpolation

6. Polynom-Interpolation

Kurztest zur Numerik I WiR AG, Dep. Mathematik, NT-Fakultät, Universität Siegen

Polynominterpolation. Allgemeines Problem: Beispiel 1 (Teil 1):

Kapitel 4: Interpolation Sei U eine Klasse von einfach strukturierten Funktionen, z.b.

Numerik für Informatiker, Elektrotechniker und Naturfreunde von Michael Lehn

1 Grundlagen der Numerik

5 Interpolation und Approximation

T n (1) = 1 T n (cos π n )= 1. deg T n q n 1.

VF-2: 2. Es seien x = 1 3 und y = π Bei der Berechnung von sin(x) sin(y) in M(10, 12, 99, 99) tritt. Auslöschung auf.

Numerische Mathematik

Rundungsfehler-Problematik bei Gleitpunktzahlen

1. Rechnerzahlen, Kondition, Stabilität

Übungsblatt 1 Musterlösung

Institut für Geometrie und Praktische Mathematik

bekannt Analog reduzieren wir die Randwerte im 2d-System. Man erhält dann eine Blocktridia-

Numerische Integration und Differentiation

Numerische Verfahren und Grundlagen der Analysis

Computer-orientierte Mathematik

Kapitel 1: Fehleranalyse, Kondition, Stabilität

Institut für Geometrie und Praktische Mathematik

Multiplikationen und Divisionen Hauptarbeit des Algorithmus liegt somit in der Berechnung der LR-Zerlegung. (n 1)n(2n 1) 6. = n3 3 n2.

3 Numerisches Rechnen

Technische Numerik Einführung

Numerische Verfahren und Grundlagen der Analysis

Numerische Mathematik

KLAUSUR zur Numerik I mit Lösungen. Aufgabe 1: (10 Punkte) [ wahr falsch ] 1. Die maximale Ordnung einer s-stufigen Quadraturformel ist s 2.

VF-3: Gegeben seien die Daten f(x 0 ), f(x 1 ),..., f(x n ) mit x 0,..., x n paarweise verschiedenen und

Numerische Verfahren

Darstellung rationaler und reeller Zahlen Vorlesung vom

Numerisches Programmieren, Übungen

Numerik für Informatiker

Division mit Schulmethode

5 Numerische Mathematik

Institut für Geometrie und Praktische Mathematik

Interpolation. Heinrich Voss. TUHH Heinrich Voss Kapitel / 49.

3 Rechnerarithmetik und Rundungsfehler

7. Übungs-/Wiederholungsblatt zu Einführung in die Numerik (SS 2012)

c) Realisierung des Gauß Algorithmus in Gleitpunktarithmetik: Fehlerschranke hängt linear ab von max i,k l ik. 8n 3 max i,j,k a (k) ij ε.

Musterlösung zum Übungsblatt Interpolation nach Newton, Nevill, Lagrange.

Kardinalfunktionen. Florian Badt. 2. Juni Universität des Saarlandes, Saarbrücken

3 Rechnerarithmetik und Rundungsfehler

Approximation durch Polynome

Lösung der Diplom-Vorprüfung Höhere Mathematik III/IV Aufgabe N1 (LR-Zerlegung mit Pivotisierung) Gegeben seien R 3.

8 Polynominterpolation

Diplom VP Numerik 27. August 2007

(x x j ) x [a,b] n! j=0

Begleitmaterial zur Vorlesung Numerik I

12.2 Gauß-Quadratur. Erinnerung: Mit der Newton-Cotes Quadratur. I n [f] = g i f(x i ) I[f] = f(x) dx

Diskrete Fourier-Transformation Stefanie Dourvos Institut für Informatik FU Berlin

Numerische Mathematik I: Grundlagen

KAPITEL 2. Fehleranalyse: Kondition, Rundungsfehler, Stabilität. Datenfehler. Dahmen-Reusken Kapitel 2 1

19. Januar Universität Erlangen-Nürnberg Department Mathematik PD Dr. Markus Bause. . Danach liefert die Gauss-Elinination. .

Computer-orientierte Mathematik

D-MAVT NUMERISCHE MATHEMATIK FS 14 K. Nipp, A. Hiltebrand Lösung vom Test 2

Approximation von Funktionen

Einführung in die numerische Mathematik

Numerik für Ingenieure I Wintersemester 2008

Grundlagen Kondition Demo. Numerisches Rechnen. (für Informatiker) M. Grepl P. Esser & G. Welper & L. Zhang

Begleitmaterial zur Vorlesung Numerik II

Orthogonalpolynome Einführung, Eigenschaften und Anwendungen

Die Interpolationsformel von Lagrange

Inhalt Kapitel IV: Interpolation

eps für alle x D. 4. Die Zahl 256 ist in M(2, 4, 6, 6) exakt darstellbar.

Klausur Numerische Mathematik (für Elektrotechniker), 24. Februar 2016

Die Interpolationsaufgabe besteht darin, eine (einfache) Funktion u n U n zu finden,

Interpolation und Integration mit Polynomen


Numerische Methoden. Thomas Huckle Stefan Schneider. Eine Einführung für Informatiker, Naturwissenschaftler, Ingenieure und Mathematiker.

Original - d.h. unvertauschte Reihenfolge

Polynominterpolation

1. Rechnerarithmetik und. Rundungsfehler

Lösungsvorschlag zur Modulprüfung Numerische Methoden Sommersemester 2016

Einführung in die Numerik

Diskrete und Schnelle Fourier Transformation. Patrick Arenz

MODULPRÜFUNG MODUL MA 1302 Einführung in die Numerik

Karteikarten, Analysis 2, Sätze und Definitionen nach der Vorlesung von PD Hanke

Besonderheiten des Numerischen Rechnens

ZWEITE KLAUSUR zur Numerik I mit Lösungen. Bitte folgende Angaben ergänzen und DEUTLICH LESBAR in Druckbuchstaben schreiben:

Panorama der Mathematik und Informatik

Klausur zur Vordiplom-Prüfung

3.5 Schnelle Fouriertransformation (FFT, DFT)

Interpolationsproblem. Interpolation. Interpolationsproblem. Interpolationsproblem. Gegeben seien eine Funktion. Φ (x; a 1,...

Transkript:

Mathematik II/2 Numerik Oliver Ernst Professur Numerische Mathematik Sommersemester 2013

Inhalt 1 Einleitung 2 Computer-Arithmetik und Fehleranalyse 2.1 Ein Beispiel 2.2 Gleitpunktzahlen 2.3 Rundung 2.4 Gleitpunktarithmetik 2.5 Numerische Stabilität und Fehleranalyse 3 Schnelle Fourier-Transformation 3.1 Vorbemerkungen 3.2 Überblick Fourier-Analyse 3.3 Die diskrete Fourier-Transformation 3.4 Interpolation 3.5 Trigonometrische Interpolation 3.6 Die FFT 4 Abschließende Bemerkungen Oliver Ernst (Numerische Mathematik) Mathematik II/2: Numerik Sommersemester 2013 2 / 90

Inhalt 1 Einleitung 2 Computer-Arithmetik und Fehleranalyse 2.1 Ein Beispiel 2.2 Gleitpunktzahlen 2.3 Rundung 2.4 Gleitpunktarithmetik 2.5 Numerische Stabilität und Fehleranalyse 3 Schnelle Fourier-Transformation 3.1 Vorbemerkungen 3.2 Überblick Fourier-Analyse 3.3 Die diskrete Fourier-Transformation 3.4 Interpolation 3.5 Trigonometrische Interpolation 3.6 Die FFT 4 Abschließende Bemerkungen Oliver Ernst (Numerische Mathematik) Mathematik II/2: Numerik Sommersemester 2013 3 / 90

Numerik Begriffliches Numerik, numerische Mathematik, numerical analysis Teilgebiet der angewandten Mathematik Aufgabe der Numerik ist die Konstruktion und Analyse von Algorithmen zur Lösung mathematischer Probleme. Diese Probleme stammen ursprünglich aus Technik, Naturwissenschaften, Sozial- oder Wirtschaftswissenschaften, liegen aber in mathematischer Form, z.b. als Gleichungssystem, Differentialgleichung oder Optimierungsproblem vor. In den kommenden 3 Vorlesungen: drei Beispiele für numerische Verfahren für mathematische Grundaufgaben. Zuvor: Versuch einer Definition... the theory of constructive methods of mathematical analysis. Peter Henrici, Elements of Numerical Analysis Oliver Ernst (Numerische Mathematik) Mathematik II/2: Numerik Sommersemester 2013 4 / 90

Numerik Trefethen s Essay Essay von L. N. Trefethen (Oxford University) Computer spielen wichtige Rolle, aber keine bloße Formelauswertung. Algorithmen: Berechnungsmethoden zur Lösung mathematischer Aufgaben. Endlich vielen Schritte lineare Gleichungssysteme lineare Programmierung Problem des Handlungsreisenden Unendlich viele Schritte, in jedem Schritt genauer Eigenwerte einer Matrix Minimierung multivariater Funktionen Bestimmtes Integral Lösung von Differentialgleichungen Fehleranalyse erforderlich, macht aber (entgegen landläufige Vorurteile) geringen Teil der Numerik aus. Oliver Ernst (Numerische Mathematik) Mathematik II/2: Numerik Sommersemester 2013 5 / 90

Inhalt 1 Einleitung 2 Computer-Arithmetik und Fehleranalyse 2.1 Ein Beispiel 2.2 Gleitpunktzahlen 2.3 Rundung 2.4 Gleitpunktarithmetik 2.5 Numerische Stabilität und Fehleranalyse 3 Schnelle Fourier-Transformation 3.1 Vorbemerkungen 3.2 Überblick Fourier-Analyse 3.3 Die diskrete Fourier-Transformation 3.4 Interpolation 3.5 Trigonometrische Interpolation 3.6 Die FFT 4 Abschließende Bemerkungen Oliver Ernst (Numerische Mathematik) Mathematik II/2: Numerik Sommersemester 2013 6 / 90

Inhalt 1 Einleitung 2 Computer-Arithmetik und Fehleranalyse 2.1 Ein Beispiel 2.2 Gleitpunktzahlen 2.3 Rundung 2.4 Gleitpunktarithmetik 2.5 Numerische Stabilität und Fehleranalyse 3 Schnelle Fourier-Transformation 3.1 Vorbemerkungen 3.2 Überblick Fourier-Analyse 3.3 Die diskrete Fourier-Transformation 3.4 Interpolation 3.5 Trigonometrische Interpolation 3.6 Die FFT 4 Abschließende Bemerkungen Oliver Ernst (Numerische Mathematik) Mathematik II/2: Numerik Sommersemester 2013 7 / 90

Einführendes Beispiel Berechnung von π π = Umfang eines Kreises mit Radius r = 1 2, U n = Umfang eines einbeschriebenen regelmäßigen n-ecks = n sin(π/n). y (cos(2π/n)/2, sin(2π/n)/2) x 1/2 Klar: lim U n = lim n sin π n n n = π (unbrauchbar!) Oliver Ernst (Numerische Mathematik) Mathematik II/2: Numerik Sommersemester 2013 8 / 90

Einführendes Beispiel Berechnung von π: Ein Algorithmus Setze Dann gelten: A n := U 2 n (Umfang des regelmäßigen 2 n -Ecks). ( A 2 = U 4 = 4 1 2 ( 2) + 1 2 2) = 2 2, [ ] 2 A n+1 = 2 n An 2 1 1, n = 2, 3,..., d.h. wir können A n+1 aus A n rekursiv berechnen. 2 n [Archimedes von Syrakus, 287 212 v. Chr.]: A 3 = 3.06..., A 4 = 3.12..., A 5 = 3.14.... Oliver Ernst (Numerische Mathematik) Mathematik II/2: Numerik Sommersemester 2013 9 / 90

Einführendes Beispiel Berechnung von π: Eine Fehlerabschätzung Zunächst gilt für h > 0: sin(h) h h3 6 (Taylorformel). Setze h = π/n (und multipliziere mit N): D.h. (mit N = 2 n ): N sin(π/n) π π3 6 N 2. A n π π3 6 4 n (< 10 10 für n 18). Auf zum Rechner... Oliver Ernst (Numerische Mathematik) Mathematik II/2: Numerik Sommersemester 2013 10 / 90

Einführendes Beispiel Berechnung von π: Ernüchterung 10 0 10 5 10 10 10 15 Fehler A n π Fehlerschranke π 3 /(6 x (4 n+1 )) 5 10 15 20 25 30 Die berechnete Folge {A n } verhält sich völlig anders als die wirkliche Folge {A n }! Wie ist das möglich? Oliver Ernst (Numerische Mathematik) Mathematik II/2: Numerik Sommersemester 2013 11 / 90

Inhalt 1 Einleitung 2 Computer-Arithmetik und Fehleranalyse 2.1 Ein Beispiel 2.2 Gleitpunktzahlen 2.3 Rundung 2.4 Gleitpunktarithmetik 2.5 Numerische Stabilität und Fehleranalyse 3 Schnelle Fourier-Transformation 3.1 Vorbemerkungen 3.2 Überblick Fourier-Analyse 3.3 Die diskrete Fourier-Transformation 3.4 Interpolation 3.5 Trigonometrische Interpolation 3.6 Die FFT 4 Abschließende Bemerkungen Oliver Ernst (Numerische Mathematik) Mathematik II/2: Numerik Sommersemester 2013 12 / 90

Gleitpunktzahlen Gleitpunktzahlen sind rationale Zahlen der Form ±. d 1 d 2 d 3... d t b e, wobei b N (b > 1) Basis,. d 1 d 2 d 3... d t Mantisse (zur Basis b) und t N Mantissenlänge genannt werden. Die Ziffern d 1, d 2, d 3,..., d t sind ganze Zahlen, die zwischen 0 und b 1 liegen. Der Exponent e ist eine ganze Zahl, die zwischen m und M liegt. Z.B. ist x =. 10101 2 1 eine Gleitpunktzahl zur Basis 2 mit dem Wert ( 1 2 1 + 0 2 2 + 1 2 3 + 0 2 4 + 1 2 5) 2 1 = 21 64 = 0.328125. Gebräuchliche Basiswerte sind b = 2 (fast alle Computer), b = 10 (die Standardbasis des täglichen Lebens ) und b = 16 (IBM-Mainframes). Oliver Ernst (Numerische Mathematik) Mathematik II/2: Numerik Sommersemester 2013 13 / 90

Gleitpunktzahlen IEEE Formate Der IEEE-Standard (IEEE = Institute of Electrical and Electronics Engineers), der auf fast allen Maschinen realisiert ist, rechnet mit der Basis b = 2 und erlaubt i.w. zwei Datenformate: Single (FORTRAN: REAL*4, C: float) = 1 Wort = 32 bits, ± Exp. Mantisse 0 1 9 31 also 1 bit für das Vorzeichen der Mantisse, 8 bits für den Exponenten, der zwischen 1 2 7 = 127 und 2 7 = 128 liegt, und 23 bits für die Mantisse (ohne Vorzeichen). Die Potenzen 2 e decken also den Bereich von 2 127 5 10 39 bis 2 128 3 10 38 ab. Der kleinste positive Wert der Mantisse ist 2 23 1.2 10 7. Oliver Ernst (Numerische Mathematik) Mathematik II/2: Numerik Sommersemester 2013 14 / 90

Gleitpunktzahlen IEEE Formate Double (FORTRAN: REAL*8, C: double) = 2 Worte = 64 bits, ± exp. man- tisse 0 1 12 32 63 1 bit für das Vorzeichen der Mantisse, 11 bits für den Exponenten und 52 bits für die Mantisse. Die Potenzen 2 e bewegen sich folglich zwischen 2 1 210 1.1 10 308 und 2 210 1.7 10 308. Der kleinste positive Mantissenwert ist 2 52 2.2 10 16. Drei weitere IEEE- Zahlen : NAN (not a number), z.b. 1/0 = INF, 1/0 = INF ± INF (± ), z.b. 0/0 = NAN. Oliver Ernst (Numerische Mathematik) Mathematik II/2: Numerik Sommersemester 2013 15 / 90

Gleitpunktzahlen Beispielsystem Normalisierte Gleitpunktzahl = erste Ziffer der Mantisse ungleich 0. Beispiel: Basis = 2, Mantissenlänge = 4, Exponentenlänge = 3. Das bedeutet: Acht Exponenten: -3, -2, -1, 0, 1, 2, 3, 4. Acht (normalisierte) Mantissen: 0.1000 ˆ= 0.5, 0.1001 ˆ= 0.5625, 0.1010 ˆ= 0.6250, 0.1011 ˆ= 0.6875, 0.1100 ˆ= 0.7500, 0.1101 ˆ= 0.8125, 0.1110 ˆ= 0.8750, 0.1111 ˆ= 0.9375. Damit enthält unser System 2 8 8 + 1 = 129 normalisierte Gleitpunktzahlen. Die kleinste positive ist 0.1000 2 3 = 0.0625, die größte ist 0.1111 2 4 = 15. Oliver Ernst (Numerische Mathematik) Mathematik II/2: Numerik Sommersemester 2013 16 / 90

Gleitpunktzahlen Beispielsystem Natürlich sind diese Gleitpunktzahlen nicht gleichmäßig verteilt: so liegen etwa die 16 kleinsten, d.h. ein Viertel der positiven Gleitpunktzahlen, im Inyervall (0, 0.234375], während die größten 16, also wieder ein Viertel aller positiven Gleitpunktzahlen, das etwa vierzigmal längere Intervall [4,15] überdecken. 4 3 2 1 0 1 2 3 4 Oliver Ernst (Numerische Mathematik) Mathematik II/2: Numerik Sommersemester 2013 17 / 90

Gleitpunktzahlen Über- und Unterlauf Es gibt nur endlich viele zulässige Exponenten, was zu Under- und Overflow (Exponentenunterlauf bzw. -überlauf) führen kann. Overflow (im Beispiel: (.1 2 3 )(.1 2 4 )) bedeutet i.a. Abbruch des Programms mit einer Fehlermeldung (IEEE-Arithmetik: +INF, INF oder auch NAN). Beim Underflow (im Beispiel: (.1 2 3 )(.1 2 3 )) wird das Ergebnis normalerweise auf Null gesetzt und ohne Fehlermeldung weitergerechnet. Overflow kann durch geeignete Skalierung oft auf Kosten eines harmlosen Underflows vermieden werden. c = a 2 + b 2 mit a = 10 60 und b = 1 (Rechnung mit vier Dezimalstellen in Mantisse und zwei Dezimalstellen im Exponent). Standardauswertung verursacht Overflow. Besser: c = s (a/s) 2 + (b/s) 2 mit s = max ( a, b ). Im weiteren: Over- und Underflow werden vernachlässigt, d.h. der Exponent darf beliebige (ganzzahlige) Werte annehmen. Oliver Ernst (Numerische Mathematik) Mathematik II/2: Numerik Sommersemester 2013 18 / 90

Inhalt 1 Einleitung 2 Computer-Arithmetik und Fehleranalyse 2.1 Ein Beispiel 2.2 Gleitpunktzahlen 2.3 Rundung 2.4 Gleitpunktarithmetik 2.5 Numerische Stabilität und Fehleranalyse 3 Schnelle Fourier-Transformation 3.1 Vorbemerkungen 3.2 Überblick Fourier-Analyse 3.3 Die diskrete Fourier-Transformation 3.4 Interpolation 3.5 Trigonometrische Interpolation 3.6 Die FFT 4 Abschließende Bemerkungen Oliver Ernst (Numerische Mathematik) Mathematik II/2: Numerik Sommersemester 2013 19 / 90

Rundung Rundung zur nächstgelegenen Maschinenzahl M = Menge der Maschinenzahlen. Runden zur nächstgelegenen Maschinenzahl rd : R M, x rd (x), wird wie folgt realisiert: Schreibe x = ±.d 1 d 2... d t 1 d t d t+1... 10 e mit möglicherweise unendlich langer Mantisse (der Einfachheit halber arbeiten wir mit der Basis 10) und setze { ±.d1 d rd (x) := 2... d t 1 d t 10 e, falls d t+1 4, ±.d 1 d 2... d t 1 (d t + 1) 10 e, falls d t+1 5. Oliver Ernst (Numerische Mathematik) Mathematik II/2: Numerik Sommersemester 2013 20 / 90

Rundung Rundung zur nächstgelegenen Maschinenzahl Ist d t = 9, so entsteht ein Übertrag und d t 1, möglicherweise auch d t 2,... sowie e, müssen modifiziert werden. Für t = 4 gilt etwa rd (0.44499) = +.4450 10 0 und rd (0.99999) = +.1000 10 1. Relativer Fehler der Rundung von x = ±a 10 e R \ {0} (0.1 a < 1): rd(x) x x (0.5 10 t )10 e a 10 e 5 10 t =: eps, eps heißt Maschinengenauigkeit. Anders formuliert rd (x) = (1 + ε)x mit ε eps. Frage: Was ist die größte reelle Zahl, die auf 0 gerundet wird? Oliver Ernst (Numerische Mathematik) Mathematik II/2: Numerik Sommersemester 2013 21 / 90

Inhalt 1 Einleitung 2 Computer-Arithmetik und Fehleranalyse 2.1 Ein Beispiel 2.2 Gleitpunktzahlen 2.3 Rundung 2.4 Gleitpunktarithmetik 2.5 Numerische Stabilität und Fehleranalyse 3 Schnelle Fourier-Transformation 3.1 Vorbemerkungen 3.2 Überblick Fourier-Analyse 3.3 Die diskrete Fourier-Transformation 3.4 Interpolation 3.5 Trigonometrische Interpolation 3.6 Die FFT 4 Abschließende Bemerkungen Oliver Ernst (Numerische Mathematik) Mathematik II/2: Numerik Sommersemester 2013 22 / 90

Gleitpunktarithmetik Die Machinenzahlen M sind bez. der Grundrechenarten (Addition, Subtraktion, Multiplikation und Division) nicht abgeschlossen (selbst wenn wir für die Exponenten beliebige Werte erlauben). Z.B. ist x =.11 10 0 eine Gleitpunktzahl zur Basis 10 mit Mantissenlänge 2, während eine dreistellige Mantisse besitzt. x x = 0.121 10 1 Für jede der Operationen {+,,, /} wird für die Implementierung der entsprechenden Gleitpunktoperation gefordert, dass fl (x y) := rd (x y), x, y M. Oliver Ernst (Numerische Mathematik) Mathematik II/2: Numerik Sommersemester 2013 23 / 90

Gleitpunktarithmetik Für alle x, y M gilt somit, falls weder Unter- noch Überlauf auftritt, fl (x y) = (1 + ε)(x y) mit ε eps. Das Hauptproblem dieser Semantik ist, dass die neuen Operationen den klassischen Gesetzen der Arithmetik (wie etwa den Kommutativ-, Assoziativ- und Distributivgesetzen) nicht mehr genügen. Z.B. in vierstelliger Gleitpunktarithmetik zur Basis 10: x = 0.1234 10 4 M, y = 0.1234 10 0 M, x + y = 0.12341234 10 4, d.h. fl (x + y) = 0.1234 10 4, was fl (x + y) = x bedeutet, obwohl rd (y) 0. Oliver Ernst (Numerische Mathematik) Mathematik II/2: Numerik Sommersemester 2013 24 / 90

Gleitpunktarithmetik Frage: Welchen Wert x liefert das Programm x = 1; while 1+x ~= 1, x=x/2; end while output x in t-stelliger Gleitpunktarithmetik (zur Basis 2)? Oliver Ernst (Numerische Mathematik) Mathematik II/2: Numerik Sommersemester 2013 25 / 90

Inhalt 1 Einleitung 2 Computer-Arithmetik und Fehleranalyse 2.1 Ein Beispiel 2.2 Gleitpunktzahlen 2.3 Rundung 2.4 Gleitpunktarithmetik 2.5 Numerische Stabilität und Fehleranalyse 3 Schnelle Fourier-Transformation 3.1 Vorbemerkungen 3.2 Überblick Fourier-Analyse 3.3 Die diskrete Fourier-Transformation 3.4 Interpolation 3.5 Trigonometrische Interpolation 3.6 Die FFT 4 Abschließende Bemerkungen Oliver Ernst (Numerische Mathematik) Mathematik II/2: Numerik Sommersemester 2013 26 / 90

Numerische Stabilität und Fehleranalyse Vorwärts- und Rückwärtsfehler Es sei ŷ = fl(f(x)) das in Gleitpunktarithmetik berechnete Ergebnis einer Funktion y = f(x). Wie beurteilt man die Qualität von ŷ? (Relativer) Vorwärtsfehler: (y ŷ)/y. (Relativer) Rückwärtsfehler: (x ˆx)/x, dabei ist ˆx das (ein) Eingabedatum, das bei rundungsfreier Rechnung zu ŷ führt: f(ˆx) = ŷ (Rundungsfehler werden als Datenfehler interpretiert). Mit Störungstheorie kann man Vorwärtsfehler durch Rückwärtsfehler abschätzen. Faustregel: Vorwärtsfehler Konditionszahl Rückwärtsfehler. Oliver Ernst (Numerische Mathematik) Mathematik II/2: Numerik Sommersemester 2013 27 / 90

Numerische Stabilität und Fehleranalyse Vorwärts- und Rückwärtsfehler exakt y x (absoluter) Rückwärtsfehler ˆx berechnet (absoluter) Vorwärtsfehler ŷ exakt Daten Ergebnisse Oliver Ernst (Numerische Mathematik) Mathematik II/2: Numerik Sommersemester 2013 28 / 90

Numerische Stabilität und Fehleranalyse Vorwärts- und Rückwärtsstabilität Ein Algorihmus heißt vorwärtsstabil, wenn der Vorwärtsfehler klein ist, rückwärtsstabil, wenn der Rückwärtsfehler klein ist. Was klein bedeutet, hängt vom Problem und der Maschinengenauigkeit ab. Die Kondition(szahl) eines Problems (hat nichts mit Gleitpunktarithmetik zu tun!!) ist ein Maß dafür, wie empfindlich das Ergebnis auf Störungen der Daten reagiert. Ein Problem ist gut (schlecht) konditioniert, wenn seine Konditionszahl klein (groß) ist. Oliver Ernst (Numerische Mathematik) Mathematik II/2: Numerik Sommersemester 2013 29 / 90

Numerische Stabilität und Fehleranalyse Vorwärts- und Rückwärtsstabilität Bestimme Störung der Daten: x y = f(x). ŷ = f(x + x) = f(x) + f (x) x + 1 2 f (ξ)( x) 2. x klein: ŷ = f(x + x) f(x) + f (x) x = y + f (x) x oder f(x + x) f(x) f(x) = ŷ y y xf (x) x f(x) x. (Relative) Konditionszahl von f an der Stelle x: c f (x) = xf (x) f(x). Oliver Ernst (Numerische Mathematik) Mathematik II/2: Numerik Sommersemester 2013 30 / 90

Numerische Stabilität und Fehleranalyse Kondition von f(x) = log x Beispiel. f(x) = log(x), d.h.: c f (x) = x/x log(x) = 1 log(x) moderat für sehr kleine und sehr große (positive) x, riesig für x 1. x 1 = 0.01: c f (x 1 ) = 0.21715, x 2 = 0.99: c f (x 2 ) = 99.4992, x 3 = 100.: c f (x 3 ) = 0.21715. Wie wirkt sich eine relative Störung von ε x = ( x)/x = 0.001 aus? Prognose: f(x k + 0.001x k ) f(x k ) f(x k ) 0.001 c f (x k ) = 0.001 1 log(x k ). k rel. Fehler Prognose 1 2.1704 10 4 2.1715 10 4 2 9.9945 10 2 9.9499 10 2 3 2.1704 10 4 2.1715 10 4 Oliver Ernst (Numerische Mathematik) Mathematik II/2: Numerik Sommersemester 2013 31 / 90

Numerische Stabilität und Fehleranalyse Kondition multivariater Funktionsauswertung Allgemeiner: y = f(x 1, x 2,..., x n ). Absolute Störungen der Daten, x k (k = 1, 2,..., n), verursachen absoluten Fehler im Ergebnis: y = f(x 1 + x 1,..., x n + x n ) f(x 1,..., x n ) d k = f(x 1, x 2,..., x n ) x k n d k x k, k=1 (absolute Konditionszahlen von f). Relative Störungen der Daten, ε k = x k /x k (k = 1, 2,..., n), verursachen relativen Fehler im Ergebnis: ε y = f(x 1 + x 1,..., x n + x n ) f(x 1,..., x n ) f(x 1,..., x n ) c k = ((relative) Konditionszahlen von f). x k f(x 1, x 2,..., x n ) f(x 1, x 2,..., x n ) x k n c k ε k, Oliver Ernst (Numerische Mathematik) Mathematik II/2: Numerik Sommersemester 2013 32 / 90 k=1

Numerische Stabilität und Fehleranalyse Kondition der Grundrechenarten Beispiele. (Grundoperationen) y = f(x 1, x 2 ) = x 1 x 2. D.h. c 1 = 1 und c 2 = 1 (unproblematisch). y = f(x 1, x 2 ) = x 1 /x 2. D.h. c 1 = 1 und c 2 = 1 (unproblematisch). y = f(x 1, x 2 ) = x 1 + x 2. D.h. c 1 = x 1 /(x 1 + x 2 ) und c 2 = x 2 /(x 1 + x 2 ). y = f(x 1, x 2 ) = x 1 x 2. D.h. c 1 = x 1 /(x 1 x 2 ) und c 2 = x 2 /(x 1 x 2 ). Bei den Operationen ± können die Konditionszahlen riesig werden: x 1 x 2 x 1 x 2 : Addition schlecht konditioniert. : Subtraktion schlecht konditioniert. Man spricht hier von Auslöschung. Oliver Ernst (Numerische Mathematik) Mathematik II/2: Numerik Sommersemester 2013 33 / 90

Numerische Stabilität und Fehleranalyse Auslöschung bei Grundrechenarten Etwa: Dann ist x 1 = 3.14159, x 1 = 10 5, d.h. ε 1 3.18 10 6, x 2 = 3.14140, x 2 = 2 10 5, d.h. ε 2 6.36 10 6. y = x 1 x 2 = 0.00019 (Auslöschung führender Ziffern). Prognose: (x 1 + x 1 ) (x 2 + x 2 ) = 0.00018, also ε y = 5.26 10 2. c 1 = 1.65 10 4, c 2 = 1.65 10 4, ε y c 1 10 5 + c 2 2 10 5 = 1.65 10 1. Oliver Ernst (Numerische Mathematik) Mathematik II/2: Numerik Sommersemester 2013 34 / 90

Numerische Stabilität und Fehleranalyse Beispiel Die quadratische Gleichung besitzt die Lösungen Für x 2 bx + c = 0 x 1/2 = b ± b 2 4c. 2 b = 3.6678 und c = 2.0798 10 2 erhält man nach Rechnung mit fünfstelliger Dezimalmantisse Wiseo? x 1 = 3.6673 (rel. Fehler: 4.7 10 6 ), x 2 = 5.5 10 4 (rel. Fehler: 3.0 10 2 ). Oliver Ernst (Numerische Mathematik) Mathematik II/2: Numerik Sommersemester 2013 35 / 90

Numerische Stabilität und Fehleranalyse Beispiel Schritt Ergebnis rel. Fehler 1. b 2 1.3453 10 +1 1.8 10 5 2. 4c 8.3192 10 3 0.0 3. b 2 4c 1.3445 10 +1 4.1 10 5 4. b 2 4c 3.6667 10 +0 9.3 10 6 5. b b 2 4c 1.1000 10 3 3.0 10 2 6. (b b 2 4c)/2 5.5000 10 4 3.0 10 2 5. b + b 2 4c 7.3345 10 +0 4.7 10 6 6. (b + b 2 4c)/2 3.6673 10 +0 4.7 10 6 7. x 2 = c/x 1 5.6713 10 4 1.1 10 6 Beachte: Nach dem Vietaschen Wurzelsatz ist x 1 x 2 = c. Oliver Ernst (Numerische Mathematik) Mathematik II/2: Numerik Sommersemester 2013 36 / 90

Einführendes Beispiel Berechnung von π Beispiel aus der Einleitung dieses Kapitels: A n+1 = 2 n [2 (1 ) 1 (A n /2 n ) 2 ] 1/2. } {{ } Auslöschung! Setze R n := 4 1 1 (A n /2 n ) 2, d.h. A n+1 = 2 n R n. 2 Beachte: R n = 4Z n und Z n ist (die kleinere) Lösung von X 2 X + 1 4 (A n/2 n ) 2 = X 2 X + (A n /2 n+1 ) 2 = 0. Stabile Berechnung der kleineren Lösung (wie oben): 2(A n /2 n+1 ) 2 Z n = 1 + 1 (A n /2 n ), R 2 n = 4Z n, A n+1 = 2 n R n. Oliver Ernst (Numerische Mathematik) Mathematik II/2: Numerik Sommersemester 2013 37 / 90

Einführendes Beispiel Berechnung von π 10 0 Fehler A n π Fehlerschranke π 3 /(6 x (4 n+1 )) 10 5 10 10 10 15 Maschinengenauigkeit 5 10 15 20 25 30 Oliver Ernst (Numerische Mathematik) Mathematik II/2: Numerik Sommersemester 2013 38 / 90

Einführendes Beispiel Berechnung von π Schneller, weiter, höher? Zur Berechnung von π gibt Verfahren, die noch schneller konvergieren und dabei beliebig viele (Millionen!) korrekte Nachkommastellen liefern. Wer darüber mehr erfahren oder mit solchen Verfahren in Matlab experimentieren möchte, dem sei dieser kleine Artikel des Vaters von Matlab empfohlen. Oliver Ernst (Numerische Mathematik) Mathematik II/2: Numerik Sommersemester 2013 39 / 90

Inhalt 1 Einleitung 2 Computer-Arithmetik und Fehleranalyse 2.1 Ein Beispiel 2.2 Gleitpunktzahlen 2.3 Rundung 2.4 Gleitpunktarithmetik 2.5 Numerische Stabilität und Fehleranalyse 3 Schnelle Fourier-Transformation 3.1 Vorbemerkungen 3.2 Überblick Fourier-Analyse 3.3 Die diskrete Fourier-Transformation 3.4 Interpolation 3.5 Trigonometrische Interpolation 3.6 Die FFT 4 Abschließende Bemerkungen Oliver Ernst (Numerische Mathematik) Mathematik II/2: Numerik Sommersemester 2013 40 / 90

Inhalt 1 Einleitung 2 Computer-Arithmetik und Fehleranalyse 2.1 Ein Beispiel 2.2 Gleitpunktzahlen 2.3 Rundung 2.4 Gleitpunktarithmetik 2.5 Numerische Stabilität und Fehleranalyse 3 Schnelle Fourier-Transformation 3.1 Vorbemerkungen 3.2 Überblick Fourier-Analyse 3.3 Die diskrete Fourier-Transformation 3.4 Interpolation 3.5 Trigonometrische Interpolation 3.6 Die FFT 4 Abschließende Bemerkungen Oliver Ernst (Numerische Mathematik) Mathematik II/2: Numerik Sommersemester 2013 41 / 90

Die schnelle Fourier-Transformation Relevanz The FFT is one of the truly great computational developments of [the 20th] century. It 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 of the FFT, 1992 The Fast Fourier Transform the most valuable numerical algorithm in our lifetime. Gil Strang, Introduction to Linear Algebra, 2003 FFT voted one of the top 10 algorithms of the 20th century.. IEEE Computing in Science & Engineering, 1-2/2000 Oliver Ernst (Numerische Mathematik) Mathematik II/2: Numerik Sommersemester 2013 42 / 90

Die diskrete Fourier-Transformation Geschichtliches Fourier-Reihen: Lagrange (1759), Fourier (1807) Problem der schwingenden Saite, Bewegung von Himmelskörpern Trigonometrische Interpolation, Gauss (1805) Harmonische Analysis: Clairaut, Bernoulli, d Alembert,... Cooley & Tukey, 1965 Anwendungen in digitaler Signalverarbeitung, Bildverarbeitung, Numerik partieller Differentialgleichungen, inverse Probleme. Weiterentwicklung: Wavelets Oliver Ernst (Numerische Mathematik) Mathematik II/2: Numerik Sommersemester 2013 43 / 90

Inhalt 1 Einleitung 2 Computer-Arithmetik und Fehleranalyse 2.1 Ein Beispiel 2.2 Gleitpunktzahlen 2.3 Rundung 2.4 Gleitpunktarithmetik 2.5 Numerische Stabilität und Fehleranalyse 3 Schnelle Fourier-Transformation 3.1 Vorbemerkungen 3.2 Überblick Fourier-Analyse 3.3 Die diskrete Fourier-Transformation 3.4 Interpolation 3.5 Trigonometrische Interpolation 3.6 Die FFT 4 Abschließende Bemerkungen Oliver Ernst (Numerische Mathematik) Mathematik II/2: Numerik Sommersemester 2013 44 / 90

Kontinuierliche Fourier-Transformation Für eine Funktion u : R R ist die Fourier-Transformierte û : R R definiert durch û(ω) := 1 u(x)e iωx dx. 2π Die inverse Fourier-Transformation u(x) = 1 û(ω)e iωx dω 2π R stellt die ursprüngliche Funktion u dar als Überlagerung von Wellen e iωx der Amplitude û(ω). Bekannt: (Paley-Wiener Theorem) Abklingen von û(ω) für ω umso stärker, je glatter die Funktion u. Beispiel: u(x) = { e x, x 0, 0, x < 0, R û(ω) = 1 2π 1 1 + iω. Oliver Ernst (Numerische Mathematik) Mathematik II/2: Numerik Sommersemester 2013 45 / 90

Kontinuierliche Fourier-Transformation Beispiele 1 0.9 u(x) û(ω) 1.5 u(x) û(ω) 0.8 0.7 0.6 1 u, û 0.5 u, û 0.4 0.3 0.5 0.2 0.1 0 6 4 2 0 x, ω 2 4 6 Die Funktion u(x) = e x und ihre Fourier-Transformierte. 0 4 3 2 1 0 x, ω 1 2 3 4 u(x) = e αx2, α = 1/4, û(ω) = 1 e ω2 /4α 2α Oliver Ernst (Numerische Mathematik) Mathematik II/2: Numerik Sommersemester 2013 46 / 90

Kontinuierliche Fourier-Transformation Beispiele u, û 3 2.5 2 1.5 1 0.5 0 u(x) û(ω) u(x) = rect(αx), α = 1/4, û(ω) = 1 sinc ω 2α 2 2α, 0, x > 1 2, 1 rect(x) = 2, x = 1 2, 1, x < 1 2, 0.5 1 20 15 10 5 0 x, ω 5 10 15 20 sinc(x) = sin(πx) πx. Oliver Ernst (Numerische Mathematik) Mathematik II/2: Numerik Sommersemester 2013 47 / 90

Fourier-Reihen Für eine periodische Funktion f : [0, 2π] R ist ihre Fourier-Reihe gegeben durch f(x) = k= c k e ikx = a 0 2 + [a k cos(kx) + b k sin(kx)] k=1 mit komplexen bzw. reellen Fourier-Koeffizienten a 0 = 1 π a j = 1 π c k = 1 2π 2π 0 2π 0 2π 0 f(x) dx, f(x) cos(kx) dx, b j = 1 π f(x)e ikx dx, k Z. 2π 0 f(x) sin(kx) dx, k N, Oliver Ernst (Numerische Mathematik) Mathematik II/2: Numerik Sommersemester 2013 48 / 90

Fourier-Reihen Beispiele Beispiel 1: f(x) = cos 2 x, x [0, 2π]. Wegen cos 2 x = 1 2 (1 + cos(2x)) und der Eindeutigkeit der Fourier-Koeffizienten folgt a 0 = 1, a 2 = 1 2 und alle übrigen Koeffizienten sind Null. Beispiel 2: Für die (ungerade) Funktion f(x) = x, x [ π, π] ergibt sich a k = 0 für alle k sowie b k = ( 1) k+1 2/k, d.h. x = 2 (sin(x) 12 sin(2x) + 13 ) sin(3x) +.... Oliver Ernst (Numerische Mathematik) Mathematik II/2: Numerik Sommersemester 2013 49 / 90

Fourier-Reihen Beispiele fn 4 3 2 1 0 N=1 N=2 N=3 N=4 N=5 N=10 N= 1 2 3 4 0 1 2 3 4 5 6 x Oliver Ernst (Numerische Mathematik) Mathematik II/2: Numerik Sommersemester 2013 50 / 90

Inhalt 1 Einleitung 2 Computer-Arithmetik und Fehleranalyse 2.1 Ein Beispiel 2.2 Gleitpunktzahlen 2.3 Rundung 2.4 Gleitpunktarithmetik 2.5 Numerische Stabilität und Fehleranalyse 3 Schnelle Fourier-Transformation 3.1 Vorbemerkungen 3.2 Überblick Fourier-Analyse 3.3 Die diskrete Fourier-Transformation 3.4 Interpolation 3.5 Trigonometrische Interpolation 3.6 Die FFT 4 Abschließende Bemerkungen Oliver Ernst (Numerische Mathematik) Mathematik II/2: Numerik Sommersemester 2013 51 / 90

Die diskrete Fourier-Transformation (DFT) Komplex: Gegeben f = {f j } N 1 j=0 CN, gesucht sind die Fourier-Koeffizienten c = {c k } N 1 k=0 CN mit f j = N 1 k=0 c k e 2πikj/N, d.h. c k = 1 N N 1 j=0 f j e 2πijk/N. Reell: Gegeben f = {f j } N 1 j=0 RN, gesucht sind die Fourier-Koeffizienten {a k } {b k } sodass f j = a M 1 0 2 + [ a k cos jkπ M + b k sin jkπ ] + ( 1)j a M, M 2 k=1 k = 0,..., N 1, (N = 2M). Oliver Ernst (Numerische Mathematik) Mathematik II/2: Numerik Sommersemester 2013 52 / 90

Inhalt 1 Einleitung 2 Computer-Arithmetik und Fehleranalyse 2.1 Ein Beispiel 2.2 Gleitpunktzahlen 2.3 Rundung 2.4 Gleitpunktarithmetik 2.5 Numerische Stabilität und Fehleranalyse 3 Schnelle Fourier-Transformation 3.1 Vorbemerkungen 3.2 Überblick Fourier-Analyse 3.3 Die diskrete Fourier-Transformation 3.4 Interpolation 3.5 Trigonometrische Interpolation 3.6 Die FFT 4 Abschließende Bemerkungen Oliver Ernst (Numerische Mathematik) Mathematik II/2: Numerik Sommersemester 2013 53 / 90

Interpolation Die allgemeine Interpolationsaufgabe 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 erfüllt. Wozu? p(x i ) = f(x i ), i = 0, 1,..., n, f nur an diskreten Punkten bekannt (Messwerte), aber geschlossene Formel für f auf ganz [a, b] erwünscht (z.b. um f an Zwischenstellen x [a, b] \ {x 0, x 1,..., x n } auszuwerten), f kompliziert und soll durch 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). Oliver Ernst (Numerische Mathematik) Mathematik II/2: Numerik Sommersemester 2013 54 / 90

Interpolation Die 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 C soll ein Interpolationspolynom p(x) = a n x n + a n 1 x n 1 + + a 1 x + a 0 P n (mit komplexen Koeffizienten a 0, a 1,..., a 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, Oliver Ernst (Numerische Mathematik) Mathematik II/2: Numerik Sommersemester 2013 55 / 90

Polynominterpolation Existenz, Eindeutigkeit Satz 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 darstellen: p(x) = n f i l i (x). i=0 Oliver Ernst (Numerische Mathematik) Mathematik II/2: Numerik Sommersemester 2013 56 / 90

Polynominterpolation Beispiel 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), 3.5 3 2.5 2 1.5 1 0.5 0 0.5 1 L 0 L 1 L 2 P 1.5 2 1 0 1 2 3 l 2 (x) = (x + 1)x/6. Interpolationspolynom: p(x) = l 0 (x) l 1 (x) + 2l 2 (x) = x2 2 + x 2 1. Oliver Ernst (Numerische Mathematik) Mathematik II/2: Numerik Sommersemester 2013 57 / 90

Polynominterpolation Rekursive Berechnung Die Auswertung der Lagrange-Formel ist aufwendig, wenn ein neues Datenpaar hinzukommt. Eine rekursive Berechnung ist ökonomischer: Lemma 2 Für eine beliebige Indexmenge 0 i 0 < i 1 < < i k n bezeichne p i0,i 1,...,i k das (nach Satz 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. Oliver Ernst (Numerische Mathematik) Mathematik II/2: Numerik Sommersemester 2013 58 / 90

Polynominterpolation Neville-Aitken-Schema 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 ) Oliver Ernst (Numerische Mathematik) Mathematik II/2: Numerik Sommersemester 2013 59 / 90

Polynominterpolation Beispiel 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). Oliver Ernst (Numerische Mathematik) Mathematik II/2: Numerik Sommersemester 2013 60 / 90

Polynominterpolation Dividierte Differenzen Tableau der dividierten Differenzen von f: 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 f 3,4 x 4 f 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). Oliver Ernst (Numerische Mathematik) Mathematik II/2: Numerik Sommersemester 2013 61 / 90

Polynominterpolation Newton-Darstellung Satz 3 Mit Hilfe der dividierten Differenzen lässt sich das (nach Satz 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 [William George Horner, 1786 1837]: 3n Gleitpunktoperationen (pro Auswertungspunkt). Oliver Ernst (Numerische Mathematik) Mathematik II/2: Numerik Sommersemester 2013 62 / 90

Polynominterpolation Beispiel Beispiel 3 (vgl. Beispiele 1 und 2). Dividierte Differenzen: x i k = 0 k = 1 k = 2 1 Das bedeutet: 1 f 0,1 = ( 1) ( 1) 0 ( 1) = 0 0 1 f 0,1,2 = 3/2 0 2 ( 1) = 1 2 f 1,2 = 2 ( 1) 2 0 = 3 2 2 2 p(x) = ( 1) + 0 (x ( 1)) + 1 2 (x ( 1))(x 0) = 1 2 x2 + 1 2 x 1. Oliver Ernst (Numerische Mathematik) Mathematik II/2: Numerik Sommersemester 2013 63 / 90

Polynominterpolation Interpolationsfehler Satz 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). (1) a t b Oliver Ernst (Numerische Mathematik) Mathematik II/2: Numerik Sommersemester 2013 64 / 90

Polynominterpolation Optimale Knoten 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 so klein wie möglich wird. Lösung: Tschebyscheff-Knoten [Pafnutĭi L vovich Tschebyscheff, 1821 1894] x (T) i = b a ( ) 2(n i) + 1 cos π + a + b (i = 0, 1,..., n) 2 2n + 2 2 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 i=0 ) n < max a t b n t x i Oliver Ernst (Numerische Mathematik) Mathematik II/2: Numerik Sommersemester 2013 65 / 90 i=0

Polynominterpolation Äquidistante und Tschebyscheff-Knoten Knotenpolynome mit äquidistanten und Tschebyscheff-Knoten: 0.8 0.6 aequidistante Knoten Tschebyscheff Knoten 0.4 0.2 0 0.2 0.4 0.6 0.8 1 0 1 2 Oliver Ernst (Numerische Mathematik) Mathematik II/2: Numerik Sommersemester 2013 66 / 90

Polynominterpolation Runge-Phänomen Beispiel 4.(Runge-Phänomen 1 ) Interpoliere an n + 1 äquidistanten Stützstellen f(x) = 1, 5 x 5, (Runge-Funktion) 1 + x2 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 1 C. Runge. Über emprirische Funktionen und die Interpolation zwischen äquidistanten Ordinaten. Zeitschrift für Mathematik und Physik 46 (1901) pp. 224 243 Oliver Ernst (Numerische Mathematik) Mathematik II/2: Numerik Sommersemester 2013 67 / 90

Polynominterpolation Runge-Phänomen Beispiel 5. Interpoliere an n + 1 Tschebyscheff-Knoten f(x) = 1, 5 x 5. 1 + x2 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 Oliver Ernst (Numerische Mathematik) Mathematik II/2: Numerik Sommersemester 2013 68 / 90

Inhalt 1 Einleitung 2 Computer-Arithmetik und Fehleranalyse 2.1 Ein Beispiel 2.2 Gleitpunktzahlen 2.3 Rundung 2.4 Gleitpunktarithmetik 2.5 Numerische Stabilität und Fehleranalyse 3 Schnelle Fourier-Transformation 3.1 Vorbemerkungen 3.2 Überblick Fourier-Analyse 3.3 Die diskrete Fourier-Transformation 3.4 Interpolation 3.5 Trigonometrische Interpolation 3.6 Die FFT 4 Abschließende Bemerkungen Oliver Ernst (Numerische Mathematik) Mathematik II/2: Numerik Sommersemester 2013 69 / 90

Trigonometrische Interpolation Aufgabenstellung 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 erfüllt. Hierbei ist t n (x j ) = f j, j = 0, 1,..., m 1, (2) { m n = 2 falls m gerade, m 1 2 falls m ungerade. Oliver Ernst (Numerische Mathematik) Mathematik II/2: Numerik Sommersemester 2013 70 / 90

Trigonometrische Interpolation 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 1 2 (α k + iβ k ) 2 [ 1 i 1 i ] [ ] αk β k, d.h. Oliver Ernst (Numerische Mathematik) Mathematik II/2: Numerik Sommersemester 2013 71 / 90

Trigonometrische Interpolation Transformation auf den (komplexen) Einheitskreis R 2 so folgt t n (x) = [ αk β k ] [ ] [ ] 1 1 ak = = i i n k= n a k e ikx = a k n k= n [ ] ak + a k = i(a k a k ) a k z k = z n 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 (ωm) j = ωm jn t n (x j ) [ ] 2 Re(ak ), 2 Im(a k ) a k z k+n = z n p 2n (z) ist die trigonometrische Interpolationsaufgabe hiermit zurückgeführt auf eine (gewöhnliche) Interpolationsaufgabe für (algebraische) Polynome. Oliver Ernst (Numerische Mathematik) Mathematik II/2: Numerik Sommersemester 2013 72 / 90

Trigonometrische Interpolation Eigenschaften der Einheitswurzeln Lemma 5 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). Oliver Ernst (Numerische Mathematik) Mathematik II/2: Numerik Sommersemester 2013 73 / 90

Komplexes algebraisches Interpolationspolynom Satz 6 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 (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. (3) Oliver Ernst (Numerische Mathematik) Mathematik II/2: Numerik Sommersemester 2013 74 / 90

Komplexes algebraisches Interpolationspolynom 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 [ F m := ω kj m ] 0 k,j m 1 = 1 1 1 1 ωm 1 ω m+1 m.... 1 ωm m+1 ωm (m 1)2 Oliver Ernst (Numerische Mathematik) Mathematik II/2: Numerik Sommersemester 2013 75 / 90

Trigonometrisches Interpolationspolynom Theorem 7 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 1 m j=0 f j sin 2πjk m, (k = 0, 1,..., n). Im Fall m = 2n muss β n = 0 gesetzt und α n halbiert werden. Oliver Ernst (Numerische Mathematik) Mathematik II/2: Numerik Sommersemester 2013 76 / 90

Schnelle Fourier-Transformation 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 f 0 c 1. = 1 m F f 1 m.. c m 1 f m 1 Oliver Ernst (Numerische Mathematik) Mathematik II/2: Numerik Sommersemester 2013 77 / 90

Inhalt 1 Einleitung 2 Computer-Arithmetik und Fehleranalyse 2.1 Ein Beispiel 2.2 Gleitpunktzahlen 2.3 Rundung 2.4 Gleitpunktarithmetik 2.5 Numerische Stabilität und Fehleranalyse 3 Schnelle Fourier-Transformation 3.1 Vorbemerkungen 3.2 Überblick Fourier-Analyse 3.3 Die diskrete Fourier-Transformation 3.4 Interpolation 3.5 Trigonometrische Interpolation 3.6 Die FFT 4 Abschließende Bemerkungen Oliver Ernst (Numerische Mathematik) Mathematik II/2: Numerik Sommersemester 2013 78 / 90

Schnelle Fourier-Transformation 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 1 Offensichtlich: f 0 f 1. f m 1 = W m c 0 c 1. c m 1 mit der Matrix W m := [ω kj m ] 0 k,j m 1 = F H m (= F m ) C m m. m. Oliver Ernst (Numerische Mathematik) Mathematik II/2: Numerik Sommersemester 2013 79 / 90

Schnelle Fourier-Transformation Lemma 8 Für die Fourier-Matrix F m = [ωm kj ] 0 k,j m 1 C m m gelten: (a) Fm = F m (aber Fm H 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. 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) 2 2 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). Oliver Ernst (Numerische Mathematik) Mathematik II/2: Numerik Sommersemester 2013 80 / 90

Schnelle Fourier-Transformation 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. 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 F 8 = 1 ζ 3 ζ 6 ζ 9 ζ 12 ζ 15 ζ 18 ζ 21 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 Oliver Ernst (Numerische Mathematik) Mathematik II/2: Numerik Sommersemester 2013 81 / 90

Schnelle Fourier-Transformation 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 F 8 = 1 ζ 3 ζ 6 ζ ζ 4 ζ 7 ζ 2 ζ 5 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 Oliver Ernst (Numerische Mathematik) Mathematik II/2: Numerik Sommersemester 2013 82 / 90

Schnelle Fourier-Transformation 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. P F 8 = 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 1 ζ ζ 2 ζ 3 ζ 4 ζ 5 ζ 6 ζ 7 1 ζ 3 ζ 6 ζ ζ 4 ζ 7 ζ 2 ζ 5 1 ζ 5 ζ 2 ζ 7 ζ 4 ζ ζ 6 ζ 3 1 ζ 7 ζ 6 ζ 5 ζ 4 ζ 3 ζ 2 ζ 1 [ ] B1,1 B =: 1,2 B 2,1 B 2,2 Oliver Ernst (Numerische Mathematik) Mathematik II/2: Numerik Sommersemester 2013 83 / 90

Schnelle Fourier-Transformation 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 ζ4 3 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 Oliver Ernst (Numerische Mathematik) Mathematik II/2: Numerik Sommersemester 2013 84 / 90

Schnelle Fourier-Transformation Analog: 1 1 1 1 ζ 4 0 0 0 B 2,2 = 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 P F 8 = 4 F4 O I4 I = 4. F 4 D 4 F 4 D 4 O F 4 D 4 D 4 Oliver Ernst (Numerische Mathematik) Mathematik II/2: Numerik Sommersemester 2013 85 / 90

Schnelle Fourier-Transformation Satz 9 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 P F m = m/2 F m/2 Fm/2 O Im/2 I = m/2. 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 mit ζ m = ω m = e 2πi/m. ( ) D m/2 = diag ζm, 0 ζm, 1..., ζm m/2 1 C (m/2) (m/2) Oliver Ernst (Numerische Mathematik) Mathematik II/2: Numerik Sommersemester 2013 86 / 90

Schnelle Fourier-Transformation Berechne jetzt y = F m x für ein x C m (m gerade). Gemäß der Zerlegung von F m aus Satz 9 unterteilen wir dies in zwei Schritte: 1. Reduktionsschritt: Berechne [ ] Im/2 I z = m/2 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 )ζm, 2 z 7 = (x 3 x 7 )ζm 3 (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). Oliver Ernst (Numerische Mathematik) Mathematik II/2: Numerik Sommersemester 2013 87 / 90

Schnelle Fourier-Transformation Ist m = 2 p eine Zweierpotenz, so ist m/2 ebenfalls gerade und die beiden DFT der Dimension m/2 können auf vier DFT 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). Dieser 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). Theorem 10 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. Oliver Ernst (Numerische Mathematik) Mathematik II/2: Numerik Sommersemester 2013 88 / 90

Schnelle Fourier-Transformation 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). Oliver Ernst (Numerische Mathematik) Mathematik II/2: Numerik Sommersemester 2013 89 / 90

Inhalt 1 Einleitung 2 Computer-Arithmetik und Fehleranalyse 2.1 Ein Beispiel 2.2 Gleitpunktzahlen 2.3 Rundung 2.4 Gleitpunktarithmetik 2.5 Numerische Stabilität und Fehleranalyse 3 Schnelle Fourier-Transformation 3.1 Vorbemerkungen 3.2 Überblick Fourier-Analyse 3.3 Die diskrete Fourier-Transformation 3.4 Interpolation 3.5 Trigonometrische Interpolation 3.6 Die FFT 4 Abschließende Bemerkungen Oliver Ernst (Numerische Mathematik) Mathematik II/2: Numerik Sommersemester 2013 90 / 90