Blatt 2 - Universität Freiburg

Albert-Ludwigs-Universität Freiburg
Abteilung für Angewandte Mathematik
Prof. Dr. Patrick Dondl
Sommersemester 2016
Praktische Übungen zur Numerik für Differentialgleichungen
Blatt 2
Abgabe: 25. Mai 2016 bis 12:00 Uhr mittags nach Absprache mit der Tutorin
Einschritt
Aufgabe 3 (8 Punkte). Verwenden Sie die Matlab-Routine ode45, um das Zweikörperproblem
y2 − y1
m1 m2
m1 y100 = γ
,
ky1 − y2 k2 ky1 − y2 k
m1 m2
y1 − y2
m2 y200 = γ
2
ky1 − y2 k ky1 − y2 k
für verschiedene Anfangsdaten und Massenverhältnisse m1 /m2 ∈ {1, 2, 10} näherungsweise zu lösen
und darzustellen. Konstruieren Sie sowohl Anfangsdaten, die zur Existenz einer für alle positiven Zeiten
wohldefinierten Lösung führen, als auch Anfangsdaten, für die die Lösung nur in einem endlichen
Intervall existiert.
Aufgabe 4 (8 Punkte). Das Matlab-Programm explicit euler.m realisiert das durch die Inkrementfunktion Φ(tk , yk , τ ) = f (tk , yk ) definierte explizite Euler-Verfahren für die Federpendelgleichung
y 00 + ry 0 + D(y − `) = 0
mit den Anfangsdaten y(0) = y0 und y 0 (0) = v0 .
(i) Untersuchen Sie experimentell die Abhängigkeit der Approximationslösungen von den Parametern
r und D.
(ii) Bestimmen Sie die exakte Lösung des Anfangswertproblems für den Spezialfall r = 1/10, D = 1,
y0 = ` = 0, v0 = 1 und bestimmen Sie den Approximationsfehler |yK − y(tK )| für die Schrittweiten
τ = 2−s , s = 1, 2, . . . , 7, zum Zeitpunkt tK = 100.
(iii) Modifizieren Sie das Programm, um das implizite Euler-Verfahren zu realisieren. Vergleichen Sie
das qualitative Verhalten der verschiedenen Approximationslösungen für den Zeithorizont T = 1000.
function e x p l i c i t e u l e r
T = 10; y 0 = 0; v 0 = 1;
s = 5 ; tau = 2ˆ(− s ) ; K = f l o o r (T/ tau ) ;
y = zeros (K+ 1 , 2 ) ;
y(1 ,:) = [ y 0 , v 0 ];
for k = 1 :K
y ( k + 1 , : ) = y ( k , : ) + tau ∗ Phi ( ( k−1)∗ tau , y ( k , : ) , tau ) ;
plot ( tau ∗ ( 0 : k ) , y ( 1 : k +1 ,1) , ’ r ’ ) ;
axis ( [ 0 , T, − 5 , 5 ] ) ; drawnow ;
end
D = 1 ; r = 1 / 1 0 ; omega = sqrt (D−r ˆ 2 / 4 ) ; t = K∗ tau ;
function v a l = Phi ( t , y , tau )
val = f ( t , y ) ;
function vec = f ( t , y )
r = 1/10; D = 1; e l l = 0;
vec = [ y (2) , − r ∗y(2) −D∗ ( y(1) − e l l ) ] ;