Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Runge–Kutta methods
(section)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
==Adaptive Runge–Kutta methods== Adaptive methods are designed to produce an estimate of the local truncation error of a single Runge–Kutta step. This is done by having two methods, one with order <math>p</math> and one with order <math>p - 1</math>. These methods are interwoven, i.e., they have common intermediate steps. Thanks to this, estimating the error has little or negligible computational cost compared to a step with the higher-order method. During the integration, the step size is adapted such that the estimated error stays below a user-defined threshold: If the error is too high, a step is repeated with a lower step size; if the error is much smaller, the step size is increased to save time. This results in an (almost), optimal step size, which saves computation time. Moreover, the user does not have to spend time on finding an appropriate step size. The lower-order step is given by :<math> y^*_{n+1} = y_n + h\sum_{i=1}^s b^*_i k_i, </math> where <math>k_i</math> are the same as for the higher-order method. Then the error is :<math> e_{n+1} = y_{n+1} - y^*_{n+1} = h\sum_{i=1}^s (b_i - b^*_i) k_i, </math> which is <math>O(h^p)</math>. The Butcher tableau for this kind of method is extended to give the values of <math>b^*_i</math>: {| cellspacing="0" cellpadding="3" | width="20" | || style="border-right:1px solid;" | 0 |- ||| style="border-right:1px solid;" | <math> c_2 </math> || <math> a_{21} </math> |- ||| style="border-right:1px solid;" | <math> c_3 </math> || <math> a_{31} </math> || <math> a_{32} </math> |- ||| style="border-right:1px solid;" | <math> \vdots </math> || <math> \vdots </math> || || <math> \ddots </math> |- ||| style="border-right:1px solid; border-bottom:1px solid;" | <math> c_s </math> | style="border-bottom:1px solid;" | <math> a_{s1} </math> | style="border-bottom:1px solid;" | <math> a_{s2} </math> | style="border-bottom:1px solid;" | <math> \cdots </math> | style="border-bottom:1px solid;" | <math> a_{s,s-1} </math> || style="border-bottom:1px solid;" | |- ||| style="border-right:1px solid;" | || <math> b_1 </math> || <math> b_2 </math> || <math> \cdots </math> || <math> b_{s-1} </math> || <math> b_s </math> |- ||| style="border-right:1px solid;" | || <math> b^*_1 </math> || <math> b^*_2 </math> || <math> \cdots </math> || <math> b^*_{s-1} </math> || <math> b^*_s </math> |} The [[Runge–Kutta–Fehlberg method]] has two methods of orders 5 and 4. Its extended Butcher tableau is: {| cellspacing="0" cellpadding="3" | width="20" | || style="border-right:1px solid;" | 0 |- ||| style="border-right:1px solid;" | 1/4 || 1/4 |- ||| style="border-right:1px solid;" | 3/8 || 3/32 || 9/32 |- ||| style="border-right:1px solid;" | 12/13 || 1932/2197 || −7200/2197 || 7296/2197 |- ||| style="border-right:1px solid;" | 1 || 439/216 || −8 || 3680/513 || -845/4104 |- ||| style="border-right:1px solid; border-bottom:1px solid;" | 1/2 || style="border-bottom:1px solid;" | −8/27 || style="border-bottom:1px solid;" | 2 || style="border-bottom:1px solid;" | −3544/2565 || style="border-bottom:1px solid;" | 1859/4104 || style="border-bottom:1px solid;" | −11/40 || style="border-bottom:1px solid;" | |- ||| style="border-right:1px solid;" | || 16/135 || 0 || 6656/12825 || 28561/56430 || −9/50 || 2/55 |- ||| style="border-right:1px solid;" | || 25/216 || 0 || 1408/2565 || 2197/4104 || −1/5 || 0 |} However, the simplest adaptive Runge–Kutta method involves combining [[Heun's method]], which is order 2, with the [[Euler method]], which is order 1. Its extended Butcher tableau is: {| cellspacing="0" cellpadding="3" | width="20" | || style="border-right:1px solid;" | 0 |- ||| style="border-right:1px solid; border-bottom:1px solid;" | 1 || style="border-bottom:1px solid;" | 1 || style="border-bottom:1px solid;" | |- ||| style="border-right:1px solid;" | || 1/2 || 1/2 |- ||| style="border-right:1px solid;" | || 1 || 0 |} Other adaptive Runge–Kutta methods are the [[Bogacki–Shampine method]] (orders 3 and 2), the [[Cash–Karp method]] and the [[Dormand–Prince method]] (both with orders 5 and 4).
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)