Upload
lyliem
View
213
Download
0
Embed Size (px)
Citation preview
Prof. Dr. P. E. KloedenDr. J. Rieger
Ubungsblatt zur Vorlesung
Numerische Methoden fur
Differentialgleichungen
Abgabe der Aufgaben bis 10:15 am 7.6.2012. Alle Aufgaben sind inklusive Programm-
code und MATLAB-Ausgabe in Papierform abzugeben. Der Programmcode ist den Tuto-
ren noch einmal separat per Mail zuzuschicken.
Aufgabe 6.1 (Runge-Kutta-Verfahren unter linearen Transformationen)Sei f : R×Rd → R
d glatt, sei x : [0, T ]→ Rd eine Losung von
x′(t) = f(t, x(t)), x(0) = x0, (∗)
und sei M ∈ Rd×d eine invertierbare Matrix.
a) Welche Dgl lost die Funktion y(t) := Mx(t)?
b) Sei Φ die Inkrementfunktion eines s-stufigen, moglicherweise implizitenRunge-Kutta-Verfahrens zur Losung von (∗), und sei Ψ die Inkrement-funktion desselben numerischen Verfahrens angewendet auf diejenigeDgl, die von y gelost wird. Zeigen Sie, dass zwischen Φ und Ψ eineahnliche Beziehung besteht wie zwischen f und der rechten Seite derDgl, die y lost.
Sie durfen annehmen, dass die Gleichungen, uber die die Verfahren Φund Ψ definiert sind, stets eindeutige Losungen besitzen.
(6 Punkte)
Aufgabe 6.2 (Explizite Runge-Kutta-Verfahren fur lineare Dgl)Sei x : [0, T ]→ R
d eine Losung der linearen Dgl
x′(t) = Ax(t), x(0) = x0
mit einer beliebigen Matrix A ∈ Rd×d.
a) Zeigen Sie, dass jedes explizite s-stufige Runge-Kutta-Verfahren mitkonstanter Schrittweite h > 0 als eine Rekursion
xn+1 = Bxn, n = 0, 1, 2, . . .
geschrieben werden kann, wobei B = q(hA) und q ein Polynom hochs-tens vom Grad s ist.
b) Nennen Sie die Polynome qE und qH , die zum Euler- und zum Heun-Verfahren gehoren. Erkennen Sie ein Bildungsgesetz? Setzen Sie diesesGesetz zu Ihnen bekannten Fakten uber lineare Dgls in Beziehung.
(6 Punkte)
Aufgabe 6.3 (Eingebettete Runge-Kutta-Verfahren)
a) Schreiben Sie eine MATLAB-Funktion
[T,X,e]=EmbeddedRK(f,t0,t,x0,h0,tol),
die als Parameter die rechte Seite f der Dgl (∗), die Anfangszeit t0,die Endzeit t, den Anfangswert x0, die Anfangsschrittweite h0 und dieerlaubte Fehlertoleranz tol verlangt und das Zeitgitter T, die Wertedes eingebetteten Runge-Kutta-Verfahrens ’Verfahren ohne Name’ vonS.66 im Skript sowie die Anzahl der benotigten Aufrufe der rechtenSeite f zuruckgibt.
– Verwenden Sie zur Steuerung der Schrittweite den auf S.65 imSkript angegebenen Algorithmus: Halbiere h, wenn Fehlerschatzer >tol, verdoppele h, wenn Fehlerschatzer ≤ 1
16tol.
– Beachten Sie, dass T nun nicht mehr aquidistant ist und die An-zahl der benotigten Aufrufe der rechten Seite vom Verlauf derSchrittweitensteuerung abhangt!
– Brechen Sie ab, wenn Ihr Algorithmus die Endzeit t erreicht oderuberschreitet.
– Achten Sie darauf, die Funktion f nicht ofter aufzurufen als un-bedingt notig!
b) Testen Sie Ihr Verfahren, indem Sie es auf die skalare Dgl
x′(t) = x(1− x) (∗∗)
anwenden. Verwenden Sie die Parameter t0 = 0, t = 4.3, x0 = 0.1,h0 = 0.2 und tol = 1e-6.
Plotten Sie Ihre Losung mit dem Befehl plot(T,X,’o’). Beschreiben Sie IhrResultat. Ist die Wahl der Schrittweiten plausibel?
(6 Punkte)
Aufgabe 6.4 (Konvergenzeigenschaften eingebetteter Runge-Kutta-Verfahren)
a) Schreiben Sie MATLAB-Funktionen [T,X]=RK2(f,t0,t,x0,N) sowie[T,X]=RK3(f,t0,t,x0,N), in denen Sie die beiden numerischen Ver-fahren mit p = sp = 2 und q = sq = 3 implementieren, aus denen das’Verfahren ohne Name’ zusammengesetzt ist.
b) Bestimmen Sie die exakte Losung von (∗∗) mit x(0) = 0.1 mit Hilfeeiner Software wie Wolfram Alpha und uberzeugen Sie sich von derRichtigkeit Ihrer Losung.
c) Fertigen Sie ahnlich wie in Aufgabe 4.2 einen Konvergenzplot fur dieVerfahren RK2, RK3 und EmbeddedRK an.
– Verwenden Sie die Dgl (∗∗) mit t0 = 0, t = 4.3, x0 = 0.1, h0 = 0.2als Testgleichung.
– Beachten Sie, dass Sie fur RK2 und RK3 die Anzahl der SchritteN verandern mussen, wahrend bei EmbeddedRK die Toleranz tol
variiert. Benutzen Sie N = 2i und tol = 10−i, i = 0, 1, . . . , 11.
– Messen Sie den Aufwand aller drei Verfahren in Auswertungenvon f, um einen fairen Vergleich zu gewahrleisten.
– Erstellen Sie eine Legende.
(6 Punkte)