03.10.2013 Aufrufe

Einführung in die Programmierung numerischer und ... - Desy

Einführung in die Programmierung numerischer und ... - Desy

Einführung in die Programmierung numerischer und ... - Desy

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

<strong>E<strong>in</strong>führung</strong> <strong>in</strong> <strong>die</strong> <strong>Programmierung</strong><br />

<strong>numerischer</strong> <strong>und</strong> statistischer Methoden<br />

<strong>in</strong> C++<br />

Teil II: Numerische <strong>und</strong> Statistische Methoden<br />

Vorlesung 7: Numerisches Lösen von Differentialgleichungen<br />

Hartmut Sta<strong>die</strong> & Christian Sander<br />

SS 2008<br />

Universität Hamburg


Gewöhnliche DGL<br />

● Gewöhnliche DGL n-ter Ordnung hängen nur von den Ableitungen der<br />

gesuchte Funktion y(x) nach genau e<strong>in</strong>er Variable x ab:<br />

f (x, y(x), y'(x), y''(x), ..., y (n) (x)) = 0<br />

● Ist f e<strong>in</strong>e Funktion mit m-Komponenten, so nennt man sie e<strong>in</strong><br />

gewöhnliches Differentialgleichungssystem n-ter Ordnung von m<br />

Gleichungen<br />

● Gewöhnliche Differentialgleichungen beliebiger Ordnung lassen sich<br />

immer auf e<strong>in</strong> System von gewöhnlichen Differentialgleichungen erster<br />

Ordnung zurückführen :<br />

Hilfsfunktionen y 1 , y 2 , ..., y n mit: y 1 ' = y 2 , y 2 ' = y 3 , ... y n−1 ' = y n <strong>und</strong><br />

y n ' = f (x, y 1 , y 2 , ..., y n )<br />

2


Gewöhnliche DGL<br />

● Kann e<strong>in</strong>e DGL nach der höchsten vorkommenden Ableitung aufgelöst<br />

werden<br />

y (n) (x) = f (x, y'(x), y''(x), ..., y (n−1) (x))<br />

so nennt man sie explizit, ansonsten implizit.<br />

● Sucht man e<strong>in</strong>e spezielle Lösung der DGL, <strong>die</strong> Anfangsbed<strong>in</strong>gungen<br />

der Form<br />

y(x 0 ) = y 0 , y'(x 0 ) = y 1 , ..., y (n−1) (x 0 ) = y n−1<br />

erfüllt, so spricht man von e<strong>in</strong>em Anfangswertproblem.<br />

● Ist f l<strong>in</strong>ear <strong>in</strong> den Ableitungen y (k) (x) (k = 0 ... n), so nenn man <strong>die</strong> DGL<br />

l<strong>in</strong>ear<br />

● Hängt f nicht explizit von x ab, so nennt man <strong>die</strong> DGL autonom<br />

3


●Beispiel: Radioaktiver Zerfall<br />

Gewöhnliche DGL<br />

●Die Anzahl der <strong>in</strong> e<strong>in</strong>em Zeit<strong>in</strong>tervall dt zerfallenden Kerne ist<br />

proportional zur Gesamtzahl der radioaktiven Atome<br />

●Beispiel: Newtonsche Bewegungsgleichung<br />

m⋅d 2<br />

dN<br />

dt =⋅N<br />

dt 2 x t= F t , x t<br />

●System l<strong>in</strong>earer DGL 2ter Ordnung<br />

4


Gewöhnliche DGL<br />

● Da sich nur wenige Typen von DGL analytisch lösen lassen<br />

verwendet man häufig numerische Lösungsverfahren<br />

● Wir wollen hier <strong>die</strong> folgenden numerischen Methoden für<br />

gewöhnliche DGL behandeln:<br />

● E<strong>in</strong>schritt-Verfahren<br />

● Eulersches Polygonzug-Verfahren (explizites Euler-Verfahren)<br />

● Implizites Euler-Verfahren<br />

● Methode von Heun<br />

● Runge-Kutta-Verfahren<br />

● Mehrschritt-Verfahren<br />

● Adams-Bashforth-Methode (explizit)<br />

● Adams-Moulton-Methode (implizit)<br />

5


E<strong>in</strong>schrittverfahren<br />

● E<strong>in</strong>schrittverfahren benützen zur Berechnung der Näherung an <strong>die</strong><br />

Lösung im nächsten Zeitpunkt nur Informationen des aktuellen<br />

Zeitpunktes.<br />

● Näherungslösung u des Anfangswertproblems<br />

ist gegeben durch<br />

y'(x) = f (x, y(x)) mit y(x 0 ) = y 0<br />

u(x i+1 ) = u(x i ) + h ∙ Φ(x i , u(x i ), h, f )<br />

● Dabei wird Φ als Inkrementfunktion bezeichnet<br />

● Alternativ: Rekursionsformel der folgenden Art verwenden:<br />

u(x i+1 ) = u(x i ) + h ∙ Φ(x i , u(x i ), u(x i+1 ), h, f )<br />

● Hängt Φ nicht von u(x i+1 ) ab, so wird das Verfahren explizit genannt<br />

(sonst implizit)<br />

6


Eulersches Polygonzug-Verfahren<br />

● Entwickelt von Leonhard Euler (1707-1783)<br />

● Ist e<strong>in</strong> explizites E<strong>in</strong>schrittverfahren<br />

y'(x) = f (x, y(x)) mit y(x 0 ) = y 0<br />

● man wählt e<strong>in</strong>e Diskretisierungs-Schrittweite h > 0 <strong>und</strong> betrachte <strong>die</strong> diskreten<br />

x-Werte<br />

x k = x 0 + k∙h mit k = 1, 2, ...<br />

● Iterative Berechnung der Näherungswerte<br />

y k+1 = y k + h ∙ f (x k , y k )<br />

● Die y k s<strong>in</strong>d Näherungen an <strong>die</strong> wahre Lösung y(x k )<br />

● Interpretation: l<strong>in</strong>eare Taylorentwicklung<br />

● Je kle<strong>in</strong>er <strong>die</strong> Schrittweite h, desto genauer <strong>die</strong> Näherung<br />

7


Eulersches Polygonzug-Verfahren<br />

●Die e<strong>in</strong>zelnen Näherungslösungen (x k , y (x k )) können als Punkte A k<br />

e<strong>in</strong>es Polygonzuges <strong>in</strong>terpretiert werden<br />

y(x)<br />

x<br />

8


Eulersches Polygonzug-Verfahren<br />

● Fehlerabschätzung: vergleiche Näherung y 1<br />

y 1 = y 0 + h ∙ f (x 0 , y 0 ) = y 0 + h ∙ y'(x 0 )<br />

● mit der Taylorentwicklung von y um x 0 unter der Voraussetzung, dass<br />

y(x 0 ) = y 0 bekannt ist<br />

y 1 = y 0 + y'(x 0 ) ∙ h + ½ ∙ y''(x 0 ) ∙ h 2 + O(h 3 )<br />

● Der Fehler für den ersten Schritt ist<br />

½ ∙ y''(x 0 ) ∙ h 2 + O(h 3 )<br />

● Für kle<strong>in</strong>e h ist der Fehler also proportional zu h 2 . Für e<strong>in</strong>e Berechnung<br />

über e<strong>in</strong> Intervall [x 0 ,x] benötigt man e<strong>in</strong>e Anzahl von Schritten<br />

proportional zu 1/h. Also wird näherungsweise der Gesamtfehler<br />

proportional zu h se<strong>in</strong>. Man spricht von e<strong>in</strong>em Verfahren erster<br />

Ordnung.<br />

9


Implizites Euler-Verfahren<br />

● Gesucht ist <strong>die</strong> Lösung der DGL<br />

● Diskretisierung von x<br />

y'(x) = f (x, y(x)) mit y(x 0 ) = y 0<br />

x k = x 0 + k ∙ h mit k = 1, 2, ...<br />

● iterative Berechnung der Näherungswerte<br />

y k+1 = y k + h ∙ f (x k+1 , y k+1 )<br />

● Anschauliche Beschreibung: Auswertung der Ableitung am Zielpunkt<br />

<strong>und</strong> nicht am Ausgangspunkt<br />

● f (x k+1 , y k+1 ) ist nicht explizit, sondern nur implizit gegeben. Auflösen der<br />

Gleichung nach y k+1 (Problemabhängig)<br />

● Implizit heißt nicht, dass es e<strong>in</strong>en implizite DGL se<strong>in</strong> muss<br />

10


Implizites Euler-Verfahren<br />

● Beispiel: Gesucht ist <strong>die</strong> Lösung des Anfangswertproblems<br />

y'(x) = f (y) = a – b ∙ y mit y (x 0 ) = y 0<br />

● f (y) soll am Ziel des Iterationsschrittes ausgewertet werden<br />

● also<br />

● <strong>und</strong> auflösen nach y k+1<br />

y k+1 = y k + h ∙ f (y k+1 )<br />

y k+1 = y k + h ∙ (a – b ∙ y k+1 )<br />

y k+1 = ( y k + h ∙ a ) / ( 1 – h ∙ b )<br />

● Das Verfahren ist von erster Ordnung; es gibt ke<strong>in</strong>e E<strong>in</strong>schränkung der<br />

Zeitschritte bzgl. der Stabilität; besonders <strong>in</strong>teressant für Probleme, <strong>die</strong><br />

e<strong>in</strong>em stabilen Zustand entgegenstreben.<br />

11


Methode von Heun<br />

● Entwickelt von Karl Heun (1859-1929)<br />

● Gesucht sei wieder <strong>die</strong> Lösung der DGL zu e<strong>in</strong>em<br />

bestimmten Wert x 1<br />

● Integration liefert:<br />

y'(x) = f (x, y (x)) mit y (x 0 ) = y 0<br />

● Auswertung des Integrals mit numerischen Verfahren; z.B. mit<br />

Trapezregel<br />

y 1 = y 0 + h/2 ∙ (f (x 0 ,y 0 ) + f (x 1 ,y 1 ))<br />

●<br />

*<br />

Die rechte Seite der Gleichung hängt von y ab; E<strong>in</strong>e Näherung y 1 1<br />

erhält man durch l<strong>in</strong>eare Extrapolation von x 0 nach x 1<br />

x 1<br />

y x 1= y x 0∫ x0<br />

f x , ydx<br />

12


Methode von Heun<br />

* y = y0 + h ∙ f (x , y )<br />

1<br />

0 0<br />

●<br />

* Mit <strong>die</strong>ser Näherung y (sog. Prädiktor) lässt sich e<strong>in</strong>e neue Näherung<br />

1<br />

für y bestimmen, <strong>die</strong> iterativ verbessert werden könnte.<br />

1<br />

● Die Gleichung<br />

nenn man Korrektor<br />

* y = y + h/2 ∙ ( f (x ,y ) + f (x ,y ))<br />

1 0 0 0 1 1<br />

●<br />

* Verwendet man <strong>die</strong> Näherung y direkt als Lösung, ist <strong>die</strong>s das Euler-<br />

1<br />

Verfahren; verwendet man den Korrektor ist es <strong>die</strong> Methode von Heun<br />

● E<strong>in</strong>faches aber stabiles Verfahren zweiter Ordnung (Fehler proportional<br />

zu h 2 )<br />

13


Methode von Heun<br />

●Graphische Interpretation y'(x) = f (y) mit y (x 0 ) = y 0<br />

y (x)<br />

y 0<br />

x 0<br />

wahre Lösung y (x)<br />

x<br />

14


Methode von Heun<br />

●Graphische Interpretation y'(x) = f (y) mit y (x 0 ) = y 0<br />

y (x)<br />

y 1<br />

y 0<br />

gesucht<br />

x 0<br />

h x 1<br />

wahre Lösung y (x)<br />

x<br />

15


Methode von Heun<br />

●Graphische Interpretation y'(x) = f (y) mit y (x 0 ) = y 0<br />

y (x)<br />

* y1 y 0<br />

Steigung f ( y 0 )<br />

x 0<br />

h x 1<br />

wahre Lösung y (x)<br />

* y ist Lösung nach<br />

1<br />

Euler-Polygonzug-Verfahren<br />

x<br />

16


Methode von Heun<br />

●Graphische Interpretation y'(x) = f (y) mit y (x 0 ) = y 0<br />

y (x)<br />

* y1 y 0<br />

* Steigung f ( y ) Steigung f ( y )<br />

0 1<br />

x 0<br />

h x 1<br />

* y wird als Prädiktor<br />

1<br />

verwendet<br />

wahre Lösung y (x)<br />

x<br />

17


Methode von Heun<br />

●Graphische Interpretation y'(x) = f (y) mit y (x 0 ) = y 0<br />

y (x)<br />

* y1 y 0<br />

* Steigung f ( y ) Steigung f ( y )<br />

0 1<br />

x 0<br />

h/2<br />

x 1<br />

* y wird als Prädiktor<br />

1<br />

verwendet<br />

wahre Lösung y (x)<br />

x<br />

18


Methode von Heun<br />

●Graphische Interpretation y'(x) = f (y) mit y (x 0 ) = y 0<br />

y (x)<br />

* y1 y 0<br />

* Steigung f ( y ) Steigung f ( y )<br />

0 1<br />

x 0<br />

h/2<br />

x 1<br />

wahre Lösung y (x)<br />

Näherung für y 1 nach<br />

der Methode von Heun<br />

x<br />

19


Runge-Kutta-Verfahren<br />

●Entwickelt von Carl Runge (1856-1927) <strong>und</strong><br />

Mart<strong>in</strong> Wilhelm Kutta (1867-1944)<br />

●Verbesserung der Methode durch Verwendung<br />

von fe<strong>in</strong>eren Integrationsregeln als <strong>die</strong><br />

Trapezregel (z.B. Simpson-1/3-Regel)<br />

●Erste Annahme: (x 0 , y 0 ) <strong>und</strong> (x 1 , y 1 ) seien bekannt<br />

x 1 – x 0 = x 2 – x 1 = h<br />

y 2 = y 0 + h/3∙( f (x 0 , y 0 ) + 4∙f (x 1 , y 1 ) + f (x 2 , y 2 ))<br />

●Man *<br />

benötigt nun wieder e<strong>in</strong>en Prädiktor y2 20


Runge-Kutta-Verfahren<br />

● Ansatz: y(x 0 ), y(x 1 ) <strong>und</strong> y'(x 0 ), y'(x 1 ) seien bekannt; verwende kubisches<br />

Polynom mit <strong>die</strong>sen Randbed<strong>in</strong>gungen, um Prädiktor herzuleiten<br />

* y = 5∙y0 – 4∙y + 2∙h∙y'(x ) + 4∙h∙y'(x )<br />

2<br />

1 0 1<br />

●<br />

* e<strong>in</strong>setzen: y = y + h/3∙( f (x , y ) + 4∙f (x , y ) + f (x , y ))<br />

2 0 0 0 1 1 2 2<br />

● Es handelt sich nicht um e<strong>in</strong> E<strong>in</strong>-Schritt-Verfahren, da zwei<br />

aufe<strong>in</strong>anderfolgende Stützstellen verwendet werden.<br />

● Diese ursprüngliche Voraussetzung kann nun aufgegeben werden,<br />

<strong>in</strong>dem man e<strong>in</strong> anderes E<strong>in</strong>-Schritt-Verfahren (z.B. <strong>die</strong> Methode von<br />

* Heun) verwendet, um y mit y abzuschätzen<br />

1 1<br />

● Mit der Methode von Heun ergibt sich der folgende kompakte<br />

Formelsatz zur Bestimmung e<strong>in</strong>er Näherung von y 1 bei gegebenen y 0<br />

21


Runge-Kutta-Verfahren<br />

●Gegeben: y'(x) = f (x, y(x)) mit y(x 0 ) = y 0<br />

k 1 = h ∙ f (x 0 , y 0 )<br />

k 2 = h ∙ f (x 0 + h/2, y 0 + k 1 /2)<br />

k 3 = h ∙ f (x 0 + h/2, y 0 + k 1 /4 + k 2 /4)<br />

k 4 = h ∙ f (x 0 + h, y 0 - k 2 + 2∙k 3 )<br />

●<strong>und</strong> schließlich: y 1 = y 0 + h/6∙(k 1 + 4∙k 3 + k 4 )<br />

●Dieses Runge-Kutta-Verfahren ist von der 3. Ordnung (Fehler<br />

proportional zu h 3 )<br />

22


Runge-Kutta-Verfahren<br />

● In der Praxis hat sich e<strong>in</strong> etwas anderes Formelsystem e<strong>in</strong>gebürgert, was<br />

nicht mehr auf der Simpson-1/3-Regel aufbaut: das klassische Runge-Kutta-<br />

Verfahren 4ter Ordnung<br />

● Ansatz: Vergleiche y 1 = y 0 + h∙(a 1 k 1 + a 2 k 2 + a 3 k 3 + a 4 k 4 ) mit Taylorentwicklung der<br />

Ordnung 4 (Rechnung länglich)<br />

y 1 ≈ y 0 + h∙y'(x 0 ) + h 2 /2∙y''(x 0 ) + h 3 /3!∙y (3) (x 0 ) + h 4 /4!∙y (4) (x 0 )<br />

y 1 ≈ y 0 +h∙f (x 0 , y 0 )+h 2 /2∙f '(x 0 , y 0 )+h 3 /3!∙f ''(x 0 , y 0 )+h 4 /4!∙f (3) (x 0 , y 0 )<br />

k 1 = h ∙ f (x 0 , y 0 )<br />

k 2 = h ∙ f (x 0 + h/2, y 0 + k 1 /2)<br />

k 3 = h ∙ f (x 0 + h/2, y 0 + k 2 /2)<br />

k 4 = h ∙ f (x 0 + h, y 0 + k 3 )<br />

● <strong>und</strong> schließlich: y 1 = y 0 + h/6∙(k 1 + 2∙k 2 + 2∙k 3 + k 4 )<br />

23


●Gegeben:<br />

Mehrschrittverfahren<br />

y'(x) = f (x, y(x)) mit y (x 0 ) = y 0<br />

●E<strong>in</strong> l<strong>in</strong>eares Mehrschrittverfahren erzeugt zu e<strong>in</strong>er gegebenen<br />

Schrittweite h>0 e<strong>in</strong>e Folge y n , n є N von Näherungen zu den<br />

Funktionswerten y n ≈ y (x n ) = y (x 0 + h∙n)<br />

●Dabei besteht zwischen den Näherungswerten <strong>und</strong> der<br />

Differentialgleichung <strong>die</strong> l<strong>in</strong>eare Rekursionsgleichung<br />

m m<br />

j=0 a j⋅y n− j=h j=0 b j⋅f xn− j , yn− j ●a 0 ... a m sowie b 0 ... b m bestimmen das Mehrschrittverfahren, dabei<br />

gilt a 0 = 1<br />

●Ist b 0 ≠ 0 so nennt man das Verfahren implizit ansonsten explizit<br />

24


Mehrschrittverfahren<br />

●Implizite Verfahren können bei gleicher Länge m der<br />

Koeffizienten-Ntupel e<strong>in</strong>e um 1 höhere Konsistenzordnung als<br />

explizite Verfahren haben. Ihr Nachteil besteht jedoch dar<strong>in</strong>, dass<br />

bei der Berechnung von y n+1 bereits f (x n+1 , y n+1 ) benötigt wird. Dies<br />

führt <strong>in</strong> der Regel zu e<strong>in</strong>em nichtl<strong>in</strong>earen Gleichungssystem.<br />

●In jedem Fall müssen <strong>die</strong> ersten m Glieder der Folge der<br />

Näherungswerte mit e<strong>in</strong>em anderen Verfahren bestimmt werden,<br />

im e<strong>in</strong>fachsten Fall wird l<strong>in</strong>ear extrapoliert<br />

y k = y 0 +k ∙ h ∙ f (x 0 , y 0 ), k = 1, ..., m−1<br />

●Besser: mit Runge-Kutta bestimmen<br />

25


Adams-Bashforth-Methode<br />

●Explizites s+1-Schritt-Verfahren (Ordnung s)<br />

mit<br />

s = 1:<br />

s = 2:<br />

usw.<br />

b j=<br />

s<br />

yn1= ynh⋅ j=0<br />

j<br />

−1<br />

j !s− j! ∫ 1<br />

0<br />

s<br />

i=0, i≠ j<br />

b j⋅f x n− j , y n− j <br />

uidu j=0s<br />

nh⋅ yn1= y 3<br />

2 f xn , y 1<br />

n− 2 f xn−1 , yn−1 y n1= y nh⋅ 23<br />

12 f t n , y n − 16<br />

12 f t n−1 , y n−1 5<br />

12 f t n−2 , y n−2 <br />

26


Adams-Moulton-Methode<br />

● Implizites s+1-Schritt Verfahren (Ordnung s+1)<br />

mit<br />

s = 2:<br />

b j=<br />

s−1<br />

yn1= ynh⋅ j=−1 b j⋅f xn− j , yn− j<br />

−1 j1<br />

j−1!s− j−1! ∫ 1<br />

0<br />

s−1<br />

i=−1,i≠ j<br />

uidu j=−1s−1<br />

y n1= y nh⋅ 1<br />

12 5⋅f x n1 , y n1 8⋅f x n , y n − f x n−1 , y n−1 <br />

● Wenn analytisches Lösen der Gleichung nach y n+1 nicht möglich ist,<br />

kann wieder <strong>die</strong> Prädiktor-Korrektor-Methode angewendet werden.<br />

● Der Vorteil von MV gegenüber EV ist ihr Verhältnis zwischen Kosten<br />

<strong>und</strong> Konsistenzordnung. Dies liegt daran, dass bei e<strong>in</strong>em MV jeweils<br />

nur e<strong>in</strong> Wert aus bereits vorhandenem Datenmaterial berechnet werden<br />

muss.<br />

27


Stabilität <strong>numerischer</strong> Verfahren<br />

● Gesamtfehler hat zwei Anteile<br />

● Numerischer Verfahrensfehler (Diskretisierungsfehler): hängt von<br />

Schrittweite h <strong>und</strong> Ordnung des Verfahrens ab<br />

● R<strong>und</strong>ungsfehler: hängt von Rechnertyp, Compiler <strong>und</strong> Datentyp ab<br />

Fehler<br />

6<br />

5<br />

4<br />

3<br />

2<br />

1<br />

R<strong>und</strong>ungsfehler<br />

h optimal<br />

0<br />

0 1 2 3 4 5 6 7 8<br />

h<br />

Diskretisierungsfehler<br />

28


Partielle DGL<br />

●Hängt e<strong>in</strong>e Funktion z von mehreren Veränderlichen (z.B. x <strong>und</strong> y)<br />

ab, so kann ihr Verlauf durch e<strong>in</strong>e partielle DGL gegeben se<strong>in</strong><br />

f <br />

x , y , z x , y , ∂ z<br />

∂ x<br />

, ∂ z<br />

∂ y , ∂2 z<br />

∂ 2 x , ∂2 z<br />

∂ 2 y , ∂2 z<br />

∂ x ∂ y<br />

, =0<br />

●Viele physikalische Prozesse hängen sowohl vom Ort als auch<br />

von der Zeit ab (Beispiele: Wellengleichung,<br />

Diffusionsgleichung ...)<br />

●Den Grad der höchsten Ableitung, der <strong>in</strong> der Gleichung vorkommt,<br />

nennt man <strong>die</strong> Ordnung<br />

●Treten <strong>die</strong> Ableitungen nur l<strong>in</strong>ear auf, nenn man <strong>die</strong> DGL l<strong>in</strong>ear<br />

29


Partielle DGL<br />

● E<strong>in</strong>teilung für partielle DGL 2. Ordnung<br />

● Wenn<br />

a ∂2 z<br />

∂ x 2b ∂2 z<br />

∂ x ∂ y c ∂2 z ∂ z<br />

2d<br />

∂ y ∂ x<br />

∂ z<br />

e f =0<br />

∂ y<br />

● a∙c − b 2 /4 > 0 ist <strong>die</strong> Gleichung <strong>in</strong> (x, y) elliptisch (Poisson-Gl.)<br />

● a∙c − b 2 /4 = 0 ist <strong>die</strong> Gleichung <strong>in</strong> (x, y) parabolisch (Diffusionsgl.)<br />

● a∙c − b 2 /4 < 0 ist <strong>die</strong> Gleichung <strong>in</strong> (x, y) hyperbolisch (Wellengl.)<br />

● Für mehr Variablen ist <strong>die</strong> E<strong>in</strong>teilung i.A. nicht vollständig<br />

● PDGL haben i.A. mehrere Lösungen; um e<strong>in</strong>deutige Lösung zu<br />

erhalten, bedarf es Zusatzbed<strong>in</strong>gungen (Rand- <strong>und</strong>/oder<br />

Anfangsbed<strong>in</strong>gungen RB/AB); <strong>die</strong>s ist vergleichbar mit gewöhnlichen<br />

DGL, bei denen man AB/RB <strong>in</strong> e<strong>in</strong>em Punkt braucht; bei PDGL reicht<br />

<strong>die</strong> Vorgabe e<strong>in</strong>es Funktionswertes an e<strong>in</strong>em Punkt nicht mehr aus;<br />

man benötigt zur e<strong>in</strong>deutigen Lösung Werte auf e<strong>in</strong>er Mannigfaltigkeit<br />

30


Lösungsmethoden:<br />

Partielle DGL<br />

● F<strong>in</strong>ite Elemente (Simulation von elastischen <strong>und</strong> <strong>in</strong>elastischen<br />

Verformungen)<br />

● F<strong>in</strong>ite Differenzen (Anwendung z.B. <strong>in</strong> der Meteorolgie)<br />

● F<strong>in</strong>ite Volumen (Beispiel Navier-Stokes-Gleichung <strong>in</strong> der<br />

Strömungsmechanik)<br />

● Randelement-Methode (nur <strong>die</strong> Randfläche wird diskretiesiert)<br />

● Leapfrog-Verfahren: abgewandeltes Eulerverfahren für DGL zweiter<br />

Ordnung (z.B. Planetenbewegung); <strong>die</strong> Zeitschritte für Ort <strong>und</strong><br />

Geschw<strong>in</strong>digkeit s<strong>in</strong>d um <strong>die</strong> halbe Integrationschrittweite versetzt;<br />

dadurch wird höhere Genauigkeit <strong>und</strong> Zeitsymmetrie erreicht.<br />

● Und <strong>und</strong> <strong>und</strong> <strong>und</strong> ...<br />

31


Spektralmethode<br />

● Lösung von Anfangswertproblemen<br />

● Idee: Darstellung der Funktion nicht auf e<strong>in</strong>em diskreten Gitter, sondern<br />

durch e<strong>in</strong>en Satz orthogonaler Funktionen (z.B. Fourierentwicklung <strong>in</strong><br />

der Ebene oder Kugelflächenfunktionen auf e<strong>in</strong>er Kugeloberfläche)<br />

● Für <strong>die</strong>se Komponenten seien <strong>die</strong> Lösungen der PDGL entweder<br />

bekannt oder leicht bestimmbar<br />

● Die Lösung ergibt sich dann wieder aus der Zusammensetzung der<br />

e<strong>in</strong>zelnen Komponenten<br />

● Am besten lässt sich <strong>die</strong> Methode anhand e<strong>in</strong>es Beispieles<br />

demonstrieren:<br />

Advektionsgleichung:<br />

∂T<br />

∂t<br />

u⋅∂T<br />

∂ x =0<br />

32


Spektralmethode<br />

● Die Advektionsleichung beschreibt <strong>die</strong> Eigenschaft e<strong>in</strong>es Partikels (zum<br />

Beispiel Temperatur T ) <strong>in</strong> e<strong>in</strong>em Strömungsfeld<br />

∂T u⋅∂T<br />

<br />

∂t ∂ x<br />

● Hängt u nicht explizit vom Ort x ab, so beschriebt <strong>die</strong> DGL <strong>die</strong><br />

Verlagerung e<strong>in</strong>er beliebigen Verteilung T mit der Zeit<br />

=0<br />

● Natürlich lässt sich sofort e<strong>in</strong>e analytische Lösung angeben<br />

wobei f e<strong>in</strong>e beliebige Funktion ist<br />

T (x, t ) = f (x − t ∙ u)<br />

● Die Lösungen umfassen auch ebene propagierende Wellen<br />

mit der Dispersionsrelation c/k = u<br />

T (x, t ) = T 0 ∙exp( i ∙( k ∙ x − c ∙ t ))<br />

33


Spektralmethode<br />

● Darstellung von T(x,t) als Fourierreihe (*)<br />

N<br />

T t , x= k=−N<br />

T k t⋅e i⋅k⋅x<br />

● E<strong>in</strong>setzen <strong>in</strong> <strong>die</strong> Advektionsgleichung <strong>und</strong> analytisches Berechnen der<br />

Ableitung liefert:<br />

N ∂T k t<br />

k=−N ∂ t ⋅ei⋅k⋅x N<br />

u⋅ k =−N i⋅k⋅T k t ⋅e i⋅k⋅x =0<br />

● Durch Orthogonalität <strong>und</strong> <strong>die</strong> Tatsache, dass <strong>die</strong> Koeffizienten mit<br />

negativem k gleich dem Komplexkonjugierten mit positiven k s<strong>in</strong>d (bei<br />

reelem T(t, x)), erhält man N + 1 Differentialgleichungen <strong>in</strong> der Zeit zur<br />

Bestimmung der Real- <strong>und</strong> Imag<strong>in</strong>ärteile der e<strong>in</strong>zelnen Tk ∂T k t<br />

∂t i⋅u⋅k⋅T k x=0<br />

● Diese Gleichung kann wiederum numerisch oder analytisch gelöst<br />

werden <strong>und</strong> <strong>in</strong> (*) e<strong>in</strong>gestzt werden<br />

34


The End

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!