Schrittweitensteuerung
Schrittweitensteuerung ist eine Technik, die in der numerischen Mathematik bei Algorithmen angewendet werden kann, die ein kontinuierliches Problem durch Diskretisierung in einzelne Schritte lösen.
Verschiedene Problemklassen führen auf die Aufgabe eine Kurve
für ein gewisses
-Intervall
in
zu konstruieren. Dazu gehören die Lösung eines Anfangswertproblems
für gewöhnliche
Differentialgleichungen und die Verfolgung einer Lösungskurve
nichtlinearerer Gleichungssysteme mit Homotopieverfahren.
Solche Probleme werden in der numerischen Mathematik oft mit Verfahren gelöst,
die die Lösung nur schrittweise an einzelnen Punkten
berechnen, also Näherungen
,
wobei
als Anfangswert bekannt ist. Die verwendeten Schrittweiten nennt man
.
Typischerweise ist der Rechenaufwand für einen einzelnen Schritt i.w. konstant
und der Fehler hängt ab von einer Potenz der Schrittweite, er hat die Form
.
Man steht dann vor der Frage, wie groß die Schrittweiten zu wählen sind, um eine
gewünschte Genauigkeit insgesamt zu erreichen. Dabei ist zu beachten, dass die
Vorfaktoren
von der unbekannten Lösungskurve abhängen, insbesondere von ihren Ableitungen
,
die Größenordnung dieser Vorfaktoren kann daher stark schwanken. Daher verwendet
man bei modernen Algorithmen keine konstante Schrittweite
.
Die wichtigsten Argumente für eine Schrittweitensteuerung sind
- aus Effizienzgründen ist es sinnvoll bei kleinen Werten
mit großen Schrittweiten und bei großen Werten
mit kleinen zu arbeiten, um einen gleichmäßig kleinen Gesamtfehler mit möglichst wenigen Schritten zu erreichen.
- eine feste Schrittweite
müsste sich nach der ungünstigsten Stelle mit dem größten
richten und man würde in weniger kritischen Bereichen viel zu viele Schritte machen, was bei Anfangswertproblemen auch zu großen Rundungsfehlern in der Lösung führen kann.
- Schrittweitensteuerung ermöglicht die Programmierung automatischer, selbststeuernder Algorithmen.
Schrittweitensteuerung bei Anfangswertproblemen
Voraussetzung für eine Schrittweitensteuerung bei gewöhnlichen Anfangswertproblemen
ist das Vorhandensein einer Fehlerschätzung für den lokalen Fehler. Solche
Schätzungen kann man allgemein durch Richardson-Extrapolation
bekommen, indem man einen Schritt mit den (Test-) Schrittweiten
und
durchführt und die beiden Näherungen vergleicht. Weniger Aufwand erfordern bei
Runge-Kutta-Verfahren
eingebette Verfahren bzw. Verfahrenspaare, wobei man ausgehend von einer
berechneten Näherung
im nächsten Schritt zwei Näherungen
und
unterschiedlicher Genauigkeit berechnet. Bei Mehrschrittverfahren
kann man die Näherungen einer Prädiktor-Korrektor-Methode
als Verfahrenspaar verwenden.
Mit einem solchen Verfahrenspaar ist die Differenz
eine Schätzung für den auftretenden lokalen Fehler. Zur Bestimmung der idealen
Schrittweite betrachtet man mit der aktuellen Schrittweite
die Bedingung
als Gleichung für den unbekannten Faktor
und bestimmt dann damit die Schrittweite, welche eine vom Anwender vorgegebene
Toleranz
genau einhalten würde, also mit
:
Da dieser Wert allerdings erst nach Durchführung des Schritts bekannt
ist, geht man nach einem Trial-and-Error-Verfahren vor und nutzt die
Schrittweite
nur in einer Wiederholung des Schrittes, wenn die Toleranz nicht eingehalten
wurde, d.h. wenn der Fehlerquotient
war. Da Wiederholungen relativ teuer sind, ist man vorsichtig und benutzt einen
kleineren Wert, etwa
.
Außerdem begrenzt man den Schrittweitenfaktor nach oben und unten. Die
Steuerung im Schritt ab
hat daher mit einer ersten Schätzung
folgenden Ablauf:
- berechne die beiden Lösungen
zur Schrittweite
und damit den Fehlerquotienten
,
- berechne damit
- wenn
, setze
, gehe nach 1,
- wenn
ist, setze
und
. Der nächste Schritt beginnt wieder mit Anweisung 1.
In Anweisung 3 wird also der aktuelle Versuch verworfen und der Schritt ab
mit kleinerer Schrittweite wiederholt, während in Punkt 4 der Schritt akzeptiert
wird und der nächste Integrationsschritt erfolgen kann. Eine Zusatzabfrage
beendet das Verfahren am Ende des Lösungsintervalls. Dieses Verfahren steuert
aber nur die lokalen Fehlerbeiträge und erwartet, dass der globale Fehler am
Ende des Intervalls ungefähr in der gleichen Größenordnung liegt.
Schrittweitensteuerung bei Homotopieverfahren
Bei der Verfolgung der Lösungskurven nichtlinearerer Gleichungssysteme
mit Homotopieverfahren
spielt eine Akkumulation von Fehlern keine Rolle, da man mit dem Newton-Verfahren die
Kurve jederzeit wieder beliebig genau approximieren kann. Hier kommt es eher
darauf an, möglichst schnell voranzukommen ohne die Kurve dabei zu verlieren
oder auf einen Nachbarzweig zu wechseln. Zur Fehlerschätzung prüft man daher die
Konvergenzgeschwindigkeit der Newton-Iteration.
Es sei jetzt
eine Näherung für
,
also mit kleinem Residuum
.
Bei der einfachen Kurvenverfolgung stellen Homotopieverfahren
einen Prädiktor bereit, der eine Startnäherung
für die unbekannte
berechnet. Mit
führt man zwei Newtonschritte durch, welche verbesserte Näherungen
berechnen. Die schnelle Konvergenz des Newton-Verfahrens
wird mit dem Quotienten
der Differenzen überprüft. Mit einem kleinen Referenzwert
lautet eine einfache Schrittweitensteuerung hierfür so:
- berechne
zur Schrittweite
- für
setze
und gehe zu Anweisung 1.
- für
akzeptiere
, setze
, beginne nächsten Schritt mit Anweisung 1.
Bei einer starken Unterschreitung der Referenzgröße ,
z.B. für
,
kann im Schritt 3 vor dem Sprung zu Anweisung 1 die Schrittweiten-Vorhersage für
auch wieder vergrößert werden durch
.



© biancahoegel.de
Datum der letzten Änderung: Jena, den: 03.06. 2020