Runge-Kutta methods

The Runge-Kutta methods were developed around 1900 by the German mathematicians C. Runge and Martin Kutta. The Runge-Kutta mmethod can be extended to any level of accuracy, although fourth order version of this scheme is the most commonly used today.

The idea behind this method is to divide the integration step of Euler into many sub-steps that can be easily obtained from previous sub-steps. This idea can be written as

y_{n+1}=y_n + \Delta x \sum_{i=1}^s b_i k_i

where

k_1 = f(x_n,y_n)

k_2 = f(x_n+c_2\Delta x,y_n+\Delta x(a_{21}k_1)
k_2 = f(x_n+c_3\Delta x,y_n+\Delta x(a_{31}k_1+a_{32}k_2)
k_s = f(x_n+c_s\Delta x,y_n+\Delta x(a_{s1}k_1+a_{s2}k_2+…++a_{s,s-1}k_{s-1})

The matrix [a_{ij}] is called the Runge–Kutta matrix, while the b_i and c_i  are known as the weights and the nodes. These data are usually arranged in a mnemonic device, known as a Butcher tableau (after John C. Butcher):

0

The Runge–Kutta method is consistent if

\sum_{j=1}^{i-1} a_{ij} = c_i~{\rm for}~i=2,…,s..

It is important to know that if we want to calculate the value of y(x) exactly at the point x+\Delta x, the

\sum_{i=1}^{s} b_{i} = 1..

Runge-Kutta s=2

We want now to develop a second order approximation to the solution with only two stages. Then the Butcher tableau should look like this:

\begin{array}{c|cc} c_1=0&& \\c_2=?&a_{21}=?&\\\mathrlap{\rule[-1ex]{10em}{0.1ex}}\\&b_1=?&b_2=? \end{array}

We can choose c_2,~a_{21},~b_1 and b_2 arbitrarily as long as we keep the rules written above.

For example let’s choose b_1 = 0 as we want do not want to use approximate data calculated for k_1. For the next approximation we can then choose a middle point x+\frac{1}{2}\Delta x and this will give  c_2=a_{21}=\frac{1}{2}.

As   \sum_{i=1}^{s} b_{i} = 1, we instantly know that b_2=1.

The table is now:

\begin{array}{c|cc} 0&& \\ \frac{1}{2}&\frac{1}{2}&\\\mathrlap{\rule[-1ex]{10em}{0.1ex}}\\&0&1 \end{array}

with

k_1 = f(x_n,y_n)

k_2 = f(x_n+\frac{\Delta x}{2},y_n+\Delta x\frac{k_1}{2})

 

 

Higher order methods

For higher order methods look at: This website.