JGU Logo JGU Logo JGU Logo JGU Logo

Institut für Informatik

Markus Blumenstock
Sommersemester 2024

Angewandte Mathematik am Rechner

Übungsblatt 5: Ableitungen und Differentialgleichungen
Letzte Änderung : 09:10 Uhr, 04 July 2024
Abgabetermin : 03. Juli 2024 12 Uhr
Abnahmetermin : 04. Juli 2024



Aufgabe 5.1: 2D-Ableitung

[20 Punkte]


Abbildung 1 Quelle des Bildes: flickr, Copyright 2012 by fugzu.


Trotz der Schwächen der numerischen Ableitung, die wir auf dem letzten Blatt beobachten konnten, gibt es viele praktische Anwendungen. Neben der offensichtlichen — der Abschätzung der Ableitung eines gemessenen Datensatzes — können wir die Ableitung auch auf Bilder anwenden!
Wir berechnen dazu den Gradientenvektor in Bildern, wie folgt: Analog zum obigen eindimensionalen Fall definieren wir die numerischen Richtungsableitungen im zweidimensionalen Raum als \[\begin{aligned} \frac{d}{dx}f(x,y) &:\approx \frac{f(x+h,y) - f(x-h,y)}{2h} \qquad \text{und}\\ \frac{d}{dy}f(x,y) &:\approx \frac{f(x,y+h) - f(x,y-h)}{2h}. \end{aligned} \] (Man kann hier auch eine unsymmetrische Version, wie auf dem letzten Aufgabenblatt nehmen.)
Mathematisch tun wir so, als wäre die Funktion eindimensional und leiten wie gewohnt ab, und betrachten alle Terme, die von der jeweils anderen Variable abhängen als Konstanten. Was wir erhalten, ist eine zweidimensionale Größe: den Gradientenvektor. Die Länge gibt an, wie Stark der Wert der Funktion sich an der Stelle ändert, und die Richtung zeigt in die Richtung des stärksten Anstiegs.
Anmerkung: Wir benutzen hier, der Einfachheit halber, nur einfache Differenzenquotienten mit endlich kleinem \(h\) (in der Regel wählt man \(h=1\text{ Pixel}\)); wenn die Bilder stark verrauscht sind, müssten wir erst filtern bzw. am besten ein 2D-MLS-Schema verwenden. Das geht im Prinzip genauso wie im 1D Fall, wird uns hier aber zu aufwendig. Also nur Bilder ohne zuviel Rauschen!

Aufgabe

Numerische Integration von Differentialgleichungen

Im zweiten Teil dieses Aufgabenblattes möchten wir zeitabhängige Differentialgleichungen lösen. Dies sind Gleichungen, die die Ableitungen einer Funktion und die Funktion selbst enthalten. Somit ist die Funktion selbst als Variable zu betrachten.


Hinweis: Lesen Sie Kapitel 6.1-6.3 im Skript durch, um die Theorie zu erarbeiten, die man für die Lösung dieser Aufgaben braucht.


Motivation: Auf dem letzten Übungsblatt wollen wir diese Konzepte dazu verwenden, ein Spiel zu programmieren, in dem die dynamische Flugbahn von Wurfgeschossen berechnet werden soll (es war von lat. Annelida die Rede). Hier üben wir schonmal das Prinzip.


Aufgabe 5.2.1: Das Federpendel
(a.k.a.: „harmonischer Oszillator“)

[20 Punkte]



Unser erstes Beispiel ist ein Federpendel: Wir nehmen an, dass eine Masse an einer Feder hängt. Bei einer Hookschen (linearen) Feder, was für echte Federn durchaus realistisch ist, ist die Rückholkraft ist proportional zur Auslenkung \(x\), allerdings mit negativem Vorzeichen. Wir beschreiben die Rückholkraft \(F\), die einen Körper zum Ursprung zurück zieht, durch \[F = -Dx, \quad D > 0, \] wobei \(x\) die aktuelle Position und \(D\) eine positive Konstante ist. Mithilfe des zweiten Newtonschen Gesetzes \(F=ma\) (\(a\) beschreibt die Beschleunigung, \(m\) die Masse des Objektes) und der Einsicht \(a(t)=x''(t)\) können wir die Gleichung zu
\[x''(t) = -\frac{Dx(t)}{m} \] und weiter zu dem System
\[\frac{d}{dt} \left( \begin{array}{c} x(t) \\ x'(t) \end{array} \right) = \left( \begin{array}{c} x'(t) \\ -\frac{Dx(t)}{m}\\ \end{array} \right) \]


umschreiben (siehe Skript!). Unter der Annahme, dass diese Kraft zu jedem Zeitpunkt auf das Objekt an der Stelle \(x\) wirkt, haben wir die Position durch eine Funktion \(x(t)\) ersetzt.


Numerische Lösung von Differentialgleichungen: Für eine feste Funktion können wir stets symbolisch Prüfen, ob sie die Differentialgleichung erfüllt oder nicht. Beispielsweise ist die Null-Funktion \(x(t)=0\) eine Funktion, die die obige Gleichung erfüllt (dies ist eine Lösung für ganz spezielle Anfangsbedingungen, nämlich keine initiale Auslenkung und keine initiale Geschwindigkeit). Es gibt jedoch weitaus mehr; z.B. gibt es mathematische Tools, um symbolisch die Familie von Funktionen zu finden, die eine solche Differentialgleichung erfüllen. Im Allgemeinen ist dies jedoch eine schwierige Aufgabe.
Glücklicherweise können wir uns jedoch der Lösung numerisch nähern: Wir starten mit einer Startbelegung zum Zeitpunkt \(t=0\) (z.B. \(x(0) = c\)). Wir wissen bereits, wie wir die Ableitung einer Funktion numerisch bestimmen können (siehe letztes Übungsblatt), nämlich durch den Differenzenquotienten zweier aufeinanderfolgender Stadien unseres Systems \(x_t\) und \(x_{t+1}\), \[x'(t) \approx \frac{x(t)-x(t+h_t)}{h_t} \]


unter der Annahme, dass die Stadien \(h_t\) Zeiteinheiten entfernt sind. Der Einfachheit halber können Sie annehmen, dass die Zeit stets gleichmäßig abläuft, \(h_t = h, h\in \mathbb{R}\). Falls wir also bereits die Ableitung kennen, können wir durch Umstellen der Gleichung sogar den neuen Status des Systems extrapolieren: \[x(t+h) = x(t) + x'(t)\cdot h. \] Dieses Wissen können wir nun verwenden, um eine einfache physikalische Simulation zu programmieren.


Aufgabe

Aufgabe 5.2.2: einfache Pendelgleichung

[20 Punkte]



Ein weiteres Beispiel einer Differentialgleichung ist die Pendelgleichung unter Gravitation in einem isolierten System \[\alpha''(t) = -\frac{g}{l} \sin(\alpha(t)).\]


Erklärung der Gleichung:

Die Funktion \(\alpha(t)\) beschreibt die Auslenkung des Pendels zum Lot zur Zeit \(t\) (siehe Abbildung, \(\alpha=0\) entspricht einem ruhigen Pendel).

Der Term \(\frac{d^2}{dt^2} \alpha(t) =: \alpha''(t)\) beschreibt dabei die zweite Ableitung von \(\alpha\), \(l\) die Länge des Lots, \(g\) die Erdanziehungskraft (\(g=9.81 \frac{m}{s^2}\)).
Die Gleichung beschreibt, wie sich die Auslenkung im Allgemeinen über die Zeit verhält. Physikalisch gesprochen beschreibt sie, dass die Winkel-Beschleunigung \(\alpha''(t)\) davon abhängt wie stark das Pendel in \(x\)-Richtung ausgelenkt ist.


Die Gleichung ist ganz ähnlich zum Federpendel aus der vorherigen Aufgabe; bei kleiner Auslenkung verhält es sich fast genauso (weil \(\sin(x) \approx x\) für kleine \(x\)); bei größeren Auslenkungen wird die Gleichung nichtlinear, weil die Rückholkraft immer nur in Richtung Erde zeigt, und dieser Richtungsvektor dreht sich nicht mit dem Pendel mit. Dramatisch anders sieht die Lösung allerdings, wie Sie sehen werden, nicht aus.


Aufgabe

Aufgabe 5.2.3: Doppelpendelgleichung

[20 Punkte]



Etwas interessanter ist es zwei zusammenhängende Pendel zu betrachten, da sich hier die beiden Pendel gegenseitig beeinflussen. Wir definieren die Winkel \(\alpha,\beta\) wie in der Abbildung.
Die Doppelpendelgleichung lautet \[ \begin{aligned} \alpha'' &= -\frac{g}{l_1}\sin \alpha - \frac{l_2m_2}{l_1(m_1+m_2)}\left( \cos(\alpha - \beta)\beta'' + \sin(\alpha - \beta)\cdot(\beta')^2\right) \\ \beta'' &= -\frac{g}{l_2}\sin \beta - \frac{l_1}{l_2}\left( \cos(\alpha - \beta)\alpha'' - \sin(\alpha - \beta)\cdot(\alpha')^2\right) \\ \end{aligned} \]


Im Grunde sollte Implementierung mithilfe der letzten Aufgabe schnell zu realisieren sein. Ziel ist es, einzusehen, dass Differentialgleichungen schnell chaotisches Verhalten aufweisen können und meist numerisch instabil sind.


Aufgabe

Aufgabe 5.2.4: Simulation des Sonnensystems

[20 Punkte]



Wir betrachten die Gleichung \[F = \gamma_0 \frac{m_1\cdot m_2}{r^2},\]


die die Anziehungskraft zwischen zwei Objekten mit den Massen \(m_1\) bzw. \(m_2\) erklärt. Die Variable \(r\) bezeichne dabei den Abstand zueinander und \(\gamma_0 \approx 6,674 \cdot 10^{-11} \frac{m^3}{kg\cdot s^2}\) die Gravitationskonstante. Zusammen mit \(F=ma\) können wir daraus schließen, dass das Objekt mit der Masse \(m_1\) die Beschleunigung \[x''(t) = a(t) = \gamma_0 \frac{m_2}{r^2},\] in Richtung des Objektes mit der Masse \(m_2\) aufweist.


Wir nutzen dies, um die Bewegungen des Sonnensystems zu simulieren.


Aufgabe