DifferentialgleichungenÜbersicht
AnfangswertaufgabeDas folgende Programm löst numerisch ein System von Anfangswertaufgaben in der Form bzw.
die gesuchte Vektorfunktion bzw. der Vektor der Ableitungen ist und
eine Funktion der Form
Zur Lösung dieses Problems wurden verschiedene numerische Verfahren entwickelt. Im Folgenden werden einige ausgewählte Einschrittverfahren näher vorgestellt. Top
Allgemeines über EinschrittverfahrenBei den Einschrittverfahren wird zunächst eine Schrittweite gewählt. Mittels dieser Schrittweite wird dann auf dem Intervall das äquidistante Gitter
mit
definiert. Ausgehend vom ersten Gitterpunkt dem
Anfangswert
berechnen die hier vorgestellten
Einschrittverfahren eine Approximation für
, also den Wert der Vektorfunktion am
zweiten Gitterpunkt. Anschließend wird ausgehend vom Tupel
eine Approximation
an den Wert berechnet. Dieses Vorgehen wird
dann iteriert, bis für alle Gitterpunkte eine Approximation
an berechnet
wurden. Anschaulich bedeutet dies:
Ein möglicher Ausgangspunkt zum Verständnis der
Einschrittverfahren ist die Methode der vorwärtsgenommenen
Differenzenquotienten: Da die Lösung erfüllt, wird nun die linke Seite in der obigen Formel durch ersetzt und Gleichheit angenommen. Durch Auflösung nach erhält man: Dies führt zum Euler-Verfahren, das im folgenden Abschnitt näher beschrieben wird. Dieser Ansatz wird nun verallgemeinert, indem in der Gleichung die Funktion durch eine allgemeinere Funktion ersetzt wird. Damit erhält man ein allgemeines Einschrittverfahren der Form: Man nennt die Funktion Verfahrensfunktion oder Inkrementfunktion. Um die Güte der unterschiedlichen Verfahren vergleichen zu können, wird der Konsistenzfehler bzw. der lokale Diskretisierungsfehler betrachtet, wobei die exakte Lösung der Anfangswertaufgabe ist. Dann heißt ein Einschrittverfahren konsistent bzw. konsistent von der Ordnung , wenn für gilt: Ein Einschrittverfahren heißt konvergent bzw. konvergent von der Ordnung , wenn für gilt:
bzw.
wobei die numerische Lösung auf dem Gitter ist. Top
Euler VerfahrenDas einfachste numerische Verfahren zur Lösung einer Anfangswertaufgabe ist das bereits erwähnte Euler-Verfahren, auch Polygonzugverfahren genannt. Beim Euler-Verfahren wird die folgende Verfahrensfunktion benutzt: Man erhält also aus der Gleichung das Verfahren: Diese Gleichung impliziert den folgenden Algorithmus:
Dies ist das Euler-Verfahren. Man kann zeigen, dass dieses Verfahren konsistent von der Ordnung 1 ist. Top
implizites Euler Verfahren
Das implizite Euler-Verfahren wird durch die folgende Gleichung
beschrieben:
Diese Gleichung impliziert den folgenden Algorithmus:
Top
Methode von HeunBeim Euler-Verfahren wird nur ein sehr eingeschränkter Gebrauch vom Richtungsfeld der Differentialgleichung gemacht. Es wird nur die Richtung des aktuellen Punktes ausgewertet. Die Idee ist nun in einer Umgebung des Punktes das Richtungsfeld an mehreren Punkten abzutatsten. Ein Ansatz verwendet z.B. das arithmetische Mittel der Steigungen und zu verwenden. Dies führt auf die folgende Verfahrensfunktion: Man erhält also aus der Gleichung die Vorschrift und damit den folgenden Algorithmus:
Dies ist das sogenannte Verfahren von Heun. Man sieht sofort, dass dieser Algorithmus gegenüber dem Euler-Verfahren eine zusätzliche Auswertung der Funktion benötigt. Jedoch kann man zeigen, dass das Verfahren von Heun konsistent von der Ordnung 2 ist. Top
Runge-Kutta-VerfahrenBeim allgemeinen Runge-Kutta Verfahren wird der beim Verfahren von Heun vorgestellte Ansatz weiter verallgemeinert indem man die Funktion an mehreren verschobenen Stellen auswertet. Dies ergibt dann folgende allgemeine Verfahrensfunktion für Runge-Kutta Verfahren: Die Funktionen können also rekursiv durch bestimmt werden, wenn man setzt und vereinbart. Die zunächst unbekannten Koeffizienten ordnet man in einem Koeffizientenschema an. heißt dabei Stufe des Runge-Kutta Verfahrens. Die bereits vorgestellten Verfahren lassen sich also kompakt beschreiben durch: Ein sehr bekanntes Verfahren der Stufe 4 und der Konsistenzordnung 4 ist das klassische Runge-Kutta Verfahren, das auch im Programm implementiert wurde:
Man sieht sofort, dass dieser Algorithmus in jedem Schritt vier Auswertungen der Funktion benötigt. Jedoch ist dieses Verfahren, wie bereits erwähnt, von der Konsistenzordnung 4. Mit dem folgenden Programm kann man nun die vorgestellten Verfahren testen. Nach Eingabe der Anfangswertaufgabe und der Wahl der Schrittweite werden zunächst alle drei Verfahren durchgeführt. Anschließend kann man durch geeignete Einstellungen die Verfahren untereinander vergleichen oder den Konvergenzfehler darstellen, falls die Lösung explizit bekannt ist. Top
|