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
- , 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).
- Schätze die... führende Fehlerkonstante mittels (3.19),
- 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.
- 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,