Kurs:Gewöhnliche Differentialgleichungen/Eingebettete Runge-Kutta Paare

Aus testwiki
Zur Navigation springen Zur Suche springen

4.2 Eingebetette Runge-Kutta Paare

Auch mit expliziten Runge-Kutta Verfahren ist die Schrittweitensteuerung möglich. Im Unterschied zu dem in Absatz 3.2 beschriebenem Ansatz für die Schrittweitensteuerung des expliziten Eulerverfahrens, wird hier für die Abschätzung des lokalen Fehlers die Schrittweite nicht halbiert, sondern es werden zwei eRKV mit unterschiedlichen Konsistenzordnungen verwendet. Um die Anzahl der Funktionsauswertungen in der Berechnung der Zwischenstufen kj so gering wie möglich zu halten, verwenden diese zwei ’eingebetteten’ eRKV gemeinsame Stützstellen. Hierbei ist zu erwähnen, dass nach den Erkentnissen über die Stufenzahl und Ordnung eines eRKV das Verfahren höherer Ordnung weitere zusätzliche Zwischenstellen benötigt, um diese höhere Ordnung zu erreichen.

Als eingebetettes Runge-Kutta Paar verstehen wir zwei eRKV mit s gemeinsamen Stützstellen (und Stufen). Das erste der eRKV hat dabei die Konsistenzordnung p und das zweite Verfahren erreicht mit den s gemeinsamen Stützstellen und den zusätzlichen s+1,s+2,,m Stützsstellen, die Konsistenzordnung q>p. Die Gewichtsvektoren dieser beider eRKV sind im Allgemeinen unterschiedlich und die Iterationsvorschrifte (die Runge-Kutta-Updates) der beiden Verfahren sind: eRKV1: ηi+1=ηi+hj=1sbjkjeRKV2: η~i+1=η~i+hj=1sb~jkj+hj=s+1mb~jkj. Wegen den s gemeinsamen Stufen werden in beiden Verfahren die Funktionsauswertungen k1,ks verwendet. Ein Beispiel eines eingebetetten Runge-Kutta Paares ist das
Fehlenberg RK-Paar der Ordnung 2 und 3:

k1=f(ti,ηi)   k2=f(ti+h,ηi+hk1)k3=f(ti+h2,ηi+h4k1+h4k2)ηi+1=ηi+h(12k1+12k2)η~i+1=η~i+h(16k1+16k2+23k3).



4.2.1 Schrittweitensteuerung bei eingebetetten Runge-Kutta Verfahren

Im Folgenden beschränken wir uns auf den Fall q=p+1 und leiten die Formel der Schrittweitensteuerung her. Seien ηi+1,η~i+1 die numerischen Lösungen in ti+1, die aus der exakten Lösung y(ti) statt ηi,η~i ausgehen und die Verfahren haben die Konsistenzordnung p und p+1. Dann gilt für die lokalen Fehler nach Anwendung der Taylorentwicklung (mit Taylorrest) ε(ti+1,h)=hτ(ti+1,h)=y(ti+1)ηi+1=a(ti)hp+1+𝒪(hp+2)=a(θ1)hp+1,ε~(ti+1,h)=hτ~(ti+1,h)=y(ti+1)η~i+1=b(ti)hp+2+𝒪(hp+3)=b(θ2)hp+2,

wobei θ1,θ2[ti,ti+h]. a(ti)hp+1,b(ti)hp+1 nennen wir die führenden Fehlerglieder der beiden Verfahren. Diese sind die Glieder mit der kleinsten Potenz von h und enthalten bis zu (p+1)-te und (p+2)-te partielle Ableitungen der Funktion f in ti. Nach dem Subtrahieren der beiden Gleichungen erhalten wir η~i+1ηi+1=a(ti)hp+1+𝒪~(hp+2)hτ(ti+1,h), (4.9)

d.h. der lokale Fehler des ersten Verfahrens (eRKV1) lässt sich als Unterschied der beiden numerischen Lösungen abschätzen. Vernachlässigen wir in (4.9) den Rest 𝒪~(hp+2) mit höheren Potenzen von h, erhalten wir die Abschätzung des lokalen Fehlers mithilfe der numerischen Lösungen der zwei eingebetteten eRKV,[1] |ε(ti+1,h)||η~i+1ηi+1| für h0.

Gleichzeitig gilt für ein Verfahren der Konsistenzordnung p, dass |ε(ti+1,h)|Khp+1 mit Fehlerkonstante K=maxtIa(t).

Danach lässt sich die Fehlerkonstante K bei einer festen Schrittweite h berechnen als K|ε(ti+1,h)|hp+1|η~i+1ηi+1|hp+1.(4.10)

Diese Abschätzung der Fehlerkonstanten ist die Grundidee der Schrittweitensteuerung bei eingebetteten Runge-Kutta Verfahren.


ALGORITHMUS:

  1. t=ti, wähle eine Probeschrittweite H und die Toleranz tol für den lokalen Fehler.
    Berechne die numerische Lösung im nächsten Schritt ti+H mit Probeschrittweite H:
    • mithilfe eines Schrittes des eRKV1 mit Schrittweite H und s Stufen: ηi+1H,
    • mithilfe eines Schrittes des eRKV2 mit Schrittweite H und m>s Stufen: η~i+1H.
  2. Schätze die Fehlerkonstante K anhand (4.10) ab, als K|η~i+1Hηi+1H|Hp+1.
  3. Berechne die optimale Schrittweite hopt, sodass der lokale Fehler ε(ti,hopt) etwa der vorgegebenen Toleranz tol entspricht, wobei die Fehlerkonstante wie oben geschätzt wird: tol|ε(ti,hopt)|Khoptp+1|η~i+1Hηi+1H|Hp+1hoptp+1 hopt(tolK)1p+1<(tol|η~i+1Hηi+1H|)1p+1H. (4.11)
  4. Bestimme (und speichere) die numerische Lösung im nächsten Schritt ti+hopt mithilfe der Schrittweite hopt und des Verfahrens eRKV2 der Ordnung p+1: ηi+1:=η~i+1hopt=η~i+hoptj=1mb~jkj.

Weitere Beispiele der eingebetteten Runge-Kutta Verfahren sind die Formelpaare: Dorman & Prince (4, 5 Ordnung), oder Bogacki & Shampine (2, 3 Ordnung), die als Matlab-Funktionen ’ODE45’ und ’ODE23’ bekannt sind. Oft werden die Runge-Kutta Paare als FSAL-Typ (First Same As Last) Verfahren implementiert, wobei in jedem Zeitschritt die erste Funktionsauswertung k1 von f gespart wird, da diese mit der letzten Auswertung ks des vorherigen Schrittes übereinstimmt, wie es in folgendem Verfahren der Fall ist:


Hier gilt k4=f(ti+h,ηi+h(29k1+13k2+49k3))η~i+1=η~i+h(29k1+13k2+49k3)  t=ti+1 (nächstes Schritt)k1=f(ti+1,ηi+1)=f(ti+h,ηi+h(29k1+13k2+49k3))k4.

  1. Diese Abschätzung setzt voraus, dass die Werte η~i=ηi dem exakten Wert in ti, =y(ti) entsprechen. Dies ist in der Praxis nicht der Fall. Da aber bei den eingebettenen Runge-Kutta Verfahren die numerische Lösung der höheren Ordnung als Lösung gespeichert wird, und diese der exakten Lösung näher liegt, kann die Absschätzung des lokalen Fehlers mittels numerischen Lösungen ausgehend aus (fast) exater Lösung η~i in der Praxis verwendet werden.