Übungsblatt Nr. 11

Aufgabe 1 (20 Punkte)

Im Unterpunkt Die schwingende Kette der Vorlesung 10 behandelten wir ein schwingendes, gekoppeltes Massensystem bestehend aus einer beliebigen Anzahl von Perlen und simulierten seine Bewegung mittels des C++ Programmes SchwingendeKette.cpp und des Jupyter Notebooks SchwingendeKette.ipynb.

Im Unterpunkt Abgeleitete Klassen, Vererbung von Klassenmerkmalen und Klassenhierarchien der Vorlesung 10 konstruierten wir eine allgemeine abstrakte Basisklasse 'dsolve', die als eine Schnittstelle fungiert und die numerische Lösung eines Systems von Differentialgleichungen berechnete. Dabei wurde innerhalb der Klasse 'dsolve' eine reine virtuelle Funktion 'dgls' deklariert, welche die zugrundeliegende Bewegungsgleichung beschreiben soll. Die eigentliche Differentialgleichung wurde dann jedoch erst in einer abgeleiteten Sub-Klasse definiert (in dem Beispiel des Unterpunktes wurde die Sub-Klasse 'Pendel' entworfen). Die einzelnen Klassen wurden dabei, vom Hauptprogramm Pendel.cpp getrennt, in der Header-Datei Pendel.hpp ausgelagert.

Erstellen Sie eine, von der abstrakten Klasse 'dsolve' abgeleitete Sub-Klasse 'Kette', welche die schwingende Kette bestehend aus einer beliebigen Anzahl von Perlen simulieren kann. Die Sub-Klasse 'Kette' soll dabei so gestaltet sein, dass sie auch den Fall unterschiedlicher Massen berechnen kann. Betrachten Sie dann zunächst eine Kette bestehend aus drei Perlen der Massen $m_1=1$, $m_2=2$ und $m_3=3$ und stellen Sie die drei Eigenschwingungen des Systems als Animationen dar. Generieren Sie zusätzlich eine numerische Lösung in Python und vergleichen Sie die Ergebnisse des C++ Programms mit den Python-Simulationen. Erstellen Sie dann am Ende eine Simulation mit einer größeren Anzahl an Perlen unterschiedlicher Massen.

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