(Diagonal-)implizite Runge-Kutta-Verfahren¶
Lernziele¶
Sie implementieren zwei implizite Runge-Kutta-Verfahren, unter Verwendung der Programmstruktur aus dem Praktikum 8.
Sie testen Ihre Programme an einfachen Modellproblemen und wenden sie schliesslich auf ein komplexeres Problem an, um die numerischen Lösungen zu vergleichen.
Theorie¶
In diesem Praktikum betrachten wir diagonal-implizite \(s\)-stufige Runge-Kutta-Verfahren mit einem Butcher-Tableau der Form
In einem solchen DIRK-Verfahren können die Stufengleichungen nacheinander gelöst werden, weil in der \(j\)-ten Stufe die Steigungen \(r_1, r_2, \dots, r_{j-1}\) bereits bekannt sind (vgl. Übungsblatt 9, Aufgabe 2).
Aufträge¶
(\(s=1\)) Schreiben Sie ein Programm zur Lösung eines AWPs mit der impliziten Mittelpunktsregel:
\[\begin{split}\begin{array}{c|c} \frac{1}{2} & \frac{1}{2}\\ \hline & 1 \end{array}\end{split}\]Verwenden Sie dafür dieselbe Programmstruktur wie für das implizite Euler-Verfahren im Praktikum 8.
Testen Sie Ihr Programm aus 1. anhand des Modellproblems \(y' = -4y,\ y(0) = 1\), mit Endstelle \(x_n = 1\) und \(n = 10\) Schritten. Vergleichen Sie die Werte \(y_k\) der numerischen Lösung mit den Werten der exakten Lösung, \(y(x_k),\ k \in \{1,2,\dots,10\}\).
(\(s=2\)) Schreiben Sie ein Programm zur Lösung eines AWPs mit der impliziten Trapezregel:
\[\begin{split}\begin{array}{c|cc} 0 & 0\\ 1 & \frac{1}{2} & \frac{1}{2}\\ \hline & \frac{1}{2} & \frac{1}{2} \end{array}\end{split}\]Testen Sie Ihr Programm wie in 2.
Lösen Sie mit Ihren Programmen aus 1. und 3. das Anfangswertproblem
\[y' + \frac{x^2}{y} = 0, \quad y(0) = -4.\]Berechnen Sie für \(x_n=2\) und \(n=3^j\), \(j \in \{1,2,3,4,5,6,7,8\}\), jeweils die absoluten Fehler an der Endstelle. Bestimmen Sie grafisch die Konvergenzordnung der beiden Verfahren.
Abgabe¶
Bitte geben Sie Ihre Lösungen bis spätestens vor dem nächsten Praktikum ab.