Algorithmen zur Dtennlyse in C++ Hrtmut Stdie 4.05.202 Algorithmen zur Dtennlyse in C++ Hrtmut Stdie / 5
Einführung Algorithmen zur Dtennlyse in C++ Hrtmut Stdie 2/ 5
Übersicht Einführung Informtionen Algorithmen zur Dtennlyse in C++ Hrtmut Stdie 3/ 5
Informtionen Abluf: Vorlesung: montgs 6:00 Hörsl III Übung: im Anschluss n die Vorlesung in 9/302 und 9/305 Mteril: Stroustrup: The C++ Progrmming Lnguge, 3rd edition http://www.mthemtik.uni-mrburg.de/ cpp/ Press et l: Numericl Recipes, 3rd edition http://wwwiexp.desy.de/studium/lehre/cplusplus/ Algorithmen zur Dtennlyse in C++ Hrtmut Stdie 4/ 5
Übersicht Einführung Einführung Newton-Cotes-Formeln Richrdson-Extrpoltion Romberg-Integrtion Algorithmen zur Dtennlyse in C++ Hrtmut Stdie 5/ 5
numerische Qudrtur: I(f ) = Mit f (x)dx = Q(f )+E(f ) () Q(f ): Qudrturformel E(f ): Fehler Algorithmen zur Dtennlyse in C++ Hrtmut Stdie 6/ 5
Newton-Cotes-Formeln Herleitung: unterteile ds Intervll [,b] in n gleich große Teilintervlle Für ein Interpoltionspolynom von f: p f n+ (x) = n f (x i )L in (x) (2) i=0 mit den Lgrnge-Polynomen L in (x) = n j=0,j i ist dnn n pn+ f (x)dx = (b ) f (x i ) (b ) i=0 x x j x i x j L in (t)dt (3) Algorithmen zur Dtennlyse in C++ Hrtmut Stdie 7/ 5
Newton-Cotes-Formeln Definition: f (x)dx mit den Gewichten w i = (b ) L in(t)dt. Beispiel: Trpezregel n = mit und f (x)dx = (b ) w 0 = w = (b ) (b ) n pn+ f (x)dx = (b ) w i f (x i ) (4) i=0 2 w i f (x i ) = (b )[w 0 f () + w f (b)] i=0 L 0 (t)dt = L (t)dt = b t b (b ) b dt b t (b ) b dt Algorithmen zur Dtennlyse in C++ Hrtmut Stdie 8/ 5
Beispiel: Trpezregel n = b t b w 0 = (b ) b dt = b2 2 2b 2 + 2b = 2(b )( b) 2 w = (b ) t b dt = (b2 2 + 2 2 2b) 2(b ) 2 = 2 I(f ) = f (x)dx = h[ 2 f () + h3 f (b)] + O( 2 2 f ) Algorithmen zur Dtennlyse in C++ Hrtmut Stdie 9/ 5
Newton-Cotes-Formeln Grd n Nme Gewichte w i Fehler 0 Rechteckregel 0 h 2 2 f (ξ) Trpezregel 2 2 h 3 2 f (ξ) 2 Simpson-Regel Keplersche Fssregel 6 4 6 6 ( 2 h)5 90 f (4) (ξ) 3 3/8 - Regel Pulcherrim 8 3 8 3 8 8 3( 3 h)5 80 f (4) (ξ) 4 Milne-Regel 7 90 32 90 2 90 32 90 7 90 8( 4 h)7 945 f (6) (ξ) 5 9 288 75 288 50 288 50 288 75 288 9 288 6 Weddle-Regel 4 840 26 840 27 840 272 840 27 840 26 840 4 840 Algorithmen zur Dtennlyse in C++ Hrtmut Stdie 0/ 5
Summierte Trpezregel n = w 0 = x t x dt (x x 0 ) x 0 x 0 x w = I(f ) = = x 2 x0 2 2x 2 + 2x 0 x = 2(x x 0 )(x 0 x ) 2 (x x 0 ) x t x 0 dt x 0 x x 0 = (x 2 x0 2 + 2x0 2 2x 0 x ) = 2(x x 0 ) 2 2 x x 0 f (x)dx = h[ 2 f (x 0) + 2 f (x )] + O( h3 2 f ) ( ) I(f ) = h 2 f () + n 2 f (b) + f ( + ih) i= mit h = b n (5) Algorithmen zur Dtennlyse in C++ Hrtmut Stdie / 5
Summierte Regeln Summierte Regeln: Trpezregel: ( I(f ) = T n + E n = h 2 f (x 0) + f (x ) + f (x 2 ) +... + f (x n ) + ) 2 f (xn) + E n (6) mit h = b und Fehler E n n = O(nh 3 f ) = O(n( b n )3 f ) = O( (b )3 )f n 2 Simpson-Regel: ( I(f ) = h 3 f (x 0) + 4 3 f (x ) + 2 3 f (x 2) + 4 3 f (x 3)... + 4 3 f (x n ) + ) 3 f (xn) +O( n ) 4 (7) Fehlerverhlten der T n Fehler zweier Itertionsschritte: E 2n = 4 En Betrchte: T = 4 T 3 2n 3 Tn Fehler der Ordnung heben sich uf. T ht Fehler der Ordnung : n 2 n 4 Simpson-Regel! Algorithmen zur Dtennlyse in C++ Hrtmut Stdie 2/ 5
Richrdson-Extrpoltion Richrdson-Extrpoltion Für zwei Näherungen U u und U g us einem Verfhren p-ter Ordnung mit verschiedenen Diskretisierungen mit den Schrittweiten h u und h g ist U R = U u U g ( hu h g ) p ( hu h g ) p = U g + U g U u ( hu h g ) p (8) eine bessere Näherung. Algorithmen zur Dtennlyse in C++ Hrtmut Stdie 3/ 5
Romberg-Integrtion Romberg-Integrtion Führe eine Richrdson-Extrpoltion über die Schrittweite h n = b 2 einer summierten Qudrturformel, z.b. Trpezregel, n durch. Algorithmen zur Dtennlyse in C++ Hrtmut Stdie 4/ 5
Romberg-Integrtion Romberg-Integrtion Anleitung: I, = h 2 I n, = h n 2 (f () + f (b))(trpezregel) (9) h hn f () + f (b) + 2 f ( + i h n ) (0) i= I n,k = I n+,k + I n+,k I n,k ( hn h n+ ) 2(k ) () Fehler: E = I,n+ I,n I,n Algorithmen zur Dtennlyse in C++ Hrtmut Stdie 5/ 5