logo

How to Choose Coefficients in the Runge-Kutta Method 📂Numerical Analysis

How to Choose Coefficients in the Runge-Kutta Method

Overview1

Let’s consider the ordinary differential equation given as follows. yy is a function of tt, and prime()(^{\prime}) denotes the derivative with respect to tt.

y=f(t,y),tt0,y(t0)=y0,tn+1=tn+h y^{\prime} = f(t,y),\quad t \ge t_{0},\quad y(t_{0}) = y_{0}, \quad t_{n+1} = t_{n} + h

The explicit Runge-Kutta method is a way to approximate yn+1=y(tn+1)y_{n+1} = y(t_{n+1}) for a given yn=y(tn)y_{n} = y(t_{n}) as follows:

yn+1=yn+hj=1νbjf(tn+cjh,ξj),n=0,1,2, y_{n+1} = y_{n} + h\sum_{j=1}^{\nu} b_{j} f(t_{n} + c_{j}h, \xi_{j}),\quad n=0,1,2,\cdots

Here, each ξj\xi_{j} is,

ξ1=ynξ2=yn+ha2,1f(tn,ξ1)ξ3=yn+ha3,1f(tn,ξ1)+ha3,2f(tn+c2h,ξ2)ξν=yn+hi=1ν1aν,if(tn+cih,ξi) \begin{align*} \xi_{1} &= y_{n} \\ \xi_{2} &= y_{n} + ha_{2,1}f(t_{n}, \xi_{1}) \\ \xi_{3} &= y_{n} + ha_{3,1}f(t_{n}, \xi_{1}) + ha_{3,2}f(t_{n} + c_{2}h, \xi_{2}) \\ \vdots & \\ \xi_{\nu} &= y_{n} + h\sum_{i=1}^{\nu-1}a_{\nu, i}f(t_{n} + c_{i}h, \xi_{i}) \end{align*}

In the RK method, the coefficients below are chosen to be used. We will explore how to select appropriate coefficients. A=[aj,i]=[a2,1a3,1a3,2aν,1aν,2aν,ν1]andb=[b1b2bν]andc=[c1c2cν] A = [a_{j,i}] = \begin{bmatrix} \\ a_{2,1} & \\ a_{3,1} & a_{3,2} \\ \vdots & \\ a_{\nu,1} & a_{\nu,2} & \cdots & a_{\nu,\nu-1} & \end{bmatrix} \quad \text{and} \quad \mathbf{b} = \begin{bmatrix} b_{1} \\ b_{2} \\ \vdots \\ b_{\nu} \end{bmatrix} \quad \text{and} \quad \mathbf{c} = \begin{bmatrix} c_{1} \\ c_{2} \\ \vdots \\ c_{\nu} \end{bmatrix}

For the case where ν=2\nu = 2

First, let’s consider the simplest case where ν=2\nu = 2. Then, ξ1=yn\xi_{1} = y_{n} and ξ2=yn+ha2,1f(tn,yn)\xi_{2} = y_{n} + ha_{2,1}f(t_{n}, y_{n}). Therefore, yn+1y_{n+1} is as follows:

yn+1=yn+h[b1f(tn+c1h,ξ1)+b2f(tn+c2h,ξ2)]=yn+h[b1f(tn,yn)+b2f(tn+c2h,yn+ha2,1f(tn,yn))] \begin{align} y_{n+1} &= y_{n} + h \Big[ b_{1}f(t_{n} + c_{1}h, \xi_{1}) + b_{2}f(t_{n} + c_{2}h, \xi_{2}) \Big] \nonumber \\ &= y_{n} + h \Big[ b_{1}f(t_{n}, y_{n}) + b_{2}f(t_{n} + c_{2}h, y_{n} + ha_{2,1}f(t_{n}, y_{n}) )\Big] \end{align}

Here, c1=0c_{1} = 0. Let us assume that the vector-valued function ff is sufficiently smooth. Then, the Taylor expansion at the point (tn,yn)(t_{n}, y_{n}) of f(tn+c2h,yn+ha2,1f(tn,yn))f(t_{n} + c_{2}h, y_{n} + ha_{2,1}f(t_{n}, y_{n}) ) is as follows:

f(tn+c2h,yn+ha2,1f(tn,yn))=f(tn,yn)+(c2h,ha2,1f(tn,yn))Tf(tn,yn)+O(h2)=f(tn,yn)+h[c2f(tn,yn)t+a2,1f(tn,yn)yf(tn,yn)]+O(h2) \begin{align*} & f(t_{n} + c_{2}h, y_{n} + ha_{2,1}f(t_{n}, y_{n}) ) \\ &= f(t_{n}, y_{n}) + (c_{2}h, ha_{2,1}f(t_{n}, y_{n}))^{T} \nabla f(t_{n}, y_{n}) + \mathcal{O}(h^{2}) \\ &= f(t_{n}, y_{n}) + h\left[c_{2} \dfrac{\partial f(t_{n}, y_{n})}{\partial t} + a_{2,1}\dfrac{\partial f(t_{n}, y_{n})}{\partial y}f(t_{n}, y_{n}) \right] + \mathcal{O}(h^{2}) \\ \end{align*}

f\nabla f denotes the gradient of ff. Substituting this into (1)(1),

yn+1=yn+h[b1f(tn,yn)+b2f(tn,yn)+hb2c2f(tn,yn)t+hb2a2,1f(tn,yn)yf(tn,yn)+O(h2)]=yn+h(b1+b2)f(tn,yn)+h2b2[c2f(tn,yn)t+a2,1f(tn,yn)yf(tn,yn)]+O(h3) \begin{align*} y_{n+1} &= y_{n} + h \bigg[ b_{1}f(t_{n}, y_{n}) + b_{2}f(t_{n}, y_{n}) \\ & \qquad + hb_{2}c_{2} \dfrac{\partial f(t_{n}, y_{n})}{\partial t} + hb_{2}a_{2,1}\dfrac{\partial f(t_{n}, y_{n})}{\partial y}f(t_{n}, y_{n}) + \mathcal{O}(h^{2}) \bigg] \\ &= y_{n} + h (b_{1} + b_{2})f(t_{n}, y_{n}) \\ & \qquad + h^{2}b_{2} \left[ c_{2} \dfrac{\partial f(t_{n}, y_{n})}{\partial t} + a_{2,1}\dfrac{\partial f(t_{n}, y_{n})}{\partial y}f(t_{n}, y_{n}) \right] + \mathcal{O}(h^{3}) \tag{2} \end{align*}

However, the total derivative of y=f(t,y)y^{\prime} = f(t, y) is d(y)=f(t,y)tdt+f(t,y)ydyd (y^{\prime}) = \dfrac{\partial f(t, y)}{\partial t}dt + \dfrac{\partial f(t, y)}{\partial y}dy, and since =ddt^{\prime} = \dfrac{d}{dt}, therefore, yy^{\prime \prime} is as follows:

y=f(t,y)t+f(t,y)ydydt=f(t,y)t+f(t,y)yf(t,y) y^{\prime \prime} = \dfrac{\partial f(t, y)}{\partial t} + \dfrac{\partial f(t, y)}{\partial y}\dfrac{dy}{dt} = \dfrac{\partial f(t, y)}{\partial t} + \dfrac{\partial f(t, y)}{\partial y}f(t, y)

By the Taylor theorem, we obtain the following:

yn+1=yn+hy+h22y+O(h3)=yn+hf(tn,yn)+h22(f(t,y)t+f(t,y)yf(t,y))+O(h3) \begin{align*} y_{n+1} &= y_{n} + hy^{\prime} + \dfrac{h^{2}}{2}y^{\prime \prime} + \mathcal{O}(h^{3}) \\ &= y_{n} + hf(t_{n},y_{n}) + \dfrac{h^{2}}{2}\left( \dfrac{\partial f(t, y)}{\partial t} + \dfrac{\partial f(t, y)}{\partial y}f(t, y) \right) + \mathcal{O}(h^{3}) \tag{3} \\ \end{align*}

By comparing (2)(2) and (3)(3), we get the following relationship:

b1+b2=1,b2c2=12,a2,1=c2 b_{1} + b_{2} = 1, \qquad b_{2}c_{2} = \dfrac{1}{2}, \qquad a_{2,1} = c_{2}

The following RK tables satisfy this:

cAbt0121201,02323121434,011121212, \begin{array}{c|c} \mathbf{c} & A \\ \hline & \mathbf{b}^{t} \end{array} \qquad \begin{array}{c|c} 0 \\ \frac{1}{2} & \frac{1}{2} \\[0.5em] \hline & 0 & 1 \end{array}, \qquad \begin{array}{c|c} 0 \\ \frac{2}{3} & \frac{2}{3} \\[0.5em] \hline \phantom{\dfrac{1}{2}} & \frac{1}{4} & \frac{3}{4} \end{array}, \qquad \begin{array}{c|c} 0 \\ 1 & 1 \\[0.5em] \hline \phantom{\dfrac{1}{2}} & \frac{1}{2} & \frac{1}{2} \end{array}, \qquad

For the case where ν=3\nu = 3

First, by the Taylor theorem, we get the following:

yn+1=yn+hy+h22y+h36y+O(h4)=yn+hfn+h22(ft+fyf)+h36(2ft2+2fy2f2+ftfy)+O(h4)(4) \begin{aligned} y_{n+1} &= y_{n} + hy^{\prime} + \dfrac{h^{2}}{2}y^{\prime \prime} + \dfrac{h^{3}}{6}y^{\prime \prime \prime} + \mathcal{O}(h^{4}) \\ &= y_{n} + hf_{n} + \dfrac{h^{2}}{2}\left( \dfrac{\partial f}{\partial t} + \dfrac{\partial f}{\partial y}f \right) + \dfrac{h^{3}}{6}\left( \dfrac{\partial^{2} f}{\partial t^{2}} + \dfrac{\partial^{2} f}{\partial y^{2}}f^{2} + \dfrac{\partial f}{\partial t}\dfrac{\partial f}{\partial y} \right) + \mathcal{O}(h^{4}) \tag{4} \end{aligned}

And let us assume i=1j1aj,i=cj\sum\limits_{i=1}^{j-1} a_{j,i} = c_{j}. Then, in the case where ν=3\nu = 3,

c1=0,c2=a2,1,c3=a3,1+a3,2 c_{1} = 0,\qquad c_{2} = a_{2,1},\qquad c_{3} = a_{3,1} + a_{3,2}

If we denote it as fn=f(tn,yn)f_{n} = f(t_{n}, y_{n}),

ξ1=yn,ξ2=yn+hc2fn,ξ3=yn+ha3,1fn+ha3,2f(tn+c2h,yn+hc2fn) \xi_{1} = y_{n}, \quad \xi_{2} = y_{n} + hc_{2} f_{n}, \\[1em] \xi_{3} = y_{n} + ha_{3,1}f_{n} + ha_{3,2}f(t_{n} + c_{2}h, y_{n} + hc_{2} f_{n})

Therefore, yn+1y_{n+1} is as follows:

yn+1=yn+hb1fn+hb2f(tn+c2h,ξ2)+hb3f(tn+c3h,ξ3)=yn+hb1fn+hb2f(tn+c2h,yn+hc2fn)+hb3f(tn+c3h,yn+ha3,1fn+ha3,2f(tn+c2h,yn+hc2fn)) \begin{align*} y_{n+1} &= y_{n} + hb_{1}f_{n} + hb_{2}f(t_{n} + c_{2}h, \xi_{2}) + hb_{3}f(t_{n} + c_{3}h, \xi_{3}) \\ &= y_{n} + hb_{1}f_{n} + hb_{2}f(t_{n} + c_{2}h, y_{n} + hc_{2} f_{n}) \\ & \qquad + hb_{3}f(t_{n} + c_{3}h, y_{n} + ha_{3,1}f_{n} + ha_{3,2}f(t_{n} + c_{2}h, y_{n} + hc_{2} f_{n})) \tag{5} \end{align*}

The terms containing b2b_{2} are as follows:

f(tn+c2h,yn+hc2f(tn,yn))=fn+(hc2)ft+(hc2fn)fy+(c2h)222ft2+(c2hfn)222fy2+O(h3) \begin{align*} & f(t_{n} + c_{2}h, y_{n} + hc_{2}f(t_{n}, y_{n}) ) \\ &= f_{n} + (hc_{2}) \dfrac{\partial f}{\partial t} + (hc_{2}f_{n})\dfrac{\partial f}{\partial y} + \dfrac{(c_{2}h)^{2}}{2} \dfrac{\partial^{2} f}{\partial t^{2}} + \dfrac{(c_{2}h f_{n})^{2}}{2} \dfrac{\partial^{2} f}{\partial y^{2}} + \mathcal{O}(h^{3}) \\ \end{align*}

Substituting this into (5)(5),

yn+1=yn+h(b1+b2)fn+h2b2c2ft+h2b2c2fyfn+h3c22b222ft2+h3c22b222fy2fn2+hb3f(tn+c3h,yn+ha3,1fn+ha3,2f(tn+c2h,yn+hc2fn))+O(h4)(6) \begin{aligned} y_{n+1} &= y_{n} + h(b_{1} + b_{2})f_{n} + h^{2}b_{2}c_{2} \dfrac{\partial f}{\partial t} + h^{2}b_{2}c_{2} \dfrac{\partial f}{\partial y}f_{n} \\ & \qquad + \dfrac{h^{3}c_{2}^{2}b_{2}}{2} \dfrac{\partial^{2} f}{\partial t^{2}} + \dfrac{h^{3}c_{2}^{2}b_{2}}{2} \dfrac{\partial^{2} f}{\partial y^{2}}f_{n}^{2} \\ & \qquad + hb_{3}f(t_{n} + c_{3}h, y_{n} + ha_{3,1}f_{n} + ha_{3,2}f(t_{n} + c_{2}h, y_{n} + hc_{2} f_{n})) + \mathcal{O}(h^{4}) \tag{6} \end{aligned}

Now, by calculating the remaining terms containing b3b_{3} (terms not required for coefficient comparison are omitted),

f(tn+c3h,yn+ha3,1fn+ha3,2f(tn+c2h,yn+hc2fn))=fn+c3hft+(ha3,1fn+ha3,2f(tn+c2h,yn+hc2fn))fy+h2c3222ft2+(ha3,1fn+ha3,2f(tn+c2h,yn+hc2fn))222fy2+O(h3)=fn+c3hft+ha3,1fnfy+ha3,2[fn+hc2ft+O(h2)]fy+h2c3222ft2+(ha3,1fn+ha3,2fn)222fy2+O(h3)=fn+c3hft+hc3fnfy+h2c2a3,2ftfy+h2c3222ft2+(hc3fn)222fy2+O(h3) \begin{align*} & f(t_{n} + c_{3}h, y_{n} + ha_{3,1}f_{n} + ha_{3,2}f(t_{n} + c_{2}h, y_{n} + hc_{2} f_{n})) \\ &= f_{n} + c_{3}h \dfrac{\partial f}{\partial t} + \left( ha_{3,1}f_{n} + ha_{3,2}f(t_{n} + c_{2}h, y_{n} + hc_{2} f_{n}) \right) \dfrac{\partial f}{\partial y} \\ & \qquad + \dfrac{h^{2}c_{3}^{2}}{2} \dfrac{\partial^{2} f}{\partial t^{2}} + \dfrac{\left( ha_{3,1}f_{n} + ha_{3,2}f(t_{n} + c_{2}h, y_{n} + hc_{2} f_{n}) \right)^{2}}{2} \dfrac{\partial^{2} f}{\partial y^{2}} + \mathcal{O}(h^{3}) \\ &= f_{n} + c_{3}h \dfrac{\partial f}{\partial t} + ha_{3,1}f_{n}\dfrac{\partial f}{\partial y} + ha_{3,2} \left[ f_{n} + hc_{2}\dfrac{\partial f}{\partial t} + \mathcal{O}(h^{2}) \right] \dfrac{\partial f}{\partial y} \\ & \qquad + \dfrac{h^{2}c_{3}^{2}}{2} \dfrac{\partial^{2} f}{\partial t^{2}} + \dfrac{(ha_{3,1}f_{n} + ha_{3,2}f_{n})^{2}}{2} \dfrac{\partial^{2} f}{\partial y^{2}} + \mathcal{O}(h^{3}) \\ &= f_{n} + c_{3}h\dfrac{\partial f}{\partial t} + hc_{3}f_{n}\dfrac{\partial f}{\partial y} + h^{2}c_{2}a_{3,2}\dfrac{\partial f}{\partial t} \dfrac{\partial f}{\partial y} \\ & \qquad + \dfrac{h^{2}c_{3}^{2}}{2} \dfrac{\partial^{2} f}{\partial t^{2}} + \dfrac{(hc_{3}f_{n})^{2}}{2} \dfrac{\partial^{2} f}{\partial y^{2}} + \mathcal{O}(h^{3}) \\ \end{align*}

Substituting and organizing this into (6)(6), we get the following:

yn+1=yn+h(b1+b2)fn+h2b2c2ft+h2b2c2fyfn+h3c22b222ft2+h3c22b222fy2fn2+hb3[fn+c3hft+hc3fnfy+h2c2a3,2ftfy+h2c3222ft2+(hc3fn)222fy2]+O(h4)=yn+h(b1+b2+b3)fn+h2(b2c2+b3c3)ft+h2(b2c2+b3c3)fyfn+h3(b2c22+b3c32)22ft2+h3b3c2a3,2ftfy+h3(b2c22+b3c32)2fn22fy2+O(h4) \begin{align*} y_{n+1} &= y_{n} + h(b_{1} + b_{2})f_{n} + h^{2}b_{2}c_{2} \dfrac{\partial f}{\partial t} + h^{2}b_{2}c_{2} \dfrac{\partial f}{\partial y}f_{n} \\ & \qquad + \dfrac{h^{3}c_{2}^{2}b_{2}}{2} \dfrac{\partial^{2} f}{\partial t^{2}} + \dfrac{h^{3}c_{2}^{2}b_{2}}{2} \dfrac{\partial^{2} f}{\partial y^{2}}f_{n}^{2} \\ & \qquad + hb_{3} \left[ f_{n} + c_{3}h\dfrac{\partial f}{\partial t} + hc_{3}f_{n}\dfrac{\partial f}{\partial y} + h^{2}c_{2}a_{3,2}\dfrac{\partial f}{\partial t} \dfrac{\partial f}{\partial y} \right. \\ & \qquad + \left. \dfrac{h^{2}c_{3}^{2}}{2} \dfrac{\partial^{2} f}{\partial t^{2}} + \dfrac{(hc_{3}f_{n})^{2}}{2} \dfrac{\partial^{2} f}{\partial y^{2}} \right] + \mathcal{O}(h^{4}) \\ &= y_{n} + h(b_{1} + b_{2} + b_{3})f_{n} + h^{2}(b_{2}c_{2} + b_{3}c_{3}) \dfrac{\partial f}{\partial t} + h^{2}(b_{2}c_{2} + b_{3}c_{3}) \dfrac{\partial f}{\partial y}f_{n} \\ & \qquad + \dfrac{h^{3}(b_{2}c_{2}^{2} + b_{3}c_{3}^{2})}{2} \dfrac{\partial^{2} f}{\partial t^{2}} + h^{3}b_{3}c_{2}a_{3,2}\dfrac{\partial f}{\partial t} \dfrac{\partial f}{\partial y} + \dfrac{h^{3}(b_{2}c_{2}^{2} + b_{3}c_{3}^{2})}{2} f_{n}^{2}\dfrac{\partial^{2} f}{\partial y^{2}} + \mathcal{O}(h^{4}) \end{align*}

By comparing the coefficients of the above expression and (4)(4), we get the following relationship:

b1+b2+b3=1,b2c2+b3c3=12,b2c22+b3c32=13,b3c2a3,2=16 b_{1} + b_{2} + b_{3} = 1, \quad b_{2}c_{2} + b_{3}c_{3} = \dfrac{1}{2}, \quad b_{2}c_{2}^{2} + b_{3}c_{3}^{2} = \dfrac{1}{3}, \quad b_{3}c_{2}a_{3,2} = \dfrac{1}{6}

The following RK tables satisfy this:

0121211212162316(classical RK method) \begin{array}{c|c} 0 \\ \frac{1}{2} & \frac{1}{2} \\[0.5em] 1 & -1 & 2 \\[0.5em] \hline \phantom{\dfrac{1}{2}} & \frac{1}{6} & \frac{2}{3} & \frac{1}{6} \end{array} \quad (\text{classical RK method}) 023232302312143838(Nystrom scheme) \begin{array}{c|c} 0 \\ \frac{2}{3} & \frac{2}{3} \\[0.5em] \frac{2}{3} & 0 & \frac{2}{3} \\[0.5em] \hline \phantom{\dfrac{1}{2}} & \frac{1}{4} & \frac{3}{8} & \frac{3}{8} \end{array} \quad (\text{Nystrom scheme})

For the case where ν=4\nu = 4

Using the same method, we can find the conditions for the coefficients. According to the rules observed above, we can infer the following:

b1+b2+b3+b4=1,b2c2+b3c3+b4c4=12,b2c22+b3c32+b4c42=13,b2c23+b3c33+b4c43=14 b_{1} + b_{2} + b_{3} + b_{4} = 1, \quad b_{2}c_{2} + b_{3}c_{3} + b_{4}c_{4} = \dfrac{1}{2}, \\[1em] b_{2}c_{2}^{2} + b_{3}c_{3}^{2} + b_{4}c_{4}^{2} = \dfrac{1}{3}, \quad b_{2}c_{2}^{3} + b_{3}c_{3}^{3} + b_{4}c_{4}^{3} = \dfrac{1}{4}

The most famous coefficients in RK4 are as follows. The table below actually satisfies the above conditions.

012121201210010016131316 \begin{array}{c|cccc} 0 & \\[0.5em] \frac{1}{2} & \frac{1}{2} \\[0.5em] \frac{1}{2} & 0 & \frac{1}{2} \\[0.5em] 1 & 0 & 0 & 1 \\[0.5em] \hline {\displaystyle {\color{white}\dfrac{0}{0}}} & \frac{1}{6} & \frac{1}{3} & \frac{1}{3} & \frac{1}{6} \end{array}

See Also


  1. Arieh Iserles, A First Course in the Numerical Analysis of Differential Equations (2nd Edition, 2009), p38-41 ↩︎