Proving Runge-Kutta Method (RK4) is 4th Order

Last updated:

Update Formula of Runge-Kutta Method

If you want to calculate the time evolution of Eq. (1), one of the most common and simple methods is the Runge-Kutta method (RK4).

dxdt=f(x,t)\begin{equation} % \label{eq:differential} \frac{dx}{dt} = f(x, t) \end{equation}

Using the Runge-Kutta method, you can update the state xx at time tt to the next state at time t+ht+h as shown below.

k1=f(x,t)k2=f(x+h2k1, t+h2)k3=f(x+h2k2, t+h2)k4=f(x+hk3, t+h)\begin{align} % \label{eq:runge_kutta} &k_1 = f(x, t) \\ &k_2 = f(x + \frac{h}{2} k_1,~ t + \frac{h}{2}) \\ &k_3 = f(x + \frac{h}{2} k_2,~ t + \frac{h}{2}) \\ &k_4 = f(x + h k_3,~ t + h) \\ \end{align} Δx=h6(k1+2k2+2k3+k4)\begin{equation} \Delta x = \frac{h}{6} (k_1 + 2k_2 + 2k_3 + k_4) \end{equation}

The major advantage of the Runge-Kutta method is that it provides a fourth-order approximation while keeping the update formula very simple. If you just want to achieve fourth-order accuracy, there are various possibilities to create such schemes. Therefore, the key point of the Runge-Kutta method is its simplicity in procedure.

In this article, we assume that the notation in Eq. (2) is given, and will confirm that it indeed achieves fourth-order accuracy.

Meaning of Fourth-Order Accuracy

First of all, what does fourth-order accuracy mean? When approximating xx around a point (x0,t0)(x_0, t_0) using Eq. (3), it means that Eq. (3) match the Taylor expansion up to the fourth order. However, Eq. (3) does not match the Taylor expansion in its original form. If we evaluate the derivative of Eq. (3) with respect to hh, we find that the coefficients up to the fourth order match.

x~=x0+h6(k1+2k2+2k3+k4)\begin{equation} % \label{eq:x0} \tilde{x} = x_0 + \frac{h}{6} (k_1 + 2k_2 + 2k_3 + k_4) \end{equation} x=x0+dxdth+12d2xdt2h2+16d3xdt3h3+124d4xdt4h4+O(h5)\begin{equation} % \label{eq:taylor} x = x_0 + \frac{dx}{dt} h + \frac{1}{2} \frac{d^2x}{dt^2} h^2 + \frac{1}{6} \frac{d^3x}{dt^3} h^3 + \frac{1}{24} \frac{d^4x}{dt^4} h^4 + O(h^5) \end{equation}

Let’s take a look at the derivative of x~\tilde{x} with respect to hh.

dx~dh=16(k1+2k2+2k3+k4)+h6[dk1dh+2dk2dh+2dk3dh+dk4dh]d2x~dh2=13[dk1dh+2dk2dh+2dk3dh+dk4dh]+h6[d2k1dh2+2d2k2dh2+2d2k3dh2+d2k4dh2]d3x~dh3=12[d2k1dh2+2d2k2dh2+2d2k3dh2+d2k4dh2]+h6[d3k1dh3+2d3k2dh3+2d3k3dh3+d3k4dh3]d4x~dh4=23[d3k1dh3+2d3k2dh3+2d3k3dh3+d3k4dh3]+h6[d4k1dh4+2d4k2dh4+2d4k3dh4+d4k4dh4]\begin{align} \frac{d\tilde{x}}{dh} &= \frac{1}{6} (k_1 + 2k_2 + 2k_3 + k_4) + \frac{h}{6} \left[ \frac{dk_1}{dh} + 2\frac{dk_2}{dh} + 2\frac{dk_3}{dh} + \frac{dk_4}{dh}\right] \\ \frac{d^2\tilde{x}}{dh^2} &= \frac{1}{3} \left[ \frac{dk_1}{dh} + 2\frac{dk_2}{dh} + 2\frac{dk_3}{dh} + \frac{dk_4}{dh}\right] + \frac{h}{6} \left[ \frac{d^2k_1}{dh^2} + 2\frac{d^2k_2}{dh^2} + 2\frac{d^2k_3}{dh^2} + \frac{d^2k_4}{dh^2}\right] \\ \frac{d^3\tilde{x}}{dh^3} &= \frac{1}{2} \left[ \frac{d^2k_1}{dh^2} + 2\frac{d^2k_2}{dh^2} + 2\frac{d^2k_3}{dh^2} + \frac{d^2k_4}{dh^2}\right] + \frac{h}{6} \left[ \frac{d^3k_1}{dh^3} + 2\frac{d^3k_2}{dh^3} + 2\frac{d^3k_3}{dh^3} + \frac{d^3k_4}{dh^3}\right] \\ \frac{d^4\tilde{x}}{dh^4} &= \frac{2}{3} \left[ \frac{d^3k_1}{dh^3} + 2\frac{d^3k_2}{dh^3} + 2\frac{d^3k_3}{dh^3} + \frac{d^3k_4}{dh^3}\right] + \frac{h}{6} \left[ \frac{d^4k_1}{dh^4} + 2\frac{d^4k_2}{dh^4} + 2\frac{d^4k_3}{dh^4} + \frac{d^4k_4}{dh^4}\right] \end{align}

Since we are only interested in the derivatives at h=0h=0, we can ignore the terms with hh in each formula. If we prove that these derivatives match dxdt\frac{dx}{dt}, d2xdt2\frac{d^2x}{dt^2}, d3xdt3\frac{d^3x}{dt^3}, and d4xdt4\frac{d^4x}{dt^4}, then we can confirm that the Runge-Kutta method has fourth-order accuracy (in other words, the error of one step is O(h5)O(h^5)).

Proving Fourth-Order Accuracy

Now, let us confirm that the Runge-Kutta method indeed achieves fourth-order accuracy. First, we will derive the derivatives of xx based on the original differential equation Eq. (1).

dxdt=f\begin{equation} \frac{dx}{dt} = f \end{equation} d2xdt2=ft+fxdxdt=ft+fxf\begin{equation} \frac{d^2x}{dt^2} = \frac{\partial f}{\partial t} + \frac{\partial f}{\partial x} \frac{dx}{dt} = \frac{\partial f}{\partial t} + \frac{\partial f}{\partial x} f \end{equation} d3xdt3=t(ft+fxf)+x(ft+fxf)f=2ft2+2ftxf+fxft+2fxtf+2fx2f2+(fx)2f=2ft2+22ftxf+fxft+2fx2f2+(fx)2f\begin{align} \frac{d^3x}{dt^3} &= \frac{\partial}{\partial t} \left( \frac{\partial f}{\partial t} + \frac{\partial f}{\partial x} f \right)+ \frac{\partial}{\partial x} \left( \frac{\partial f}{\partial t} + \frac{\partial f}{\partial x} f \right) f \notag \\ &= \frac{\partial^2 f}{\partial t^2} + \frac{\partial^2 f}{\partial t \partial x} f + \frac{\partial f}{\partial x} \frac{\partial f}{\partial t} + \frac{\partial^2 f}{\partial x \partial t} f + \frac{\partial^2 f}{\partial x^2} f^2 + \left( \frac{\partial f}{\partial x} \right)^2 f \notag \\ &= \frac{\partial^2 f}{\partial t^2} + 2\frac{\partial^2 f}{\partial t \partial x} f + \frac{\partial f}{\partial x} \frac{\partial f}{\partial t} + \frac{\partial^2 f}{\partial x^2} f^2 + \left( \frac{\partial f}{\partial x} \right)^2 f \end{align} d4xdt4=t(d3xdt3)+x(d3xdt3)f=3ft3+23ft2xf+22ftxft+2ftxft+fx2ft2   +3ftx2f2+22fx2ftf+22ftxfxf+(fx)2ft   +3fxt2f+23ftx2f2+22ftxfxf+2fx2ftf+fx2fxtf   +3fx3f3+22fx2fxf2+22fx2fxf2+(fx)3f=3ft3+33ft2xf+33ftx2f2+3fx3f3   +32ftxft+52ftxfxf+32fx2ftf+fx2ft2+42fx2fxf2   +(fx)2ft+(fx)3f\begin{align} \frac{d^4x}{dt^4} &= \frac{\partial}{\partial t} \left( \frac{d^3x}{dt^3} \right)+ \frac{\partial}{\partial x} \left( \frac{d^3x}{dt^3} \right) f \notag \\ &= \frac{\partial^3 f}{\partial t^3} + 2 \frac{\partial^3 f}{\partial t^2 \partial x} f + 2 \frac{\partial^2 f}{\partial t \partial x} \frac{\partial f}{\partial t} + \frac{\partial^2 f}{\partial t \partial x} \frac{\partial f}{\partial t} + \frac{\partial f}{\partial x} \frac{\partial^2 f}{\partial t^2} \notag \\ &~~~+ \frac{\partial^3 f}{\partial t \partial x^2} f^2 + 2 \frac{\partial^2 f}{\partial x^2} \frac{\partial f}{\partial t} f + 2 \frac{\partial^2 f}{\partial t \partial x} \frac{\partial f}{\partial x} f + \left( \frac{\partial f}{\partial x} \right)^2 \frac{\partial f}{\partial t} \notag \\ &~~~+ \frac{\partial^3 f}{\partial x \partial t^2} f + 2 \frac{\partial^3 f}{\partial t \partial x^2} f^2 + 2 \frac{\partial^2 f}{\partial t \partial x} \frac{\partial f}{\partial x} f + \frac{\partial^2 f}{\partial x^2} \frac{\partial f}{\partial t} f + \frac{\partial f}{\partial x} \frac{\partial^2 f}{\partial x \partial t} f \notag \\ &~~~+ \frac{\partial^3 f}{\partial x^3} f^3 + 2 \frac{\partial^2 f}{\partial x^2} \frac{\partial f}{\partial x} f^2 + 2 \frac{\partial^2 f}{\partial x^2} \frac{\partial f}{\partial x} f^2 + \left( \frac{\partial f}{\partial x} \right)^3 f \notag \\ &= \frac{\partial^3 f}{\partial t^3} + 3 \frac{\partial^3 f}{\partial t^2 \partial x} f + 3 \frac{\partial^3 f}{\partial t \partial x^2} f^2 + \frac{\partial^3 f}{\partial x^3} f^3 \notag \\ &~~~+ 3\frac{\partial^2 f}{\partial t \partial x} \frac{\partial f}{\partial t} + 5 \frac{\partial^2 f}{\partial t \partial x} \frac{\partial f}{\partial x}f + 3 \frac{\partial^2 f}{\partial x^2} \frac{\partial f}{\partial t} f + \frac{\partial f}{\partial x} \frac{\partial^2 f}{\partial t^2} + 4 \frac{\partial^2 f}{\partial x^2} \frac{\partial f}{\partial x} f^2 \notag \\ &~~~+ \left( \frac{\partial f}{\partial x} \right)^2 \frac{\partial f}{\partial t} + \left( \frac{\partial f}{\partial x} \right)^3 f \end{align}

Second, we should derive the derivatives of k1k_1, k2k_2, k3k_3, k4k_4 with respect to hh. As a preparation, we derive the derivative of f(X(h),T(h))f(X(h), T(h)) with respect to hh.

dfdh=(dXdhX+dTdhT+h)f=fXdXdh+fTdTdh\begin{equation} % \label{eq:f'} \frac{df}{dh} = \left( \frac{dX}{dh} \frac{\partial}{\partial X} + \frac{dT}{dh} \frac{\partial}{\partial T} + \frac{\partial}{\partial h} \right) f = \frac{\partial f}{\partial X} \frac{dX}{dh} + \frac{\partial f}{\partial T} \frac{dT}{dh} \end{equation} d2fdh2=(dXdhX+dTdhT+h)2f=[(dXdh)22X2+2dXdhdTdh2XT+(dTdh)22T2+h(dXdhX)+h(dTdhT)]f=[(dXdh)22X2+2dXdhdTdh2XT+(dTdh)22T2+d2Xdh2X+d2Tdh2T]f\begin{align} % \label{eq:f''} \frac{d^2f}{dh^2} &= \left( \frac{dX}{dh} \frac{\partial}{\partial X} + \frac{dT}{dh} \frac{\partial}{\partial T} + \frac{\partial}{\partial h} \right)^2 f \notag \\ &= \left[ \left( \frac{dX}{dh} \right)^2 \frac{\partial^2}{\partial X^2} + 2 \frac{dX}{dh} \frac{dT}{dh} \frac{\partial^2}{\partial X \partial T} + \left( \frac{dT}{dh} \right)^2 \frac{\partial^2}{\partial T^2} + \frac{\partial}{\partial h} \left( \frac{dX}{dh} \frac{\partial}{\partial X} \right) +\frac{\partial}{\partial h} \left( \frac{dT}{dh} \frac{\partial}{\partial T} \right) \right] f \notag \\ &= \left[ \left( \frac{dX}{dh} \right)^2 \frac{\partial^2}{\partial X^2} + 2 \frac{dX}{dh} \frac{dT}{dh} \frac{\partial^2}{\partial X \partial T} + \left( \frac{dT}{dh} \right)^2 \frac{\partial^2}{\partial T^2} + \frac{d^2X}{dh^2} \frac{\partial}{\partial X} + \frac{d^2T}{dh^2} \frac{\partial}{\partial T} \right] f \end{align} d3fdh3=(dXdhX+dTdhT+h)3f=[(dXdh)33X3+3(dXdh)2dTdh3X2T+3dXdh(dTdh)23XT2+(dTdh)33T3+3dXdhd2Xdh22X2+3(dXdhd2Tdh2+dTdhd2Xdh2)2XT+3dTdhd2Tdh22T2+d3Xdh3X+d3Tdh3T]f\begin{align} % \label{eq:f'''} \frac{d^3f}{dh^3} &= \left( \frac{dX}{dh} \frac{\partial}{\partial X} + \frac{dT}{dh} \frac{\partial}{\partial T} + \frac{\partial}{\partial h} \right)^3 f \notag \\ &= \left[ \left( \frac{dX}{dh} \right)^3 \frac{\partial^3}{\partial X^3} + 3 \left( \frac{dX}{dh} \right)^2 \frac{dT}{dh} \frac{\partial^3}{\partial X^2 \partial T}+ 3 \frac{dX}{dh} \left( \frac{dT}{dh} \right)^2 \frac{\partial^3}{\partial X \partial T^2} + \left( \frac{dT}{dh} \right)^3 \frac{\partial^3}{\partial T^3} \right. \notag \\ &\hspace{12pt}+ 3 \frac{dX}{dh} \frac{d^2X}{dh^2} \frac{\partial^2}{\partial X^2} + 3\left( \frac{dX}{dh} \frac{d^2T}{dh^2} + \frac{dT}{dh} \frac{d^2X}{dh^2} \right) \frac{\partial^2}{\partial X \partial T} + 3 \frac{dT}{dh} \frac{d^2T}{dh^2} \frac{\partial^2}{\partial T^2} \notag \\ &\hspace{12pt} \left.+ \frac{d^3X}{dh^3} \frac{\partial}{\partial X} + \frac{d^3T}{dh^3} \frac{\partial}{\partial T} \right] f \end{align}

k1k_1 is not dependent on hh, so the following relationship holds.

dk1dh=0\begin{equation} \frac{dk_1}{dh} = 0 \end{equation}

For k2k_2 calculation, we have X=x+h2k1X=x+\frac{h}{2} k_1, and T=t+h2T=t+\frac{h}{2}, so the derivatives with respect to hh can be expressed as follows.

dXdh=k12+h2dk1dh=f2,dTdh=12\begin{equation} \frac{dX}{dh} = \frac{k_1}{2} + \frac{h}{2}\frac{dk_1}{dh} = \frac{f}{2}, \quad \frac{dT}{dh} = \frac{1}{2} \end{equation}

Substituting these relations to dfdh\frac{df}{dh}, d2fdh2\frac{d^2f}{dh^2}, d3fdh3\frac{d^3f}{dh^3}, the derivatives of k2k_2 can be obtained.

dk2dh=f2fx+12ft\begin{equation} \frac{dk_2}{dh} = \frac{f}{2} \frac{\partial f}{\partial x} + \frac{1}{2} \frac{\partial f}{\partial t} \end{equation} d2k2dh2=f242fx2+f22fxt+142ft2\begin{equation} \frac{d^2 k_2}{dh^2} = \frac{f^2}{4} \frac{\partial^2 f}{\partial x^2} + \frac{f}{2} \frac{\partial^2 f}{\partial x \partial t} + \frac{1}{4} \frac{\partial^2 f}{\partial t^2} \end{equation} d3k2dh3=f383fx3+3f283fx2t+3f83fxt2+183ft3\begin{equation} \frac{d^3 k_2}{dh^3} = \frac{f^3}{8} \frac{\partial^3 f}{\partial x^3} + \frac{3f^2}{8} \frac{\partial^3 f}{\partial x^2 \partial t} + \frac{3f}{8} \frac{\partial^3 f}{\partial x \partial t^2} + \frac{1}{8} \frac{\partial^3 f}{\partial t^3} \end{equation}

For k3k_3 calculation, we have X=x+h2k2X=x+\frac{h}{2} k_2, T=t+h2T=t+\frac{h}{2}, so the derivatives with respect to hh can be expressed as follows.

dXdh=k22+h2dk2dh,dTdh=12\begin{equation} \frac{dX}{dh} = \frac{k_2}{2} + \frac{h}{2}\frac{dk_2}{dh}, \quad \frac{dT}{dh} = \frac{1}{2} \end{equation} d2Xdh2=dk2dh+h2d2k2dh2,d2Tdh2=0\begin{equation} \frac{d^2X}{dh^2} = \frac{dk_2}{dh} + \frac{h}{2}\frac{d^2k_2}{dh^2}, \quad \frac{d^2T}{dh^2} = 0 \end{equation} d3Xdh3=32d2k2dh2+h2d3k2dh3\begin{equation} \frac{d^3X}{dh^3} = \frac{3}{2} \frac{d^2k_2}{dh^2} + \frac{h}{2}\frac{d^3k_2}{dh^3} \end{equation}

As we are only interested in the derivatives at h=0h=0, we derive the derivatives of k3k_3 at h=0h=0.

dk3dhh=0=k22fx+12ft\begin{equation} \left. \frac{dk_3}{dh} \right|_{h=0} = \frac{k_2}{2} \frac{\partial f}{\partial x} + \frac{1}{2} \frac{\partial f}{\partial t} \end{equation} d2k3dh2h=0=k2242fx2+k222fxt+142ft2+dk2dhfx\begin{align} \left. \frac{d^2k_3}{dh^2} \right|_{h=0} = \frac{k_2^2}{4} \frac{\partial^2 f}{\partial x^2} + \frac{k_2}{2} \frac{\partial^2 f}{\partial x \partial t}+ \frac{1}{4} \frac{\partial^2 f}{\partial t^2} + \frac{dk_2}{dh} \frac{\partial f}{\partial x} \end{align} d3k3dh3h=0=k2383fx3+3k2283fx2t+3k283fxt2+183ft3+3k22dk2dh2fx2+32dk2dh2fxt+32d2k2dh2fx\begin{align} \left. \frac{d^3k_3}{dh^3} \right|_{h=0} =&\frac{k_2^3}{8} \frac{\partial^3 f}{\partial x^3} + \frac{3k_2^2}{8} \frac{\partial^3 f}{\partial x^2 \partial t} + \frac{3 k_2}{8} \frac{\partial^3 f}{\partial x \partial t^2} \notag \\ &+ \frac{1}{8} \frac{\partial^3 f}{\partial t^3} + \frac{3 k_2}{2} \frac{dk_2}{dh} \frac{\partial^2 f}{\partial x^2} + \frac{3}{2} \frac{dk_2}{dh} \frac{\partial^2 f}{\partial x \partial t} + \frac{3}{2} \frac{d^2 k_2}{dh^2} \frac{\partial f}{\partial x} \end{align}

In the same way, we can derive the derivatives for k4k_4.

dXdh=k3+hdk3dh,dTdh=1\begin{equation} \frac{dX}{dh} = k_3 + h \frac{dk_3}{dh}, \quad \frac{dT}{dh} = 1 \end{equation} d2Xdh2=2dk3dh+hd2k3dh2,   d2Tdh2=0\begin{equation} \frac{d^2X}{dh^2} = 2 \frac{dk_3}{dh} +h \frac{d^2k_3}{dh^2}, ~~~ \frac{d^2T}{dh^2} = 0 \end{equation} d3Xdh3=3d2k3dh2+hd3k3dh3\begin{equation} \frac{d^3X}{dh^3} = 3 \frac{d^2k_3}{dh^2} +h \frac{d^3k_3}{dh^3} \end{equation}

Derivatives of k4k_4 at h=0h=0 are obtained as follows.

dk4dhh=0=k3fx+ft\begin{equation} \left. \frac{dk_4}{dh} \right|_{h=0} = k_3 \frac{\partial f}{\partial x} + \frac{\partial f}{\partial t} \end{equation} d2k4dh2h=0=k322fx2+2k32fxt+2ft2+2dk3dhfx\begin{align} \left.\frac{d^2k_4}{dh^2} \right|_{h=0} = k_3^2 \frac{\partial^2 f}{\partial x^2} + 2 k_3 \frac{\partial^2 f}{\partial x \partial t} + \frac{\partial^2 f}{\partial t^2} + 2\frac{dk_3}{dh} \frac{\partial f}{\partial x} \end{align} d3k4dh3h=0=k333fx3+3k323fx2t+3k33fxt2+3ft3+6k3dk3dh2fx2+6dk3dh2fxt+3d2k3dh2fx\begin{align} \left.\frac{d^3k_4}{dh^3} \right|_{h=0} =& k_3^3 \frac{\partial^3 f}{\partial x^3} + 3k_3^2 \frac{\partial^3 f}{\partial x^2 \partial t} + 3k_3 \frac{\partial^3 f}{\partial x \partial t^2} + \frac{\partial^3 f}{\partial t^3} \notag \\ &+ 6 k_3 \frac{dk_3}{dh} \frac{\partial^2 f}{\partial x^2} + 6 \frac{dk_3}{dh} \frac{\partial^2 f}{\partial x \partial t} + 3 \frac{d^2 k_3}{dh^2} \frac{\partial f}{\partial x} \end{align}

As we have obtained all the necessary derivatives, we can now compare the coefficients.

First order:

16(k1+2k2+2k3+k4)h=0=f\begin{equation} \left. \frac{1}{6} (k_1 + 2k_2 + 2k_3 + k_4) \right|_{h=0} = f \end{equation}

Second order:

13[dk1dh+2dk2dh+2dk3dh+dk4dh]h=0=13[2(f2fx+12ft)+2(f2fx+12ft)+ffx+ft]=ffx+ft\begin{align} &\frac{1}{3} \left[ \frac{dk_1}{dh} + 2\frac{dk_2}{dh} + 2\frac{dk_3}{dh} + \frac{dk_4}{dh} \right]_{h=0} \notag \\ &= \frac{1}{3} \left[ 2\left( \frac{f}{2} \frac{\partial f}{\partial x} + \frac{1}{2} \frac{\partial f}{\partial t} \right) + 2\left( \frac{f}{2} \frac{\partial f}{\partial x} + \frac{1}{2} \frac{\partial f}{\partial t} \right) + f \frac{\partial f}{\partial x} + \frac{\partial f}{\partial t} \right] \notag \\ &= f \frac{\partial f}{\partial x} +\frac{\partial f}{\partial t} \end{align}

Third order:

12[d2k1dh2+2d2k2dh2+2d2k3dh2+d2k4dh2]h=0=12[2(f242fx2+f22fxt+142ft2)+2(f242fx2+f22fxt+142ft2+(f2fx+12ft)fx)+(f22fx2+2f2fxt+2ft2+2(f2fx+12ft)fx)]=2fx2+2f2fxt+2ft2+f(fx)2+ftfx\begin{align} &\frac{1}{2} \left[ \frac{d^2k_1}{dh^2} + 2\frac{d^2k_2}{dh^2} + 2\frac{d^2k_3}{dh^2} + \frac{d^2k_4}{dh^2}\right] _{h=0} \notag \\ &= \frac{1}{2} \left[ 2\left( \frac{f^2}{4} \frac{\partial^2 f}{\partial x^2} + \frac{f}{2} \frac{\partial^2 f}{\partial x \partial t} + \frac{1}{4} \frac{\partial^2 f}{\partial t^2} \right) \right. \notag \\ &\hspace{20pt}\left. + 2 \left( \frac{f^2}{4} \frac{\partial^2 f}{\partial x^2} + \frac{f}{2} \frac{\partial^2 f}{\partial x \partial t} + \frac{1}{4} \frac{\partial^2 f}{\partial t^2} + \left( \frac{f}{2} \frac{\partial f}{\partial x} + \frac{1}{2} \frac{\partial f}{\partial t} \right) \frac{\partial f}{\partial x} \right) \right. \notag\\ &\hspace{20pt}\left. + \left( f^2 \frac{\partial^2 f}{\partial x^2} + 2f \frac{\partial^2 f}{\partial x \partial t} + \frac{\partial^2 f}{\partial t^2} + 2 \left( \frac{f}{2} \frac{\partial f}{\partial x} + \frac{1}{2} \frac{\partial f}{\partial t} \right) \frac{\partial f}{\partial x} \right) \right] \notag \\ &= \frac{\partial^2 f}{\partial x^2} + 2f \frac{\partial^2 f}{\partial x \partial t} + \frac{\partial^2 f}{\partial t^2} + f \left( \frac{\partial f}{\partial x} \right)^2 + \frac{\partial f}{\partial t} \frac{\partial f}{\partial x} \end{align}

Fourth order:

23[d3k1dh3+2d3k2dh3+2d3k3dh3+d3k4dh3]h=0=23[2(f383fx3+3f283fx2t+3f83fxt2+183ft3)+2(k2383fx3+3k2283fx2t+3k283fxt2+183ft3+3k22dk2dh2fx2+32dk2dh2fxt+32d2k2dh2fx)+(k333fx3+3k323fx2t+3k33fxt2+3ft3+6k3dk3dh2fx2+6dk3dh2fxt+3d2k3dh2fx)]=3ft3+33ft2xf+33ftx2f2+3fx3f3+32ftxft+52ftxfxf+32fx2ftf+fx2ft2+42fx2fxf2+(fx)2ft+(fx)3f\begin{align} &\frac{2}{3} \left[ \frac{d^3k_1}{dh^3} + 2\frac{d^3k_2}{dh^3} + 2\frac{d^3k_3}{dh^3} + \frac{d^3k_4}{dh^3}\right]_{h=0} \notag \\ &= \frac{2}{3} \left[ 2\left( \frac{f^3}{8} \frac{\partial^3 f}{\partial x^3} + \frac{3f^2}{8} \frac{\partial^3 f}{\partial x^2 \partial t} + \frac{3f}{8} \frac{\partial^3 f}{\partial x \partial t^2} + \frac{1}{8} \frac{\partial^3 f}{\partial t^3} \right) \right. \notag \\ &\hspace{11pt}+ 2 \left( \frac{k_2^3}{8} \frac{\partial^3 f}{\partial x^3} + \frac{3k_2^2}{8} \frac{\partial^3 f}{\partial x^2 \partial t} + \frac{3 k_2}{8} \frac{\partial^3 f}{\partial x \partial t^2} + \frac{1}{8} \frac{\partial^3 f}{\partial t^3} + \frac{3 k_2}{2} \frac{dk_2}{dh} \frac{\partial^2 f}{\partial x^2} + \frac{3}{2} \frac{dk_2}{dh} \frac{\partial^2 f}{\partial x \partial t} + \frac{3}{2} \frac{d^2 k_2}{dh^2} \frac{\partial f}{\partial x} \right) \notag \\ &\hspace{11pt}+ \left( k_3^3 \frac{\partial^3 f}{\partial x^3} + 3k_3^2 \frac{\partial^3 f}{\partial x^2 \partial t} + 3k_3 \frac{\partial^3 f}{\partial x \partial t^2} + \frac{\partial^3 f}{\partial t^3} \left.+ 6 k_3 \frac{dk_3}{dh} \frac{\partial^2 f}{\partial x^2} + 6 \frac{dk_3}{dh} \frac{\partial^2 f}{\partial x \partial t} + 3 \frac{d^2 k_3}{dh^2} \frac{\partial f}{\partial x} \right) \right] \notag \\ &= \frac{\partial^3 f}{\partial t^3} + 3 \frac{\partial^3 f}{\partial t^2 \partial x} f + 3 \frac{\partial^3 f}{\partial t \partial x^2} f^2 + \frac{\partial^3 f}{\partial x^3} f^3 \notag \\ &\hspace{11pt}+ 3\frac{\partial^2 f}{\partial t \partial x} \frac{\partial f}{\partial t} + 5 \frac{\partial^2 f}{\partial t \partial x} \frac{\partial f}{\partial x}f + 3 \frac{\partial^2 f}{\partial x^2} \frac{\partial f}{\partial t} f + \frac{\partial f}{\partial x} \frac{\partial^2 f}{\partial t^2} + 4 \frac{\partial^2 f}{\partial x^2} \frac{\partial f}{\partial x} f^2 \notag \\ &\hspace{11pt}+ \left( \frac{\partial f}{\partial x} \right)^2 \frac{\partial f}{\partial t} + \left( \frac{\partial f}{\partial x} \right)^3 f \end{align}

Notation Table

SymbolDefinition
f(x,t)f(x,t)Function of ODE
hhStep size
kik_iRunge-Kutta intermediate values
nfxn\frac{\partial^n f}{\partial x^n}n-th partial derivative with respect to xx

Related Articles

Uniformly Distribute Points on Primitive Shapes

Mathematical methods for uniformly distributing points on primitive geometric surfaces including rectangles, triangles, cylinders, discs, spheres, cones, and parabolic surfaces for ray tracing applications.

Tracking the Floating Point Error

If rounding errors for floating point numbers are critical for your numerical calculation. What is the correct way to estimate and track the error? Looking into the definition in IEEE 754-2019 and basic methodology for the error estimation.