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 ) ] ;
© Copyright 2024 ExpyDoc