Kurs:Gewöhnliche Differentialgleichungen/3.2 Schrittweitensteuerung bei Einschrittverfahren

Schrittweitensteuerung bei Einschrittverfahren

Bearbeiten

Die Anpassung der Schrittweite   während der numerischen Berechnung der Lösung spielt eine wichtige Rolle bei den Anfangswertaufgaben, deren rechte Seite eine steile Funktion ist. Wird die Schrittweite in solchen Fällen fest gehalten, wird der numerische Fehler in den Bereichen des steilen Anstiegs von   stark wachsen und das numerische Verfahren versagen. Schrittweitensteuerung ist essenziel auch für die sogenannten steifen Aufgaben mit sehr unterschiedlichen Wachstumsraten der Lösungskomponenten. Die steifen Probleme werden noch später näher studiert. In diesem Abschnitt wird beschrieben, wie man den genauen Ausdruck für den lokalen Fehler eines Verfahrens für die Anpassung der Schrittweite   einsetzen kann. Wir beschränken uns hier auf das explizite Euerverfahren.

Der lokale Fehler beschreibt, welchen Fehler das ESV in jedem einzelnen Berechnungsschritt zulässt, siehe Definition 3.8, oder wie gut die Verfahrensfunktion die rechte Seite der AWA,  , annähert. Im Fall des expliziten Eulerverfahrens ist der lokaler Fehler, ausgewertet an der Stelle    


Je steiler die Funktion   ist, (je größer  ), desto größer wird der lokale Fehler  . Das Ziel der Schrittweitensteuerung ist die Schrittweite an den Verlauf der Funktion   anzupassen, um den lokalen Fehler in jedem Berechnungschritt   unter einer gewissen Toleranz zu halten.

Um die passende Schrittweite in jedem Schritt zu finden, müssen wir die numerische Lösung und den zukünftigen Fehler vorab ”abtasten”. Bei explizitem Eulerverfahren bietet sich für diese Abschätzung der Abgleich der numerischen Lösung mit der Lösung mithilfe zweier ,,halber” Euler-Schritte (mit Schritweite  ). Um dies zu erläutern, untersuchen wir zuerst den lokalen Fehler des Eulerverfahrens mit halber Schrittweite:  


Der lokale Fehler dieses Verfahrens ist zweimal kleiner als der des Eulerfervahrens, denn  


vergleiche (3.16). Nach der Definition des lokalen Fehlers ist der lokale Fehler gleich dem Unterschied zwischen der exakten und der numerichen Lösung (berechnet aus exaktem Startwert),  , siehe Bemerkung 3.1 Punkt ii). Demnach erhalten wir für das Eulerverahren  

und für das Eulerverfahren mit halber Schrittweite  


Diese Erkenntnis lässt zwei Folgerungen schließen:
a) Der lokale Fehler vom Eulerverfahren lässt sich mithilfe des Unterschiedes der numerischen Lösung mit Schrittweite   und halber Schrittweite vorhersagen,  


b) Mit einer geeigneten Kombination der zwei Lösungen   ist es möglich das führende Fehlerglied   zu eliminieren und eine numerische Lösung zweiter Ordnung zu rekonstruieren, denn es gilt  

Die Gleichung (3.19) ist die Grundlage der Schrittweitenanpassung des Eulerverfahrens. Der lokaler Fehler   lässt sich vorab bestimmen, indem man den Unterschied der numerischen Lösungen mit ganzer und halber Schrittweite   bildet. Die Schrittweite   wird so gewählt, dass der lokaler Fehler die vorher gewählte Toleranz   nicht überschreitet:


ALGORITMUS: Schrittweitensteuerung

  1.  , wähle eine Probeschrittweite   und die Toleranz   für den lokalen Fehler.

Berechne die numerische Lösung im nächsten Schritt  

    • mithilfe eines Schrittes des Eulerverfahrens mit Schrittweite  :  ,
    • mithilfe von zwei Schritten des Eulerverfahrens mit halber Schrittweite  ,  , siehe (3.17).
  1. Schätze die... führende Fehlerkonstante mittels (3.19),  
  2. Wähle die optimale Schrittweite   so, dass der lokale Fehler   die vorgegebene Toleranz   nicht überschreitet:     Gleichung (3.20) Hier kann der Parameter   gewählt werden, um die optimale Schrittweite zusätzlich noch zu skalieren. In der Praxis wird of   angewendet.
  3. Bestimme die numerische Lösung   im nächsten Schritt   mithilfe der Schrittweite   und des Verfahrens zweiter Ordnung,  , siehe (3.17).

Dieser Schritt ist optional, man kann hier auch das klassische explizite Eulerverfahren anwenden, allerdings mit Verlust der Genauigkeit (Konsistenzordnung).

Anstelle der Toleranz für den absoluten lokalen Fehler, wird in der Schrittweitensteuerung oft die Toleranz für den relativen Fehler (%) angenommen. In dem Fall wird statt   er relativer Fehler   für die Schrittberechnung benutzt,