Einführung in numerische Methoden für Ingenieure (nach A. Quarteroni, F. Saleri: Wissenschaftliches Rechnen mit MATLAB) Prof. R. Leithner, Dipl. Phys. E. Zander Wintersemester 2010/2011
Kapitel 4 Numerische Differentiation und Integration Prof. R. Leithner, E. Zander Einführung in numerische Methoden für Ingenieure 4/2
Integration und Differentiation Probleme bei der Integration und Differentiation von Funktionen Explizite Stammfunktionen existieren nicht immer, oder... Stammfunktion schwierig/aufwendig auszuwerten Beispiel: Funktion f(x) = cos(4x) cos(3 sin(x)), bestimmtes Integral über das Intervall [0, π] π 0 f(x)dx = π ( 3 2 ) 4 k=0 ( 9/4) k k!(k + 4)! Funktion ist nur an einigen Punkten bekannt (Messungen) Numerische Verfahren zur Näherung von Integralen und Ableitungen notwendig Prof. R. Leithner, E. Zander Einführung in numerische Methoden für Ingenieure 4/3
Beispiel 1: Hydraulik Messgröße: Flüssigkeitsstand z(t) in einem Trichter gemessen zu verschiedenen Zeiten t t 0 5 10 15 20 z(t) 1.0 0.8811 0.7366 0.5430 0.1698 Gesucht: Ausflussgeschwindigkeit z (t) ermittelt aus Messwerten z(t i ) Vergleich mit exaktem Verlauf: z (t) = 0.6 πr2 2 9.8 z(t) A(z) mit A(z) Querschnitt des Trichters in Höhe z, Radius des Ausflusses r = 0.01m, Öffnungswinkel des Trichters 90 Prof. R. Leithner, E. Zander Einführung in numerische Methoden für Ingenieure 4/4
Beispiel 2: Optik Berechnung der Energie eines schwarzen Strahlers im Infraroten Wellenlängenbereich 3µm bis 14µm Strahlungsleistung wird beschrieben durch Plank-Gleichung führt auf das Integral 14 10 4 E(T ) = 2.39 10 11 dx 3 10 4 x 5 (e 1.432/(T x) 1) mit Temperatur T (in Kelvin), Wellenlänge x (in cm) Integral hat keine analytische Lösung Prof. R. Leithner, E. Zander Einführung in numerische Methoden für Ingenieure 4/5
[ Prof. R. Leithner, E. Zander Einführung in numerische Methoden für Ingenieure 4/6
Ableitungen]Approximation der Ableitung Prof. R. Leithner, E. Zander Einführung in numerische Methoden für Ingenieure 4/7
Approximation der Ableitung Betrachte Funktion f : [a, b] R, f stetig differenzierbar Aufgabe: Approximiere erste Ableitung von f in einem beliebigen Punkt x [a, b] Erinnerung: Ableitung = Grenzwert des Differenzenquotienten f f(x + h) f(x) (x) = lim h 0 h Approximation von f durch finite Vorwärtsdifferenzen f(x + h) f(x) (δ + f)(x) = h Prof. R. Leithner, E. Zander Einführung in numerische Methoden für Ingenieure 4/7
Finite Vorwärtsdifferenzen Abschätzung des Fehlers: Betrachte Taylor-Entwicklung von f um x. Es gilt: f(x + h) = f(x) + hf (x) + h2 2 f (ξ) für ein bestimmtes (i.d.r. unbekanntes) ξ (x, x + h) Daher gilt: (δ + f)(x) = f (x) + h 2 f (ξ) Fehlerordnung: δ + f approximiert f mit erster Ordnung bezüglich h Prof. R. Leithner, E. Zander Einführung in numerische Methoden für Ingenieure 4/8
Finite Rückwärtsdifferenzen Analog gilt in die andere Richtung: f(x h) = f(x) hf (x) + h2 2 f (η) für ein bestimmtes η (x h, x) Daraus erhalten wir die finiten Rückwärtsdifferenzen f(x) f(x h) (δ f)(x) = h mit der Fehlerabschätzung (δ f)(x) = f (x) + h 2 f (η) Ebenfalls erster Ordnung bezüglich h Prof. R. Leithner, E. Zander Einführung in numerische Methoden für Ingenieure 4/9
Zentrale Differenzen Höhere Ordnung möglich mit zentralen finiten Differenzen f(x + h) f(x h) (δf)(x) = 2h Fehlerabschätzung liefert (δf)(x) f (x) = h2 12 (f (ξ) + f (η)) Approximation ist von zweiter Ordnung in h Kann gesehen werden als Mittelwert von Vorwärts- und Rückwärtsdifferenzen Fehler erster Ordnung mittelt sich heraus Prof. R. Leithner, E. Zander Einführung in numerische Methoden für Ingenieure 4/10
Finite Differenzen Quelle: A. Quarteroni, F. Saleri Vergleich verschiedener Finite-Differenzen-Approximation: Rückwärtsdifferenzen (durchgehend), Vorwärtsdifferenzen (punktiert) und zentrale Differenzen (unterbrochen) Prof. R. Leithner, E. Zander Einführung in numerische Methoden für Ingenieure 4/11
Beispiel finite Differenzen Hydraulik-Problem Berechnung der Austrittsgeschwindigkeit der Flüssigkeit mit der exakten Formel, sowie mit Vorwärts-, Rückwärts- und zentralen Differenzen (mit h = 5). t 0.0 5 10 15 20 z (t) 0.0220 0.0259 0.0326 0.0473 0.1504 δ + z 0.0238 0.0289 0.0387 0.0746 δ z 0.0238 0.0289 0.0387 0.0746 δz 0.0263 0.0338 0.0567 Prof. R. Leithner, E. Zander Einführung in numerische Methoden für Ingenieure 4/12
Finite Differenzen an Randpunkten Zentrale Differenzen können nur an Punkten x 1,..., x n 1 angewandt werden Nicht an Randpunkten x 0 und x n verwendbar Lösung: berechne Interpolationspolynom f vom Grad 2 durch die Punkte x 0, x 1, x 2 bzw x n 2, x n 1, x n Ableitung von f in x 0 bzw. x n liefert: 1 2h [ 3f(x 0) + 4f(x 1 ) f(x 2 )] 1 2h [3f(x n) 4f(x n 1 ) + f(x n 2 )] Genauigkeit zweiter Ordnung Prof. R. Leithner, E. Zander Einführung in numerische Methoden für Ingenieure 4/13
Numerische Integration Prof. R. Leithner, E. Zander Einführung in numerische Methoden für Ingenieure 4/14
Numerische Integration Gesucht: Approximation des Integrals f beliebige Funktion auf [a, b] I(f) = b a f(x)dx Approximation durch Quadraturformel n Ĩ(f) = w i f(x i ) i=1 mit Knoten x i und Gewichten w i für i = 1,..., n Exaktheitsgrad einer Quadraturformel: Grad des höchsten Polynoms, dass noch exakt integriert wird. Prof. R. Leithner, E. Zander Einführung in numerische Methoden für Ingenieure 4/15
Mittelpunktsformel Idee: unterteile das Intervall [a, b] in M Teilintervalle I k = [x k 1, x k ] Länge der Teilintervalle H = (b a)/m, Endpunkte x k = a + kh Approximiere f auf jedem Teilintervall durch das konstante Polynom f mit Interpolationsknoten x k = x k 1+x k 2 Quelle: A. Quarteroni, F. Saleri Prof. R. Leithner, E. Zander Einführung in numerische Methoden für Ingenieure 4/16
Fehler der Mittelpunktsformel Damit erhält man die zusammengesetzte Mittelpunktsformel M Imp(f) z = H f( x k ) k=1 (mp für Mittelpunkt, z für zusammengesetzt) Mittelpunktsformel hat Genauigkeitsordnung 2 und Exaktheitsgrad 1 Wenn f zweimal stetig differenzierbar I(f) I z mp(f) = b a 24 H2 f (ξ) Prof. R. Leithner, E. Zander Einführung in numerische Methoden für Ingenieure 4/17
Klassische Mittelpunktsformel Klassische Mittelpunktsformel für M = 1 d.h. Mittelpunktsformel angewandt auf das ganze Intervall I mp (f) = (b a)f((a + b)/2) Fehler der klassischen Mittelpunktsformel (b a)3 I(f) I mp (f) = f (ξ) 24 Quelle: A. Quarteroni, F. Saleri Prof. R. Leithner, E. Zander Einführung in numerische Methoden für Ingenieure 4/18
Fehler der Mittelpunktsformel Herleitung der Fehlerabschätzung I(f) I mp (f) = = b a b η(x) Punkt zwischen x und x a (f(x) f( x))dx f (x)(x x)dx + 1 2 Benutze b a (x x) = 0 und Mittelwertsatz b a f (η(x))(x x) 2 dx = f (ɛ) = b a b a (b a)3 f (ɛ) 24 f (η(x))(x x) 2 dx (x x) 2 dx Prof. R. Leithner, E. Zander Einführung in numerische Methoden für Ingenieure 4/19
Implementierung der Mittelpunktsformel function Imp = midpointc (a,b,m,fun ) % MIDPOINTC Composite midpoint numerical integration. % IMP = MIDPOINTC (A,B,M,FUN ) computes an approxi - % mation of the integral of the function FUN via % the midpoint method ( with M equispaced intervals ). H=(b-a)/M; x = linspace (a+h/2,b-h/2,m); fmp = feval (fun,x); Imp =H* sum ( fmp ); Prof. R. Leithner, E. Zander Einführung in numerische Methoden für Ingenieure 4/20
Die Trapezformel Verwende zur Approximation des Integrals das stückweise lineare Interpolationspolynom Π H 1 ersetze auf jedem Teilintervall I k = (x k 1, x k ) die Funktion f durch die interpolierende Gerade Quelle: A. Quarteroni, F. Saleri Prof. R. Leithner, E. Zander Einführung in numerische Methoden für Ingenieure 4/21
Die Trapezformel Zusammengesetzte Trapezformel It z (f) = H M (f(x k 1 ) + f(x k )) 2 k=1 = H M 1 2 (f(a) + f(b)) + H f(x k ) k=1 Fehlerabschätzung (ξ (a, b) und f C 2 (a, b)) I(f) I z t (f) = b a 12 H2 f (ξ) Genauigkeitsordnung 2 bezüglich H und Exaktheitsgrad 1 Prof. R. Leithner, E. Zander Einführung in numerische Methoden für Ingenieure 4/22
Klassische Trapezformel Klassische Trapezformel Fehlerabschätzung I t (f) = b a (f(b) + f(a)) 2 I(f) I t (f) = (b a)3 f (ξ) 12 Quelle: A. Quarteroni, F. Saleri Prof. R. Leithner, E. Zander Einführung in numerische Methoden für Ingenieure 4/23
Gauß-Quadratur Verwende Interpolationspolynom vom Grad 1 in sogenannten Gauß-Knoten ( γ k 1 = x k 1 + 1 1 ) H ( 3 2 γ k = x k 1 + 1 + 1 ) H 3 2 Gauß-Quadraturformel IGauss(f) z = H M (f(γ k 1 ) + f(γ k )) 2 k=1 Genauigkeitsordnung 4, da für f C 4 (a, b) I(f) I z Gauss = b a 4320 H4 f (4) (ξ) Exaktheitsgrad 3 Prof. R. Leithner, E. Zander Einführung in numerische Methoden für Ingenieure 4/24
Implementierung Trapez- und Gaußregel function [ Itpc ]= trapc (a,b,m,f,choice, varargin ) H=(b-a)/M; switch choice case trapez x= linspace (a,b,m +1); fpm = feval (f,x, varargin {:}); fpm (2: end -1)=2* fpm (2: end -1); Itpc =0.5* H* sum ( fpm ); case gauss z= linspace (a,b,m +1); x=z (1: end -1)+ H /2*(1-1/ sqrt (3)); x=[x, x+h/ sqrt (3)]; fpm = feval (f,x, varargin {:}); Itpc =0.5* H* sum ( fpm ); end Prof. R. Leithner, E. Zander Einführung in numerische Methoden für Ingenieure 4/25
Vergleich der Quadraturregeln Beispiel: Approximation von I(f) = 2π Exakter Wert: 0.122122604618968... Definition der Funktion in Matlab 0 xe x cos(2x)dx f=@(x)(x.*exp(-x).*cos(2*x) @(x) definiert anonyme Funktion mit einem Argument x, Multiplikation mit erfolgt.* komponentenweise Berechnung der Quadraturformeln mit verschiedenen Schrittweiten H Prof. R. Leithner, E. Zander Einführung in numerische Methoden für Ingenieure 4/26
Vergleich der Quadraturregeln Quelle: A. Quarteroni, F. Saleri Horizontal: Schrittweite h, vertikal: Fehler I(f) I h (f) Zusammengesetzte Gaußregel (durchgezogen mit Kreisen), Mittelpunktsregel (durchgezogen) und Trapezregel (unterbrochen) Prof. R. Leithner, E. Zander Einführung in numerische Methoden für Ingenieure 4/27
Die Simpson-Regel Gesucht: Quadraturregel mit höherer Genauigkeit als O(H 2 ) Ansatz 1: Kombiniere die Trapez- und die Mittelpunktsregel so, dass im Fehler Terme zweiter Ordnung in H wegfallen Ansatz 2: Benutze Interpolationspolynom f durch beide Randpunkte x k 1, x k und den Mittelpunkt x k, berechne x k x k 1 fdx Aus beiden Ansätzen folgt: Is z (f) = H M (f(x k 1 ) + 4f( x k ) + f(x k )), 6 k=1 die sogenannte zusammengesetzte Simpson-Regel Prof. R. Leithner, E. Zander Einführung in numerische Methoden für Ingenieure 4/28
Die Simpson-Regel Für den Quadraturfehler gilt: I(f) Is z (f) = b a H 4 180 16 f (4) (ξ) mit geeignetem ξ (a, b) Genauigkeitsordnung 4, Exaktheitsgrad 3 Einfache Simpson-Regel I s (f) = b a (f(a) + 4f((a + b)/2) + f(b)) 6 Fehler der einfachen Simpson-Regel I(f) Is z (f) = 1 (b a) 5 f (4) (ξ) 180 16 Prof. R. Leithner, E. Zander Einführung in numerische Methoden für Ingenieure 4/29
Implementierung der Simpson-Regel function [ Isic ]= simpsonc (a,b,m,f, varargin ) % SIMPSONC Composite Simpson numerical integration. % ISIC = SIMPSONC (A,B,M,FUN ) computes an approxi - % mation of the integral of the function FUN via % the Simpson method ( with M equispaced intervals ). H=(b-a)/M; x= linspace (a,b,m +1); fpm = feval (f,x, varargin {:}); fpm (2: end -1) = 2* fpm (2: end -1); Isic =H* sum ( fpm )/6; x= linspace (a+h/2,b-h/2,m); fpm = feval (f,x, varargin {:}); Isic = Isic +2* H* sum ( fpm )/3; Prof. R. Leithner, E. Zander Einführung in numerische Methoden für Ingenieure 4/30
Interpolationsformeln Bisherige Interpolationsformeln alle Interpolationsformeln Knoten x i gegeben; Wie bestimmt man die Gewichte w i? Sei f Interpolationspolynom in Lagrange-Form b a f(x)dx = = = b a b a i=0 f(x)dx n f(x i )ϕ i (x)dx i=0 b n f(x i ) ϕ i (x)dx a } {{ } =w i Gewichte = Integral über Lagrange-Basispolynome ϕ i Prof. R. Leithner, E. Zander Einführung in numerische Methoden für Ingenieure 4/31
Interpolationsformeln Newton-Cotes-Formeln: Interpolationsformeln mit äquidistanten Knoten Geschlossene Newton-Cotes-Formeln: enthalten die Randknoten x i = a + i(b a)/n, i = 0,..., n Beispiel: Trapezregel (n = 1), Simpsonregel (n = 2) Offene Newton-Cotes-Formeln: enthalten die Randknoten nicht x i = a + i(b a)/n, i = 1,..., n 1 Beispiel: Mittelpunktsregel (n = 2) Prof. R. Leithner, E. Zander Einführung in numerische Methoden für Ingenieure 4/32
Interpolationsformeln Weitere Interpolationsformeln Gauß-Regeln: Wahl der Knoten und der Gewichte, so dass höchste Genauigkeitsordnung erreicht wird Gaußregel mit n Knoten hat Genauigkeitsordnung 2n (Exaktheitsgrad 2n 1) Höherer Exaktheitsgrad ( 2n) nicht erreichbar mit n Knoten Clenshaw-Curtis-Regeln: Knoten auf den Chebyshev-Knoten niedrigere Genauigkeitsordnung als Gauß-Regeln aber Konvergenz vergleichbar Vorteil: Knoten von Regeln höherer Ordnung sind geschachtelt in denen niedriger Ordnung: gut für adaptive Verfahren Prof. R. Leithner, E. Zander Einführung in numerische Methoden für Ingenieure 4/33
Zusammenfassung Quadraturformel approximiert das Integral einer stetigen Funktion f auf einem Intervall (a, b) Linearkombination der Werte von f in bestimmten Knoten, multipliziert mit geeigneten Gewichten Exaktheitsgrad: höchste Grad von Polynomen, die von der Formel exakt integriert werden. Für Mittelpunkts- und die Trapezformel gleich 1, für die Simpsonund (2-Punkt-) Gauß-Formel gleich 3 Zusammengesetzte Quadraturformel hat Genauigkeitsordnung p, falls der Fehler wie H p gegen 0 strebt (für H 0) Für zusammengesetzte Mittelpunkts- und Trapezformel gleich 2, für die zusammengesetzten Simpson- und Gauß-Formeln gleich 4 Prof. R. Leithner, E. Zander Einführung in numerische Methoden für Ingenieure 4/34
Adaptive Verfahren Prof. R. Leithner, E. Zander Einführung in numerische Methoden für Ingenieure 4/35
Adaptive Verfahren Gesucht: Schrittweite H, so dass Fehler der Quadraturformel kleiner als vorgegebene Toleranz ɛ Beispiel Simpson-Regel: Ungleichung zwischen Fehler und Toleranz b a H 4 180 16 max f (4) (x) ɛ x [a,b] muss erfüllt sein Problem: H muss sehr klein gewählt werden, wenn f (4) (auch in einem sehr kleinen Abschnitt) sehr groß ist Außerdem: f (4) meist unbekannt Besser: adaptives Verfahren wähle Schrittweite nur da klein, wo der Fehler groß ist Prof. R. Leithner, E. Zander Einführung in numerische Methoden für Ingenieure 4/36
Adaptive Quadraturverfahren Grobe Idee des adaptiven Verfahrens: 1 Starte mit dem gesamten Intervall 2 Berechne Approximation auf diesem Intervall und schätze den Fehler 3 Wenn Fehler klein genug (Fall I), füge Wert dem gesamten Integral hinzu 4 Wenn Fehler zu groß (Fall II), halbiere das Intervall und wende die gleiche Idee auf beiden Teilintervallen an (d.h. fange wieder bei Punkt 4 an) Aufgabe: Idee konkretisieren (d.h. in exakten Algorithmus umsetzen) und geeigneten Fehlerschätzer für Punkt 2 finden Prof. R. Leithner, E. Zander Einführung in numerische Methoden für Ingenieure 4/37
Adaptive Verfahren Für adaptives Verfahren wird also gebraucht: Zuverlässiger Fehlerschätzer Automatismus zur Anpassung der Schrittweite H Idee des Verfahrens: Setze H = b a und berechne Approximation I s (f) auf (a, b) Wenn Fehler kleiner als Toleranz (Fall I), stoppe das Verfahren Andernfalls, halbiere H solange bis der Fehler auf (a, a + H) klein genug ist Wiederhole die Prozedur auf dem restlichen Intervall (a + H, b) Achtung: die Toleranz auf den Teilintervallen muss natürlich kleiner sein als auf dem gesamten Prof. R. Leithner, E. Zander Einführung in numerische Methoden für Ingenieure 4/38
Adaptive Verfahren Notation und Bezeichnungen zur Beschreibung des Algorithmus Zerlegung des Intervalls (a, b) in Teilintervalle S bereits untersuchtes Intervall (anfangs ) A aktives Intervall (anfangs (a, b)) N noch zu untersuchendes Intervall (anfangs ) Es gilt immer: S A N = (a, b) Grenzen des aktiven Intervalls A = (α, β) J s Approximation des Integrals auf dem untersuchten Intervall S, J A = I S (f; α, β) Approximation auf dem aktiven Intervall A Prof. R. Leithner, E. Zander Einführung in numerische Methoden für Ingenieure 4/39
Adaptive Quadraturverfahren Fall I: Fehler im Intervall ist klein genug Folge: Intervall A kommt zu dem bereits untersuchten Intervall S und N wird das neue aktive Intervall Verändere die Intervalle: Summiere: J S J S + J A S S A, A N, N Prof. R. Leithner, E. Zander Einführung in numerische Methoden für Ingenieure 4/40
Adaptive Quadraturverfahren Fall II: Fehler im Intervall ist noch zu groß Folge: Intervall A wird weiter unterteilt: der linke Teil A wird das neue aktive Intervall, der rechte Teil A kommt zum noch zu untersuchenden Intervall N hinzu Verändere die Intervalle: S S, A A, N A N mit A = A A J S wird nicht verändert Prof. R. Leithner, E. Zander Einführung in numerische Methoden für Ingenieure 4/41
Implementierung der adaptiven Simpson-Formel function [ JSf ]= simpadpt (f,a,b,tol, hmin ) A=[a,b]; N =[]; S =[]; JSf = 0; L = b - a; while ~ isempty (A), [ deltai, ISc ]= CalcDeltaI (A,f); if abs ( deltai ) <= 15* tol *(A(2) -A (1))/ L... A(2) -A(1) < hmin JSf = JSf + ISc ; S = [S(1), A (2)]; A = N; N = []; else x = (A (1)+ A (2))*0.5; A = [A (1) x]; N = [x, b]; end end Prof. R. Leithner, E. Zander Einführung in numerische Methoden für Ingenieure 4/42
Fehlerschätzer Gesucht: geeigneter Fehlerschätzer Betrachte: I S (f; (α, β)) auf Teilintervall (α, β) Fehler sollte auf Teilintervall proportional weniger betragen als auf dem gesamten Intervall Toleranz auf (α, β) kleiner gleich: ɛ(β α)/(b a) Für den Fehler der Simpson-Formel gilt: (β α)5 I(f; α, β) I s (f; α, β) = 2880 f (4) (ξ) = E s (f; α, β) Forderung: E s (f; α, β) ɛ(β α)/(b a) Problem: ξ unbekannt Prof. R. Leithner, E. Zander Einführung in numerische Methoden für Ingenieure 4/43
Fehlerschätzer Idee: Abschätzung durch Berechnung der Approximation mit verschiedenen Schrittweiten Für das zusammengesetzte Verfahren mit M = 2 gilt I(f; α, β) Is(f; c (β α)5 α, β) = 46080 f (4) (η) Annahme: f (4) annähernd konstant auf dem Intervall Dann gilt mit I = I c s(f; α, β) I s (f; α, β) I(f; α, β) I c s(f; α, β) 1 15 I Akzeptiere I c s(f; α, β) als Approximation für I(f; α, β) nur, wenn I < 15ɛ(β α)/(b a) Prof. R. Leithner, E. Zander Einführung in numerische Methoden für Ingenieure 4/44
Implementierung der adaptiven Simpson-Formel function [ deltai, ISc ]= CalcDeltaI (A,f) L=A(2) -A (1); t =[0; 0.25; 0.5; 0.5; 0.75; 1]; x=l*t+a (1); L=L /6; w =[1; 4; 1]; fx= feval (f,x); IS=L* sum (fx ([1 3 6]).* w); ISc =0.5* L* sum (fx.*[ w;w ]); deltai =IS - ISc ; Prof. R. Leithner, E. Zander Einführung in numerische Methoden für Ingenieure 4/45
Beispiel adaptive Simpson-Formel Berechne I(f) = Ausführen des Programms mit 1 1 e 10(x 1)2 dx >> fun =@(x)( exp ( -10*(x -1).^2)); >> tol = 1.e -04; hmin = 1.e -03; >> JSf = simpadpt2 (,-1,1,tol, hmin ) Erhaltener Wert: 0.28024765884708 Exakter Wert: 0.28024956081990 Differenz ca. 10 5, kleiner als Toleranz ɛ = 10 4 10 Teilintervalle ausreichend (Dagegen: zusammengesetzte Simpson-Formel für gleiche Genauigkeit: 22 Teilintervalle) Prof. R. Leithner, E. Zander Einführung in numerische Methoden für Ingenieure 4/46