Übungsblatt Nr. 9

Aufgabe 1 (10 Punkte)

Im Unterpunkt Differentialgleichungen: Numerische Lösung von Anfangswertproblemen hatten wir mittels des C++ Programmes DGL_1.cpp die numerische Lösung einer Differentialgleichung berechnet. Lagern Sie den Kern-Algorithmus der Berechnung der numerischen Lösung, eines Verfahrens Ihrer Wahl (z.B. Euler Verfahren oder Runge-Kutta Ordnung vier), in einer C++ Funktion aus. Benutzen Sie dabei als Rückgabewert der Funktion, das im Unterpunkt C++ Container und die vector Klasse der Standardbibliothek besprochene <vector> Konzept.
Berechnen Sie dann die numerische Lösung der folgenden Differentialgleichung erster Ordnung $$ \begin{equation} \dot{y}(t) = \frac{d y(t)}{dt} = y - t^2 + 1 \quad, \, \hbox{mit:} \,\, a=0 \leq t \leq b=4 \, , \,\, y(a)=y(0)=\alpha=0.3 \quad . \end{equation} $$ Führen Sie drei numerische Simulationen durch, wobei Sie für die Anzahl $N$ der Zeit-Gitterpunkte $t_i, i=0,1,2, ..., N$ die folgenden Werte benutzen: $N=50$, $N=500$ und $N=5000$. Geben Sie die berechneten Werte ($t_i, y_i, y_{analytisch}(t_i)$ und den Fehler ${\cal F} = y_i - y_{analytisch}(t_i)$) mit 15 Nachkommastellen im Terminal aus.

Aufgabe 2 (10 Punkte)

Im Unterpunkt C++ Container und die vector Klasse der Standardbibliothek wurde im C++ Programm Vector_Dinge.cpp die Klasse <vector> als ein Container von Objekten der Klasse 'Ding' verwendet. Die zeitliche Entwicklung der Ortskoordinaten der nicht miteinander wechselwirkenden Dinge (Teilchen) wurde mittels der inline Funktion 'Gehe_Zeitschritt(...) modelliert, wobei die Teilchen sich dabei innerhalb einer Kiste bewegen und eine konstante Geschwindigkeit besitzen sollten. Die räumlichen Randbedingungen der Kiste wurden ebenfalls in der inline Funktion implementiert (Reflexion an den Wänden der Kiste).

Ändern Sie das Programm so ab, dass anstatt der Reflexion an den Rändern der Kiste, periodische Randbedingungen existieren. Bauen Sie zusätzlich ein weiteres Teilchenverhalten, bzw. eine weitere Umgebungseigenschaft, in das Programm ein. Starten Sie dann eine Simulation mit 70 Teilchen (unterschiedliche Anfangsorte und Geschwindigkeiten) und stellen Sie die Bewegung der Teilchen mittels eines Python-Skriptes (Jupyter Notebooks) als animierten Film dar.

Die Musterlösung der Aufgaben des Übungsblattes Nr. 9 finden Sie unter dem folgenden Link:
Musterlösung Übungsblatt Nr. 9