Privacy Policy Cookie Policy Terms and Conditions Klassisches Runge-Kutta-Verfahren - Wikipedia

Klassisches Runge-Kutta-Verfahren

aus Wikipedia, der freien Enzyklopädie

Inhaltsverzeichnis

[Bearbeiten] Allgemeines

Das klassische Runge-Kutta-Verfahren ist ein explizites 4-stufiges Einschrittverfahren der numerischen Mathematik zur näherungsweisen Lösung von Anfangswert-Problemen (Gewöhnliche Differentialgleichungen). Der Name stammt von den deutschen Mathematikern Carl Runge und Martin Wilhelm Kutta. Runge hat als erster (1895) ein mehrstufiges Verfahren angegeben und Kutta die allgemeine Form expliziter s-stufiger Verfahren. Siehe das allgemeine Runge-Kutta-Verfahren.

Das klassische Runge-Kutta-Verfahren verwendet – wie die weitaus meisten numerischen Lösungsverfahren für Differentialgleichungen – den Ansatz, Ableitungen (Differentialquotienten) durch (endliche) Differenzenquotienten zu ersetzen. Die dabei bei nichtlinearen Funktionen notwendigerweise auftretenden Fehler (es werden sämtliche höheren Glieder der Taylor-Entwicklung vernachlässigt) können durch geeignete Kombinationen verschiedener Differenzquotienten teilweise kompensiert werden. Das Runge-Kutta-Verfahren ist nun eine solche Kombination, die Diskretisierungsfehler bis zur dritten Ableitung kompensiert.

Das Runge-Kutta-Verfahren kann nur für Anfangsbedingungen eingesetzt werden; für Randbedingungen müssen andere Verfahren eingesetzt werden.


[Bearbeiten] Details

Eine allgemeine (nichtlineare) Theorie der Runge-Kutta Verfahren stammt von J. Butcher. Sie wurde später von P. Albrecht durch eine erheblich einfachere, lineare Theorie ersetzt.

Sei

y' = f(x,y)

eine (gewöhnliche) Differentialgleichung 1.Ordnung mit den Anfangsbedingungen

y(x0) = y0

und sei weiter h die gewünschte Schrittweite.

Dann wird der (angenäherte) Wert von y(x0 + h) = y(x1) nach Runge wie folgt errechnet:

x y y'
x0 y0 y'0
x_0+\frac{h}{2} yA y'A
yB y'B
x0 + h yC y'C
x0 + h = x1 y1 y'1

Hinweis: In der Literatur wird häufig an Stelle der y'X direkt die Schrittdifferenz kX=h.y'X angegeben. Das ist insbesondere hinsichtlich der in den folgenden Abschnitten angegebenen Anwendung auf Differentialgleichungen höherer Ordnung unpraktisch und wird darum (weil es die schematische Rechenarbeit unterbricht und auch sonst keinen Gewinn bringt) hier nicht verwendet.

\begin{matrix} y'_0 &=& f(x_0,y_0)\\ y_A &=& y_0+\frac{h}{2} \cdot y'_0\\ y'_A &=& f(x_0+\frac{h}{2},y_A)\\ y_B &=& y_0+\frac{h}{2} \cdot y'_A\\ y'_B &=& f(x_0+\frac{h}{2},y_B)\\ y_C &=& y_0+h \cdot y'_B\\ y'_C &=& f(x_0+h,y_C)\\ y_1 &=& y_0+h \cdot \frac{y'_0+2(y'_A+y'_B)+y'_C}{6}\\ \end{matrix}

Mit den neuen Werten x1 und y1 kann dann der nächste Rungeschritt durchgeführt werden. Die erzielte Genauigkeit liegt – bei genügend glattem f(x,y) – in der Größenordnung von h4.

[Bearbeiten] Systeme von Differentialgleichungen

Das obige Schema kann leicht auch auf Systeme von Differentialgleichungen y'_i=f(x,y_1,\dots,y_i) erweitert werden. Es ist nur für jede abhängige Variable eine eigene Spalte yi resp. y'i einzurichten und für jede die obigen Schritte auszuführen unter Verwendung der jeweiligen yi der vorangegangenen Zeile.

[Bearbeiten] Differentialgleichungen höherer Ordnung

Obwohl es Runge-Kutta-Verfahren gibt, die für Differentialgleichungen 2. oder höherer Ordnung speziell ausgelegt sind, hat sich in der Praxis herausgestellt, dass – insbesonders wenn über viele Schritte gegangen wird – das folgende Verfahren sehr brauchbar ist:

Sei y^{(n)}=f(x,y,y',y'',\dots,y^{(n-1)}) eine gewöhnliche Differentialgleichung n-ter Ordnung. Dann werden folgende Hilfsfunktionen eingeführt:

u_k=y^{(k)} \quad k \in {0 \dots n-1}

Wir erhalten dadurch ein System von n gewöhnlichen Differentialgleichungen 1.Ordnung:

u'0 = u1(x)

u'1 = u''0 = u2(x)

\dots

u'_{n-1}=u''_{n-2}= \dots = u^{(n)}_0=y^{(n)}=f(x,u_0,u_1,\dots\,u_{n-1})

die nach dem im obigen Absatz angegeben Schema gerechnet werden können. In diesem speziellen Fall vereinfacht sich das Schema noch, da ja jedes ui gleich u'i-1 ist und daher für diese Ableitungen keine eigene Spalte vonnöten ist. Nur in der letzten Spalte muss f(x,u0,u1,…un-1) ausgewertet werden. Zu beachten ist allerdings, dass hier von rechts nach links zu rechnen ist, da ja für jeden Schritt die Ableitungen des Vorschrittes benötigt werden und genau diese ja nicht aufgeschrieben wurden, sondern quasi rechts vom aktuellen Wert eben errechnet wurden.

Andere Sprachen
THIS WEB:

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - be - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - closed_zh_tw - co - cr - cs - csb - cu - cv - cy - da - de - diq - dv - dz - ee - el - eml - en - eo - es - et - eu - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gd - gl - glk - gn - got - gu - gv - ha - haw - he - hi - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mg - mh - mi - mk - ml - mn - mo - mr - ms - mt - mus - my - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - rm - rmy - rn - ro - roa_rup - roa_tara - ru - ru_sib - rw - sa - sc - scn - sco - sd - se - searchcom - sg - sh - si - simple - sk - sl - sm - sn - so - sq - sr - ss - st - su - sv - sw - ta - te - test - tet - tg - th - ti - tk - tl - tlh - tn - to - tokipona - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu

Static Wikipedia 2008 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -

Static Wikipedia 2007:

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - be - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - closed_zh_tw - co - cr - cs - csb - cu - cv - cy - da - de - diq - dv - dz - ee - el - eml - en - eo - es - et - eu - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gd - gl - glk - gn - got - gu - gv - ha - haw - he - hi - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mg - mh - mi - mk - ml - mn - mo - mr - ms - mt - mus - my - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - rm - rmy - rn - ro - roa_rup - roa_tara - ru - ru_sib - rw - sa - sc - scn - sco - sd - se - searchcom - sg - sh - si - simple - sk - sl - sm - sn - so - sq - sr - ss - st - su - sv - sw - ta - te - test - tet - tg - th - ti - tk - tl - tlh - tn - to - tokipona - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu

Static Wikipedia 2006:

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - be - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - closed_zh_tw - co - cr - cs - csb - cu - cv - cy - da - de - diq - dv - dz - ee - el - eml - en - eo - es - et - eu - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gd - gl - glk - gn - got - gu - gv - ha - haw - he - hi - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mg - mh - mi - mk - ml - mn - mo - mr - ms - mt - mus - my - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - rm - rmy - rn - ro - roa_rup - roa_tara - ru - ru_sib - rw - sa - sc - scn - sco - sd - se - searchcom - sg - sh - si - simple - sk - sl - sm - sn - so - sq - sr - ss - st - su - sv - sw - ta - te - test - tet - tg - th - ti - tk - tl - tlh - tn - to - tokipona - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu