5. Numerische Differentiation und Integration 1
Numerische Differentiation Problemstellung: Gegeben ist eine differenzierbare Funktion f : [a,b] R und x (a,b). Gesucht sind Näherungen für die Ableitungen f (n) (x) Grundlage: Ableitung: d dx f(x) = f(x+h) f(x) f (x) = lim h 0 h Der Satz von Taylor: n 1 f(x 0 +h) = f(x 0 )+ i=1 f (i) (x ) hi 0 +f(n) (z) hn i! n! mit z [x 0,x 0 +h], dient zur Fehlerabschätzung und Herleitung von Differenzenformeln
Ableitung 1. Ordnung (1) Einfachste Näherung: der Differenzenquotient an der Stelle x 0 f (x 0 ) f(x 0 +h) f(x 0 ) =: D 1 f(x 0,h) h D 1 wird auch als Differenzformel oder finite Differenz erster Ordnung bezeichnet. Problem (Übungen): Rundungsfehler f(x 0 ) ǫ m 1 h Diskretisierungsfehler f (x 0 ) h Optimum h f(x 4ǫ 0 ) m f (x 0 ) 3
Ableitung 1. Ordnung () Frage: Geht das besser? Rundungsfehler : float double long double... Diskretisierungsfehler: Wähle Differenzen mit Diskretisierungsfehler O(h k ) mit k > 1. Dies ergibt bei größeren h * einen kleineren Rundungsfehler, da 1/h * und einen größeren Diskretisierungsfehler, da h k 4
Ableitung 1. Ordnung (3) Taylor-Entwicklung f(x 0 +h) = f(x 0 )+f (x 0 )h+ f (x 0 ) + f(4) (x 0 ) h 4 +O(h 5 ) 4 ( ) h f(x 0 +h/) = f(x 0 )+f (x 0 ) + f(4) ( ) (x 0 ) h 4 +O(h 5 ) 4 f(x 0 h) = f(x 0 ) f (x 0 )h+ f (x 0 ) + f(4) (x 0 ) h 4 +O(h 5 ) 4 + f (x 0 ) h + f(3) (x 0 ) h 3 6 ( h ) + f(3) (x 0 ) h f(3) (x 0 ) h 3 6 6 ( ) h 3 5
Ableitung 1. Ordnung (4) Subtraktion: f(x 0 +h) f(x 0 h) = f (x 0 )h+ f(3) (x 0 ) h 3 +O(h 5 ) 3 Zentraler Differenzenquotient D f(x 0,h) := f(x 0 +h) f(x 0 h) h Fehler: D f(x 0,h) f (x 0 ) = f(3) (x 0 ) h +O(h 4 ) 6 Es tauchen wegen der Symmetrie in h nur gerade Potenzen in der Taylor-Entwicklung von D f(x 0,h) auf. 6
Ableitung mit Extrapolation (1) Kombiniere D 1 f(x 0,h) und D 1 f(x 0,h/) zu ( D 1 f(x 0,h) f (x 0 ) = f (x 0 ) D 1 f(x 0,h/) f (x 0 ) ) = f (x 0 ) h+ f(3) (x 0 ) h +O(h 3 ) 6 h+ f(3) (x 0 ) h +O(h 3 ) 1 Differenzformel der Ordnung D 1 f(x 0,h) := D 1 f(x 0,h/) D 1 f(x 0,h) = f(x 0 +h/) f(x 0 ) h/ f(x 0 +h) f(x 0 ) h = 4f(x 0 +h/) 3f(x 0 ) f(x+h) h 7
Ableitung mit Extrapolation () Fehler: D 1 f(x 0,h) f (x 0 ) = D 1 f(x 0,h/) D 1 f(x 0,h) f (x 0 ) = ( D 1 f(x 0,h/) f (x 0 ) ) ( D 1 f(x 0,h) f (x 0 ) ) = f(3) (x 0 ) h +O(h 3 ) 1 Diese Art der Erhöhung der Fehlerordnung gilt ganz allgemein. Ausgangspunkt ist die Berechnung von D1 für h,h/,h/4,h/8,..., aus denen Kombinationen berechnet werden mit einem Fehler in höherer Ordnung in h, diese werden dann immer weiter kombiniert, bis die Maschinengenauigkeit erreicht ist. 8
Ableitung mit Extrapolation (3) Beispiel für den ersten Schritt: D1 f (x 0,h) f (x 0 ) = f(3) (x 0 ) h +O(h 3 ) 1 ( D1 f x 0, h ) f (x 0 ) = f(3) ( ) (x 0 ) h +O(h 3 ) 1 Der Ausdruck 4D1 f(x 0, h ) D 1 f(x 0,h) beseitigt den Term proportional zu h : ( 4D1 f x 0, h ) D1 f (x 0,h) = 4f (x 0 ) 4 f(3) ( ) (x 0 ) h +4O(h 3 ) 1 f (x 0 )+ f(3) (x 0 ) h O(h 3 ) 1 3 = 3f (x 0 )+O(h 3 ) 9
Ableitung mit Extrapolation (4) Satz: Sei D(h) eine Formel zur Näherung von D mit der Fehlerentwicklung D(h) D = c 1 h 1 +c h +c 3 h 3 +... Dann hat die extrapolierte Formel D (h) := D(h/) D(h) die Fehlerentwicklung D (h) D = c h +... Rekursive Verbesserung: Berechne D (h) aus D(h) und D(h/), Fehler O(h ) Berechne D (h/) aus D(h/) und D(h/4), Fehler O(h ) Berechne aus D (h) und D (h/) analog D (h), Fehler O(h 3 ) 10
Ableitung mit Extrapolation (5) Algorithmus: h-extrapolation Sei D(h) eine Näherung von D mit der Fehlerentwicklung und h > 0. Definiere also D(h) D = c 1 h 1 +c h +c 3 h 3 +... D i,0 := D ( ) h i D 0,0 := D(h), D 1,0 := D für i = 0,1,..., ( ) ( ) h h 1, D,0 := D,... Damit lässt sich die Ableitung rekursiv verbessern 11
Ableitung mit Extrapolation (6) Die Näherung D i,k für D hat einen Fehler der Ordnung der k+1, d.h. O(h k+1 ). D i,k := k D i+1,k 1 D i,k 1 k, k = 1,,... i = 0,1,... 1 Beispiel: Betrachte verschiedene Näherungen für D = f (x 0 ). Ausgangspunkt sind die Näherungen O(h) D 0,0 = Df(x 0,h) = f(x 0 +h) f(x 0 ) h D 1,0 = Df(x 0,h/) = f(x 0 +h/) f(x 0 ) h/ D,0 = Df(x 0,h/4) = f(x 0 +h/4) f(x 0 ) h/4 D 3,0 = Df(x 0,h/8) = f(x 0 +h/8) f(x 0 ) h/8 1
Ableitung mit Extrapolation (7) Berechne daraus die Näherungen der Ordnung O(h ) gemäß D 0,1 := 1 D 1,0 D 0,0 1 1 D 1,1 := 1 D,0 D 1,0 1 1 D,1 := 1 D 3,0 D,0 1 1 = D 1,0 D 0,0 = Df(x 0, h ) Df(x 0,h) = D,0 D 1,0 = D 3,0 D,0 Daraus folgt für die Näherungen der Ordnung O(h 3 ) D 0, := D 1,1 D 0,1 1 D 1, := D,1 D 1,1 1 = 4 D 1,1 D 0,1 3 = 4 D,1 D 1,1 3 13
Ableitung mit Extrapolation (8) Damit lässt sich eine Näherung der Ordnung O(h 4 ) bilden. D 0,3 := 3 D 1, D 0, 3 = 8 D 1, D 0, 1 7 Das Verfahren lässt sich beliebig erweitern starke Verbesserung des numerischen Fehlers! Beispiel für eine Näherung (würde man so nicht programmieren, sondern rekursiv oder iterativ) D 0, := D 1,1 D 0,1 1 = 4 D 1,1 D 0,1 3 = 4 (Df(x 0,h/4) Df(x 0,h/)) ( Df(x 0,h/) Df(x 0,h)) 3 = 8Df(x 0,h/4) 6 Df(x 0,h/)+Df(x 0,h) 3 14
Ableitung höherer Ordnung (1) Beispiel:. Ableitung Ausgangspunkt Taylorentwicklungen für f(x 0 +h),f(x 0 +h),f(x 0 ),f(x 0 h),f(x 0 h). Vorwärtsdifferenz D 3 f(x 0,h) := f(x 0 +h) f(x 0 +h)+f(x 0 ) h = f (x 0 )+O(h 3 ) zentrale Differenz Rückwärtsdifferenz D 3 f(x 0,h) := f(x 0 +h) f(x 0 )+f(x 0 h) h D 3 f(x 0,h) := f(x 0) f(x 0 h)+f(x 0 h) h 15
Ableitungen in der Bildbearbeitung - GRA (1) Ein wesentliches Problem ist die Erkennung von Kanten. Kanten sind dort, wo die 1. Ableitung einen Extremwert hat bzw. die. Ableitung Null ist. Es muss die Ableitung in x und y-richtung betrachtet werden partielle Ableitung, x bzw. y Der Abstand h ist ein Pixel und wird =1 gesetzt. Erster Ansatz: Zentraler Differenzenquotient x f(x i,y j,h) f(x i+1,y j ) f(x i 1,y j ) Zur Verbesserung werden nicht die Pixel im Abstand in x- Richtung herangezogen, sondern die Umgebung in Diagonalenrichtung, also im Abstand betrachtet. 16
Ableitungen in der Bildbearbeitung - GRA () Verbesserung: Zentraler Differenzenquotient bei (x i,y j 1 ),(x i,y j ) und (x i,y j+1 ) Prewitt Operator Sobel Operator x f(x i,y j,h) f(x i+1,y j+1 ) f(x i 1,y j+1 )+ f(x i+1,y j ) f(x i 1,y j )+ f(x i+1,y j 1 ) f(x i 1,y j 1 ) x f(x i,y j,h) f(x i+1,y j+1 ) f(x i 1,y j+1 )+ (f(x i+1,y j ) f(x i 1,y j ))+ f(x i+1,y j 1 ) f(x i 1,y j 1 ) Der Sobel-Operator wird in Varianten z.b. in OpenCV durch die Funktion void cvsobel(...) berechnet 17
Ableitungen in der Bildbearbeitung - GRA (3) Bestimmung der Bedingung.Ableitung = 0, also in Dimensionen die Summe der. partiellen Ableitungen in x und y-richtung = 0 Laplace-Operator f(x i,y j ) = ( x + y ) f(x i,y j ) Nähere die. Ableitung durch eine zentrale Differenz an (h = 1): x f(x i,y j ) = f(x i+1,y j ) f(x i,y j )+f(x i 1,y j ) Analog in y-richtung, die Summe ergibt f(x i,y j ) = f(x i+1,y j )+f(x i 1,y j )+f(x i,y j+1 )+f(x i,y j 1 ) 4f(x i,y j ) Der Laplace-Operator wird z.b. in OpenCV durch die Funktion void cvlaplace(...) berechnet. 18
Numerische Integration (1) Berechne das bestimmte Integral I = b a f(x)dx = F(b) F(a), wobei F die Stammfunktion von f ist. Die numerische näherungsweise Berechnung von I nennt man numerische Quadratur (Ersetzen der Fläche unter der Kurve durch ein Rechteck/Quadrat). Einsatz: wenn es keine Stammfunktion F gibt, z.b.gaußsche Glockenkurve bzw. Normalverteilung wenn f nicht vollständig bekannt ist, also z.b. nur einzelne Werte wie Geschwindigkeiten vorliegen und der zurückgelegte Weg berechnet werden soll (siehe Differentialgleichungen). 19
Numerische Integration () Beispiel: Normalverteilung f(x) = 1 σ π exp ( (x µ) σ mit dem Erwartungswert µ und die Standardabweichung σ. Frage: Mit welcher Wahrscheinlichkeit wird ein Wert x zwischen a und b angenommen. Antwort: Berechne die Fläche unter der Glockenkurve bzw. das Integral über der Glockenkurve. Quadraturverfahren: Berechne f(x) an Stützstellen x i und zugehörige Gewichte ω i. Bestimme das Integral näherungsweise durch ) I(f) = b a f(x) n i=0 ω i f(x i ) 0
Numerische Integration (3) Trapezregel: Ersetze die Funktion zwischen den Punkten (a,f(a)) und (b,f(b)) durch eine Gerade. I(f) = b a f(x)dx = f(a)+f(b) (b a) = b a b a f(a)+ f(b) Stützstellen x 1 = a und x = b Gewichte ω 1 = ω = b a f(b) (f(a)+f(b))/ f(a) a b 1
Numerische Integration (4) Mittelpunktsregel: (auch Rechteckregel genannt) Ersetze die Funktion zwischen den Punkten (a,f(a)) und (b,f(b)) durch eine Konstante mit dem Wert des Funktionswerts im Mittelpunkt des Intervalls. b ( ) b+a I(f) = f(x)dx = (b a) f a Nur eine Stützstellen x 1 = (b+a)/ Gewicht ω 1 = (b a) f(b) f((a+b)/) f(a) a (a+b)/ b
Numerische Integration (5) Vorgehen: Unterteile das Intervall [a, b] in n Teile. Jedes Teilintervall hat die Breite h = (b a)/n Anfangspunkt des Intervalls i ist x i = a+i h und Endpunkt x i +h, i = 0,...,n 1. Wende für jedes Teilintervall ein Quadraturverfahren an und addiere die Teilergebnisse. f(b) f(a) a x 0 b x n 3
Numerische Integration (6) Summierte Trapezregel I Tf = n 1 i=0 ( xi+1 x i f(x i )+ x i+1 x i = h 1 n 1 (f(a)+f(b))+ f(x i ) i=1 Summierte Mittelpunkts- oder Rechteckregel n 1 ( xi+1 +x i I Rf = (x i+1 x i )f i=0 n 1 ( = h f x i + h ) i=0 ) f(x i+1 ) ) 4
Numerische Integration (7) Geht es besser? Ja. Finde eine gute interpolierende Funktion p der Funktion f mit f(x i ) = p(x i ), die Sie integrieren können. Für den Fall eines interpolierenden Polynoms (L i (x): Lagrange-Polynom) p(x) = n i=0 f(x i )L i (x) Gewichte in der Quadratur folgen aus dem Integral über das interpolierende Polynom b b n f(x)dx p(x)dx = a a i=0 f(x i ) b a L i(x)dx = n i=0 f(x i )w i Meist werden äquidistante Stützstellen x i gewählt. 5
Numerische Integration (8) Polynom 1. Ordnung p(x) = f(a)+ f(b) f(a) (x a) b a Integralauswertung: b b f(x)dx p(x)dx a a = f(a)(b a)+ f(b) f(a) (x a) b a = f(a)(b a)+ f(b) f(a) (b a) ( b a f(a) = (b a) + f(b) ) ergibt wieder die Trapezregel b a f(b) f(a) b a (a a) 6
Numerische Integration (9) Polynom. Ordnung Interpoliere die Funktion in einem Intervall [a,b] durch eine Parabel. Wähle x 0 = a,,x 1 = a+b, x = b, h = b a Bestimme die Konstanten a 0,a 1,a so, dass p(x i ) = a x i +a 1x i +a 0 = f(x i ) und integriere die p(x). Ohne Beweis: b a f(x)dx b a p(x)dx = h 6 ( f(a)+4f ( a+b ) ) +f(b) Das ist die Simpson-Regel, nach Wikipedia seit 1608 im Einsatz. 7
Numerische Integration (10) Zu beachten: Die Simpsonregel verwendet eine zusätzliche Stützstelle in der Mitte des Intervalls. Ohne Beweis: Sie liefert exakte Ergebnisse für Polynome 3. Ordnung Das allgemeine Vorgehen ist wie bei den anderen Regeln: Unterteile das Intervall in n Teile und wende die Simpsonregel für jedes Teilintervall an. Das führt zur summierten Simpsonregel: b = h 6 a f(x)dx Sf = h 6 n 1 i=0 ( f(x i )+4f f(a)+4f(a+ h n 1 )+f(b)+ i=1 ( ( ) xi +x i+1 f(x i )+4f +f(x i+1 ) ) ( )) xi +x i+1 8
Numerische Integration (11) Ohne Beweis: Für die summierten Integrationsregeln gelten folgende Fehlerabschätzungen Rechteck- oder Mittelpunktsregel: Trapezregel: b a f(x)dx Rf(h) b Simpsonregel: b a f(x)dx Tf(h) a f(x)dx Sf(h) h 4 h 1 h4 880 (b a) max x [a,b] f (x) (b a) max x [a,b] f (x) (b a) max x [a,b] f (x) 9
Numerische Integration (1) Was fehlt: Gauß-Quadratur: Bestmögliche Stützstellenwahl Adaptive Verfahren: Je nach Fehler Stützstellen verdichten Extrapolationsverfahren: Analog zur Berechnung der Ableitung das Integral für h, h/, h/4,... berechnen und die Ergebnisse für eine Extrapolation verwenden. Transformation des Integrationsintervalls: Integrationsintervall so transformieren, dass die Funktion leichter zu integrieren ist. Mehrfachintegrale, z.b. Volumen unter einer Fläche f(x, y) Monte-Carlo-Methoden: Berechnung des Integrals durch zufällig gewählte Punkte (siehe Statistik-Vorlesung) 30