Runge-Kutta-Verfahren

Aus besserwiki.de

In der numerischen Analyse werden die Runge-Kutta-Verfahren (engl: /ˈrʊŋəˈkʊtɑː/ (listen) RUUNG-ə-KUUT-tah) sind eine Familie von impliziten und expliziten iterativen Methoden, zu denen auch die Euler-Methode gehört, die bei der zeitlichen Diskretisierung für die Näherungslösungen von simultanen nichtlinearen Gleichungen verwendet werden. Diese Methoden wurden um 1900 von den deutschen Mathematikern Carl Runge und Wilhelm Kutta entwickelt.

Vergleich der Runge-Kutta-Methoden für die Differentialgleichung (rot ist die exakte Lösung)

Das Runge-Kutta-Verfahren

Vom klassischen Runge-Kutta-Verfahren verwendete Steigungen

Das bekannteste Mitglied der Runge-Kutta-Familie wird allgemein als "RK4", das "klassische Runge-Kutta-Verfahren" oder einfach als "Runge-Kutta-Verfahren" bezeichnet.

Ein Anfangswertproblem sei wie folgt spezifiziert:

Hier ist ist eine unbekannte Funktion (Skalar oder Vektor) der Zeit , die wir approximieren möchten; man sagt uns, dass die Geschwindigkeit, mit der sich ändert, eine Funktion ist von und von selbst ist. Zum Anfangszeitpunkt ist der entsprechende Wert gleich . Die Funktion und die Anfangsbedingungen , sind gegeben.

Wählen Sie nun eine Schrittweite h > 0 und definieren Sie

für n = 0, 1, 2, 3, ..., mit

(Hinweis: Die obigen Gleichungen haben in verschiedenen Texten unterschiedliche, aber gleichwertige Definitionen).

Hier ist ist die RK4-Approximation von , und der nächste Wert () wird bestimmt durch den aktuellen Wert () plus dem gewichteten Durchschnitt von vier Inkrementen, wobei jedes Inkrement das Produkt aus der Größe des Intervalls h und einer geschätzten Steigung ist, die durch die Funktion f auf der rechten Seite der Differentialgleichung angegeben wird.

  • ist die Steigung am Anfang des Intervalls unter Verwendung von (Eulersche Methode);
  • ist die Steigung in der Mitte des Intervalls unter Verwendung von und ;
  • ist wiederum die Steigung in der Mitte des Intervalls, aber jetzt unter Verwendung von und ;
  • ist die Steigung am Ende des Intervalls, unter Verwendung von und .

Bei der Mittelung der vier Steigungen werden die Steigungen in der Mitte stärker gewichtet. Wenn unabhängig ist von ist, so dass die Differentialgleichung einem einfachen Integral entspricht, dann ist RK4 die Simpsonsche Regel.

Die RK4-Methode ist eine Methode vierter Ordnung, was bedeutet, dass der lokale Abschneidefehler in der Größenordnung von liegt, während der gesamte akkumulierte Fehler in der Größenordnung von .

In vielen praktischen Anwendungen wird die Funktion unabhängig ist von (so genanntes autonomes System oder zeitinvariantes System, insbesondere in der Physik) und ihre Inkremente überhaupt nicht berechnet und nicht an die Funktion übergeben, wobei nur die endgültige Formel für verwendet.

Explizite Runge-Kutta-Verfahren

Die Familie der expliziten Runge-Kutta-Verfahren ist eine Verallgemeinerung des oben erwähnten RK4-Verfahrens. Sie ist gegeben durch

wobei

(Hinweis: Die obigen Gleichungen können in einigen Texten unterschiedliche, aber gleichwertige Definitionen haben).

Um eine bestimmte Methode zu spezifizieren, muss man die ganze Zahl s (die Anzahl der Stufen) und die Koeffizienten aij (für 1 ≤ j < i ≤ s), bi (für i = 1, 2, ..., s) und ci (für i = 2, 3, ..., s) angeben. Die Matrix [aij] wird als Runge-Kutta-Matrix bezeichnet, während bi und ci als die Gewichte und die Knoten bezeichnet werden. Diese Daten werden in der Regel in einer Gedächtnisstütze angeordnet, die als Butcher-Tableau (nach John C. Butcher) bezeichnet wird:

Eine Taylorreihenentwicklung zeigt, dass das Runge-Kutta-Verfahren nur dann konsistent ist, wenn

Es gibt auch begleitende Anforderungen, wenn man verlangt, dass die Methode eine bestimmte Ordnung p hat, was bedeutet, dass der lokale Abbruchfehler O(hp+1) ist. Diese lassen sich aus der Definition des Trunkierungsfehlers selbst ableiten. Zum Beispiel hat eine zweistufige Methode die Ordnung 2, wenn b1 + b2 = 1, b2c2 = 1/2 und b2a21 = 1/2. Eine beliebte Bedingung für die Bestimmung der Koeffizienten ist

Diese Bedingung allein ist jedoch weder ausreichend noch notwendig für die Konsistenz.

Im Allgemeinen, wenn ein explizites -Stufen-Runge-Kutta-Verfahren die Ordnung hat, dann kann bewiesen werden, dass die Anzahl der Stufen folgende Bedingungen erfüllen muss , und wenn , dann . Es ist jedoch nicht bekannt, ob diese Schranken in allen Fällen scharf sind; zum Beispiel haben alle bekannten Methoden der Ordnung 8 mindestens 11 Stufen, obwohl es möglich ist, dass es Methoden mit weniger Stufen gibt. (Die obige Schranke legt nahe, dass es eine Methode mit 9 Stufen geben könnte; es könnte aber auch sein, dass die Schranke einfach nicht scharf ist.) In der Tat ist es ein offenes Problem was die genaue Mindestanzahl von Stufen für ein explizites Runge-Kutta-Verfahren mit der Ordnung in den Fällen, in denen noch keine Methoden gefunden wurden, die die obigen Schranken mit Gleichheit erfüllen. Einige Werte, die bekannt sind, sind:

Die obigen beweisbaren Grenzen implizieren, dass wir keine Methoden der Ordnung zu finden, die weniger Stufen benötigen als die Methoden, die wir für diese Ordnungen bereits kennen. Es ist jedoch denkbar, dass wir eine Methode der Ordnung zu finden, die nur 8 Stufen hat, während die einzigen heute bekannten Verfahren mindestens 9 Stufen haben, wie in der Tabelle gezeigt.

Beispiele

Die RK4-Methode fällt in diesen Rahmen. Ihr Tableau lautet

0
1/2 1/2
1/2 0 1/2
1 0 0 1
1/6 1/3 1/3 1/6

Eine leichte Abwandlung des Runge-Kutta-Verfahrens geht ebenfalls auf Kutta (1901) zurück und wird als 3/8-Regel bezeichnet. Der Hauptvorteil dieser Methode besteht darin, dass fast alle Fehlerkoeffizienten kleiner sind als bei der bekannten Methode, aber sie erfordert etwas mehr FLOPs (Gleitkommaoperationen) pro Zeitschritt. Das Butcher-Tableau lautet

0
1/3 1/3
2/3 -1/3 1
1 1 -1 1
1/8 3/8 3/8 1/8

Das einfachste Runge-Kutta-Verfahren ist jedoch das (Vorwärts-)Euler-Verfahren, das durch die Formel . Dies ist das einzige konsistente explizite Runge-Kutta-Verfahren mit einer Stufe. Das entsprechende Tableau lautet

0
1

Verfahren zweiter Ordnung mit zwei Stufen

Ein Beispiel für ein zweistufiges Verfahren zweiter Ordnung ist die Mittelpunktsmethode:

Das entsprechende Tableau lautet

0
1/2 1/2
0 1

Das Mittelpunktverfahren ist nicht das einzige Runge-Kutta-Verfahren zweiter Ordnung mit zwei Stufen; es gibt eine Familie solcher Verfahren, die durch α parametrisiert und durch die Formel

Ihr Butcher-Tableau lautet

0

In dieser Familie, die Mittelpunktsmethode, die Heunsche Methode und ist die Ralston-Methode.

Verwenden Sie

Betrachten wir als Beispiel das zweistufige Runge-Kutta-Verfahren zweiter Ordnung mit α = 2/3, auch bekannt als Ralston-Verfahren. Es wird durch das Tableau

0
2/3 2/3
1/4 3/4

mit den entsprechenden Gleichungen

Dieses Verfahren wird zur Lösung des Anfangswertproblems verwendet

mit der Schrittweite h = 0,025, so dass die Methode vier Schritte benötigt.

Die Methode geht wie folgt vor:

Die numerischen Lösungen entsprechen den unterstrichenen Werten.

Adaptive Runge-Kutta-Verfahren

Adaptive Methoden sind so konzipiert, dass sie eine Schätzung des lokalen Abbruchfehlers eines einzelnen Runge-Kutta-Schrittes liefern. Dies geschieht durch zwei Methoden, eine mit der Ordnung und eine mit der Ordnung . Diese Methoden sind miteinander verwoben, d.h. sie haben gemeinsame Zwischenschritte. Dadurch ist der Rechenaufwand für die Schätzung des Fehlers im Vergleich zu einem Schritt mit der Methode höherer Ordnung gering oder vernachlässigbar.

Während der Integration wird die Schrittweite so angepasst, dass der geschätzte Fehler unter einem vom Benutzer definierten Schwellenwert bleibt: Ist der Fehler zu groß, wird ein Schritt mit einer niedrigeren Schrittgröße wiederholt; ist der Fehler viel kleiner, wird die Schrittgröße erhöht, um Zeit zu sparen. Dies führt zu einer (fast) optimalen Schrittgröße, die Rechenzeit spart. Außerdem muss der Benutzer keine Zeit darauf verwenden, eine geeignete Schrittgröße zu finden.

Der Schritt niedrigerer Ordnung ist gegeben durch

wobei sind die gleichen wie bei der Methode höherer Ordnung. Dann ist der Fehler

der ist . Das Butcher-Tableau für diese Art von Verfahren wird erweitert, um die Werte von :

0

Das Runge-Kutta-Fehlberg-Verfahren hat zwei Verfahren der Ordnung 5 und 4. Ihr erweitertes Butcher-Tableau lautet:

0
1/4 1/4
3/8 3/32 9/32
12/13 1932/2197 −7200/2197 7296/2197
1 439/216 −8 3680/513 -845/4104
1/2 −8/27 2 −3544/2565 1859/4104 −11/40
16/135 0 6656/12825 28561/56430 −9/50 2/55
25/216 0 1408/2565 2197/4104 −1/5 0

Bei der einfachsten adaptiven Runge-Kutta-Methode wird jedoch die Heun-Methode der Ordnung 2 mit der Euler-Methode der Ordnung 1 kombiniert. Sein erweitertes Butcher-Tableau ist:

0
1 1
1/2 1/2
1 0

Weitere adaptive Runge-Kutta-Methoden sind die Bogacki-Shampine-Methode (Ordnung 3 und 2), die Cash-Karp-Methode und die Dormand-Prince-Methode (beide mit Ordnung 5 und 4).

Nicht-konfluente Runge-Kutta-Verfahren

Ein Runge-Kutta-Verfahren wird als nicht-konfluent bezeichnet, wenn alle verschieden sind.

Runge-Kutta-Nyström-Verfahren

Runge-Kutta-Nyström-Methoden sind spezielle Runge-Kutta-Methoden, die für Differentialgleichungen zweiter Ordnung der folgenden Form optimiert sind:

Implizite Runge-Kutta-Verfahren

Alle bisher genannten Runge-Kutta-Verfahren sind explizite Verfahren. Explizite Runge-Kutta-Methoden sind im Allgemeinen für die Lösung von steifen Gleichungen ungeeignet, da ihr Bereich der absoluten Stabilität klein ist; insbesondere ist er begrenzt. Dieses Problem ist besonders wichtig bei der Lösung von partiellen Differentialgleichungen.

Die Instabilität der expliziten Runge-Kutta-Methoden motiviert die Entwicklung impliziter Methoden. Ein implizites Runge-Kutta-Verfahren hat die Form

wobei

Der Unterschied zu einem expliziten Verfahren ist, dass bei einem expliziten Verfahren die Summe über j nur bis i - 1 geht. Dies zeigt sich auch im Butcher-Tableau: Die Koeffizientenmatrix einer expliziten Methode ist unterdreieckig. Bei einem impliziten Verfahren geht die Summe über j bis s, und die Koeffizientenmatrix ist nicht dreieckig, so dass sich ein Butcher-Tableau der Form

Siehe oben unter Adaptive Runge-Kutta-Methoden für die Erklärung der Zeile.

Dieser Unterschied hat zur Folge, dass bei jedem Schritt ein System algebraischer Gleichungen gelöst werden muss. Dies erhöht den Rechenaufwand erheblich. Wird ein Verfahren mit s Stufen zur Lösung einer Differentialgleichung mit m Komponenten verwendet, so hat das algebraische Gleichungssystem ms Komponenten. Dies kann mit impliziten linearen Mehrschrittverfahren (der anderen großen Familie von Verfahren für ODEs) verglichen werden: ein implizites lineares Mehrschrittverfahren mit s Schritten muss ein System algebraischer Gleichungen mit nur m Komponenten lösen, so dass die Größe des Systems nicht mit der Anzahl der Schritte zunimmt.

Beispiele

Das einfachste Beispiel für ein implizites Runge-Kutta-Verfahren ist das Rückwärts-Euler-Verfahren:

Das Butcher-Tableau für dieses ist einfach:

Dieses Butcher-Tableau entspricht den Formeln

die man umformulieren kann, um die oben genannte Formel für das Backward-Euler-Verfahren zu erhalten.

Ein weiteres Beispiel für ein implizites Runge-Kutta-Verfahren ist die Trapezregel. Ihr Butcher-Tableau lautet:

Die Trapezregel ist eine Kollokationsmethode (wie in diesem Artikel beschrieben). Alle Kollokationsverfahren sind implizite Runge-Kutta-Verfahren, aber nicht alle impliziten Runge-Kutta-Verfahren sind Kollokationsverfahren.

Die Gauß-Legendre-Methoden bilden eine Familie von Kollokationsmethoden, die auf der Gauß-Quadratur basieren. Ein Gauß-Legendre-Verfahren mit s Stufen hat die Ordnung 2s (es können also Verfahren mit beliebig hoher Ordnung konstruiert werden). Die Methode mit zwei Stufen (und damit vierter Ordnung) hat ein Butcher-Tableau:

Stabilität

Der Vorteil der impliziten Runge-Kutta-Methoden gegenüber den expliziten ist ihre größere Stabilität, insbesondere bei der Anwendung auf steife Gleichungen. Betrachten wir die lineare Testgleichung . Ein auf diese Gleichung angewandtes Runge-Kutta-Verfahren reduziert sich auf die Iteration , wobei r gegeben ist durch

wobei e für den Vektor der Einsen steht. Die Funktion r wird als Stabilitätsfunktion bezeichnet. Aus der Formel folgt, dass r der Quotient zweier Polynome vom Grad s ist, wenn das Verfahren s Stufen hat. Explizite Methoden haben eine streng untere Dreiecksmatrix A, was bedeutet, dass det(I - zA) = 1 ist und dass die Stabilitätsfunktion ein Polynom ist.

Die numerische Lösung der linearen Testgleichung zerfällt zu Null, wenn | r(z) | < 1 mit z = hλ. Die Menge solcher z wird als der Bereich der absoluten Stabilität bezeichnet. Insbesondere wird die Methode als absolut stabil bezeichnet, wenn alle z mit Re(z) < 0 im Bereich der absoluten Stabilität liegen. Die Stabilitätsfunktion eines expliziten Runge-Kutta-Verfahrens ist ein Polynom, so dass explizite Runge-Kutta-Verfahren niemals A-stabil sein können.

Wenn das Verfahren die Ordnung p hat, dann erfüllt die Stabilitätsfunktion als . Daher ist es von Interesse, Quotienten von Polynomen bestimmten Grades zu untersuchen, die die Exponentialfunktion am besten approximieren. Diese sind als Padé-Approximanten bekannt. Eine Padé-Approximante mit einem Zähler vom Grad m und einem Nenner vom Grad n ist A-stabil, wenn und nur wenn m ≤ n ≤ m + 2.

Das Gauß-Legendre-Verfahren mit s Stufen hat die Ordnung 2s, seine Stabilitätsfunktion ist also die Padé-Approximante mit m = n = s. Daraus folgt, dass das Verfahren A-stabil ist. Dies zeigt, dass das A-stabile Runge-Kutta-Verfahren eine beliebig hohe Ordnung haben kann. Im Gegensatz dazu kann die Ordnung von A-stabilen linearen Mehrschrittverfahren zwei nicht überschreiten.

B-Stabilität

Das Konzept der A-Stabilität für die Lösung von Differentialgleichungen steht im Zusammenhang mit der linearen autonomen Gleichung . Dahlquist schlug die Untersuchung der Stabilität numerischer Verfahren bei der Anwendung auf nichtlineare Systeme vor, die eine Monotoniebedingung erfüllen. Die entsprechenden Konzepte wurden als G-Stabilität für Mehrschrittverfahren (und die damit verbundenen Einschrittverfahren) und als B-Stabilität (Butcher, 1975) für Runge-Kutta-Verfahren definiert. Ein Runge-Kutta-Verfahren, das auf ein nichtlineares System angewendet, das erfüllt, wird B-stabil genannt, wenn diese Bedingung für zwei numerische Lösungen.

Sei , und seien drei Matrizen, definiert durch

Ein Runge-Kutta-Verfahren wird als algebraisch stabil bezeichnet, wenn die Matrizen und beide nicht-negativ definit sind. Eine hinreichende Bedingung für B-Stabilität ist: und sind nicht-negativ definitiv.

Herleitung des Runge-Kutta-Verfahrens vierter Ordnung

Im Allgemeinen kann ein Runge-Kutta-Verfahren der Ordnung kann wie folgt geschrieben werden:

wobei:

Inkremente sind, die durch die Auswertung der Ableitungen von in der -ten Ordnung.

Wir entwickeln die Ableitung für das Runge-Kutta-Verfahren vierter Ordnung unter Verwendung der allgemeinen Formel mit die, wie oben erläutert, am Anfangs-, Mittel- und Endpunkt eines beliebigen Intervalls ; daher wählen wir:

und sonst. Wir beginnen mit der Definition der folgenden Größen:

wobei und . Wenn wir definieren:

und für die vorangegangenen Beziehungen können wir zeigen, dass die folgenden Gleichungen gelten, bis :

wobei:

ist die Gesamtableitung von nach der Zeit.

Wenn wir nun die allgemeine Formel mit Hilfe der soeben abgeleiteten Formel ausdrücken, erhalten wir:

und vergleichen dies mit der Taylorreihe von um :

erhalten wir ein System von Nebenbedingungen für die Koeffizienten:

das, wenn gelöst, folgendes ergibt wie oben angegeben.

Butcher-Tableau

Man kann die charakteristischen Koeffizienten , , übersichtlich im Runge-Kutta-Tableau (auch Butcher-Schema, -Tableau oder engl. Butcher array genannt) anordnen. Hierbei ist die Matrix A bei einem expliziten Verfahren eine strikte untere Dreiecksmatrix (Nilpotente Dreiecksmatrix).

  

Konsistenzordnung und Konvergenzordnung

Eine wichtige Eigenschaft zum Vergleich von Verfahren ist die Konsistenzordnung, die auf dem Begriff des lokalen Diskretisierungsfehlers beruht. Dabei ist die numerische Lösung nach einem Schritt und die exakte Lösung. Ein Einschrittverfahren heißt konsistent von der Ordnung (hat Konsistenzordnung ), falls für den lokalen Diskretisierungsfehler gilt:

(Zur Notation siehe Landau-Symbole).

Die Konsistenzordnung kann durch Taylorentwicklung von oder der exakten und numerischen Lösung bestimmt werden. Allgemein gilt:

Konsistenzordnung und Stabilität Konvergenzordnung

Bei Einschrittverfahren wie den Runge-Kutta-Verfahren gilt sogar, sofern und die Verfahrensvorschrift Lipschitz-stetig sind:

Konsistenzordnung Konvergenzordnung

Aus der Konsistenzbedingung (z. B. soll das Verfahren Ordnung 4 haben) ergeben sich Konsistenzgleichungen (engl. conditions) für die Koeffizienten des Runge-Kutta-Verfahrens. Die Gleichungen und ihre Anzahl können mit Hilfe von Taylorentwicklung oder der Theorie der Butcher-Bäume ermittelt werden. Mit zunehmender Ordnung wächst die Zahl der zu lösenden nicht-linearen Konsistenzgleichungen schnell an. Das Aufstellen der Konsistenzgleichungen ist bereits nicht einfach, kann jedoch mit Hilfe der Butcher-Bäume von Computeralgebrasystemen erledigt werden. Das Lösen ist allerdings noch schwieriger und bedarf Erfahrung und Fingerspitzengefühl, um „gute“ Koeffizienten zu erhalten.

Ein explizites -stufiges Runge-Kutta-Verfahren hat höchstens Konvergenzordnung , ein implizites dagegen bis zu .

Um die Genauigkeit eines Ergebnisses zu verbessern, gibt es zwei Möglichkeiten:

  1. Man kann die Schrittweite verkleinern, das heißt, man erhöht die Anzahl der Diskretisierungspunkte.
  2. Man kann Verfahren höherer Konvergenzordnung wählen.

Welche Strategie die bessere ist, hängt von der konkreten Problemstellung ab, die Erhöhung der Konvergenzordnung ist allerdings nur bis zu einer bestimmten Grenze sinnvoll, da wegen der Butcher-Schranken die Stufenzahl schneller wächst als die Ordnung . Für existiert beispielsweise kein explizites -stufiges RKV der Konvergenzordnung .

Zeitschrittweitensteuerung: Eingebettete Verfahren

Um die Effizienz der Verfahren zu erhöhen, ist es sinnvoll, den Zeitschritt einer Fehlertoleranz anzupassen. Runge-Kutta-Verfahren bieten hierzu über eingebettete Verfahren eine relativ einfache Möglichkeit. Diese bestehen aus einem zweiten Satz an Koeffizienten für ein zweites Verfahren:

wobei die Koeffizienten so gewählt werden, dass sich ein schlechteres Verfahren, konkret ein Verfahren von niedrigerer Ordnung ergibt als das ursprüngliche. Dann ist die Differenz

eine Schätzung des lokalen Fehlers des ursprünglichen Verfahrens von der Ordnung wie das eingebettete Verfahren. Zur Berechnung sind keine neuen Funktionsauswertungen notwendig, sondern nur Linearkombinationen der bereits berechneten . Die Bestimmung einer neuen Zeitschrittweite aus dem Fehlerschätzer kann über verschiedene Schrittweitensteuerungen erfolgen.

Im expliziten Fall sind die bekanntesten eingebetteten Verfahren die Runge-Kutta-Fehlberg- sowie die Dormand-Prince-Formeln (DOPRI).