Skip to content

Instantly share code, notes, and snippets.

@henryiii
Created January 23, 2020 06:09
Show Gist options
  • Save henryiii/b9facb5d55ad488db8de10425a0e21c6 to your computer and use it in GitHub Desktop.
Save henryiii/b9facb5d55ad488db8de10425a0e21c6 to your computer and use it in GitHub Desktop.
RungeKutta Example
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Runge–Kutta algorithm\n",
"\n",
"Let's try a ODE solver, the Runge-Kutta algorithm:"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"import numpy as np\n",
"import matplotlib.pyplot as plt\n",
"import numba"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's setup an ODE function to solve. We can write our ODE as a system of linear first order ODE equations:"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The harmonic motion equation can be written in terms of $\\mathbf{f}(t, \\mathbf{y}) = \\dot{\\mathbf{y}}$, where this is in the standard form:\n",
"\n",
"$$\n",
"\\mathbf{y} =\n",
"\\left(\n",
"\\begin{matrix}\n",
"\\dot{x} \\\\\n",
"x\n",
"\\end{matrix}\n",
"\\right)\n",
"$$\n",
"\n",
"$$\n",
"\\mathbf{f}(t, \\mathbf{y}) = \n",
"\\dot{\\mathbf{y}}\n",
"=\n",
"\\left(\n",
"\\begin{matrix}\n",
"\\ddot{x} \\\\\n",
"\\dot{x}\n",
"\\end{matrix}\n",
"\\right)\n",
"=\n",
"\\left(\n",
"\\begin{matrix}\n",
"-\\frac{k}{m} x \\\\\n",
"\\dot{x}\n",
"\\end{matrix}\n",
"\\right)\n",
"=\n",
"\\left(\n",
"\\begin{matrix}\n",
"-\\frac{k}{m} y_1 \\\\\n",
"y_0\n",
"\\end{matrix}\n",
"\\right)\n",
"$$"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"x_max = 1 # Size of x max\n",
"v_0 = 0\n",
"koverm = 1 # k / m\n",
"\n",
"def f(t, y):\n",
" 'Y has two elements, x and v'\n",
" return np.array([-koverm*y[1], y[0]])"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Now let's do the most basic, stupid thing possible: The Euler algorithm:"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [],
"source": [
"def euler_ivp(f, init_y, t):\n",
" steps = len(t)\n",
" order = len(init_y) # Number of equations\n",
" \n",
" y = np.empty((steps, order))\n",
" y[0] = init_y # Note that this sets the elements of the first row\n",
" \n",
" for n in range(steps-1):\n",
" h = t[n+1] - t[n]\n",
" \n",
" # Copute dydt based on *current* position\n",
" dydt = f(t[n], y[n])\n",
" \n",
" # Compute next velocity and position\n",
" y[n+1] = y[n] - dydt * h\n",
" \n",
" return y"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We can see, when compared to the actual solution, that the Euler very quickly is destroyed by errors at each step (in this case, the frequency is not too bad, though):"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"ts = np.linspace(0, 40, 1000 + 1)\n",
"y = euler_ivp(f, [x_max, v_0], ts)\n",
"plt.plot(ts, np.cos(ts))\n",
"plt.plot(ts, y[:,0], '--');"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Range-Kutta introduction\n",
"\n",
"Note that $h = t_{n+1} - t_n $.\n",
"\n",
"$$\n",
"\\dot{y} = f(t,y)\n",
"\\\\\n",
"\\implies y = \\int f(t,y) \\, dt\n",
"\\\\\n",
"\\implies y_{n+1} = y_{n} + \\int_{t_n}^{t_{n+1}} f(t,y) \\, dt\n",
"$$"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Now, expand $f$ in a Taylor series around the *midpoint* of the interval:\n",
"\n",
"$$\n",
"f(t,y) \\approx f(t_{n+\\frac{1}{2}},y_{n+\\frac{1}{2}})\n",
" + \\left( t - t_{n+\\frac{1}{2}}\\right)\n",
" \\dot{f}(t_{n+\\frac{1}{2}})\n",
" + \\mathcal{O}(h^2)\n",
"$$\n",
"\n",
"The second term here is symmetric in the interval, so all we have left is the first term in the integral:\n",
"\n",
"$$\n",
"\\int_{t_n}^{t_{n+1}} f(t,y) \\, dt \\approx\n",
" h\\, f(t_{n+\\frac{1}{2}},y_{n+\\frac{1}{2}}) + \\mathcal{O}(h^3)\n",
"$$"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Back into the original statement, we get:\n",
"\n",
"$$\n",
"y_{n+1} \\approx \n",
"\\color{blue}{\n",
"y_{n}\n",
"+ h\\, f(t_{n+\\frac{1}{2}},y_{n+\\frac{1}{2}})\n",
"}\n",
"+ \\mathcal{O}(h^3)\n",
"\\tag{rk2}\n",
"$$\n",
"\n",
"We've got one more problem! How do we calculate $f(t_{n+\\frac{1}{2}},y_{n+\\frac{1}{2}})$? We can use the Euler's algorithm that we saw last time:\n",
"\n",
"$$\n",
"y_{n+\\frac{1}{2}}\n",
"\\approx y_n + \\frac{1}{2} h \\dot{y}\n",
"= \\color{red}{\n",
"y_n + \\frac{1}{2} h f(t_{n},y_{n})\n",
"}\n",
"$$"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Putting it together, this is our RK2 algorithm:\n",
"\n",
"$$\n",
"\\mathbf{y}_{n+1} \\approx\n",
"\\color{blue}{\n",
"\\mathbf{y}_{n}\n",
"+ \\mathbf{k}_2\n",
"}\n",
"\\tag{1.0}\n",
"$$\n",
"\n",
"\n",
"$$\n",
"\\mathbf{k}_1 = h \\mathbf{f}(t_n,\\, \\mathbf{y}_n)\n",
"\\tag{1.1}\n",
"$$\n",
"\n",
"$$\n",
"\\mathbf{k}_2 = h \\mathbf{f}(t_n + \\frac{h}{2},\\, \\color{red}{\\mathbf{y}_n\n",
"+ \\frac{\\mathbf{k}_1}{2}})\n",
"\\tag{1.2}\n",
"$$\n",
"\n",
"We've picked up bold face to indicate that we can have a vector of ODEs."
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [],
"source": [
"def rk2_ivp(f, init_y, t):\n",
" steps = len(t)\n",
" order = len(init_y)\n",
" \n",
" y = np.empty((steps, order))\n",
" y[0] = init_y\n",
" \n",
" for n in range(steps-1):\n",
" h = t[n+1] - t[n]\n",
" \n",
" k1 = h * f(t[n], y[n]) # 1.1\n",
" k2 = h * f(t[n] + h/2, y[n] + k1/2) # 1.2\n",
" \n",
" y[n+1] = y[n] + k2 # 1.0\n",
" \n",
" return y"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's try this with the same grid as before:"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"ts = np.linspace(0, 40, 1000 + 1)\n",
"y = rk2_ivp(f, [x_max, v_0], ts)\n",
"plt.plot(ts, np.cos(ts))\n",
"plt.plot(ts, y[:,0], '--');"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"And, on a coarser grid:"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"ts = np.linspace(0, 40, 100 + 1)\n",
"y = rk2_ivp(f, [x_max, v_0], ts)\n",
"plt.plot(ts, np.cos(ts))\n",
"plt.plot(ts, y[:,0], '--');"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We can get the RK4 algorithm by keeping another non-zero term in the Taylor series:\n",
"\n",
"$$\n",
"\\mathbf{y}_{n+1} \\approx\n",
"\\mathbf{y}_{n}\n",
"+ \\frac{1}{6} (\\mathbf{k}_1 + 2 \\mathbf{k}_2 + 2 \\mathbf{k}_3 + \\mathbf{k}_4 )\n",
"\\tag{2.0}\n",
"$$\n",
"\n",
"$$\n",
"\\mathbf{k}_1 = h \\mathbf{f}(t_n,\\, \\mathbf{y}_n)\n",
"\\tag{2.1}\n",
"$$\n",
"\n",
"$$\n",
"\\mathbf{k}_2 = h \\mathbf{f}(t_n + \\frac{h}{2},\\,\n",
" \\mathbf{y}_n + \\frac{\\mathrm{k}_1}{2})\n",
"\\tag{2.2}\n",
"$$\n",
"\n",
"$$\n",
"\\mathbf{k}_3 = h \\mathbf{f}(t_n + \\frac{h}{2},\\,\n",
" \\mathbf{y}_n + \\frac{\\mathrm{k}_2}{2})\n",
"\\tag{2.3}\n",
"$$\n",
"\n",
"$$\n",
"\\mathbf{k}_4 = h \\mathbf{f}(t_n + h,\\,\n",
" \\mathbf{y}_n + \\mathrm{k}_3)\n",
"\\tag{2.4}\n",
"$$"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [],
"source": [
"def rk4_ivp(f, init_y, t):\n",
" steps = len(t)\n",
" order = len(init_y)\n",
" \n",
" y = np.empty((steps, order))\n",
" y[0] = init_y\n",
" \n",
" for n in range(steps-1):\n",
" h = t[n+1] - t[n]\n",
" \n",
" k1 = h * f(t[n], y[n]) # 2.1\n",
" k2 = h * f(t[n] + h/2, y[n] + k1/2) # 2.2\n",
" k3 = h * f(t[n] + h/2, y[n] + k2/2) # 2.3\n",
" k4 = h * f(t[n] + h, y[n] + k3) # 2.4\n",
" \n",
" y[n+1] = y[n] + 1/6 * (k1 + 2*k2 + 2*k3 + k4) # 2.0\n",
" \n",
" return y"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's try this with the same course grid as before:"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"ts = np.linspace(0, 40, 100 + 1)\n",
"y = rk4_ivp(f, [x_max, v_0], ts)\n",
"plt.plot(ts, np.cos(ts))\n",
"plt.plot(ts, y[:,0], '--');"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"103 ms ± 26 ms per loop (mean ± std. dev. of 7 runs, 10 loops each)\n"
]
}
],
"source": [
"%%timeit\n",
"ts = np.linspace(0, 40, 1000 + 1)\n",
"y = rk4_ivp(f, [x_max, v_0], ts)"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [],
"source": [
"f_jit = numba.njit(f)\n",
"rk4_ivp_jit = numba.njit(rk4_ivp)"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"1.2 ms ± 158 µs per loop (mean ± std. dev. of 7 runs, 1 loop each)\n"
]
}
],
"source": [
"%%timeit\n",
"ts = np.linspace(0, 40, 1000 + 1)\n",
"y = rk4_ivp_jit(f_jit, np.array([x_max, v_0]), ts)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"You can inspect the types if you'd like to add them after running once:"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"f (float64, array(float64, 1d, C))\n",
"--------------------------------------------------------------------------------\n",
"# File: <ipython-input-2-dbe4829a4aa5>\n",
"# --- LINE 5 --- \n",
"# label 0\n",
"\n",
"def f(t, y):\n",
"\n",
" # --- LINE 6 --- \n",
"\n",
" 'Y has two elements, x and v'\n",
"\n",
" # --- LINE 7 --- \n",
" # t = arg(0, name=t) :: float64\n",
" # del t\n",
" # y = arg(1, name=y) :: array(float64, 1d, C)\n",
" # $0.1 = global(np: <module 'numpy' from '/srv/conda/envs/notebook/lib/python3.7/site-packages/numpy/__init__.py'>) :: Module(<module 'numpy' from '/srv/conda/envs/notebook/lib/python3.7/site-packages/numpy/__init__.py'>)\n",
" # $0.2 = getattr(value=$0.1, attr=array) :: Function(<built-in function array>)\n",
" # del $0.2\n",
" # del $0.1\n",
" # $0.3 = global(koverm: 1) :: Literal[int](1)\n",
" # $0.4 = unary(fn=<built-in function neg>, value=$0.3) :: int64\n",
" # del $0.3\n",
" # $const0.6 = const(int, 1) :: Literal[int](1)\n",
" # $0.7 = static_getitem(value=y, index=1, index_var=$const0.6) :: float64\n",
" # del $const0.6\n",
" # $0.8 = $0.4 * $0.7 :: float64\n",
" # del $0.7\n",
" # del $0.4\n",
" # $const0.10 = const(int, 0) :: Literal[int](0)\n",
" # $0.11 = static_getitem(value=y, index=0, index_var=$const0.10) :: float64\n",
" # del y\n",
" # del $const0.10\n",
" # size.0 = const(int, 2) :: int64\n",
" # size_tuple.1 = build_tuple(items=[Var(size.0, <ipython-input-2-dbe4829a4aa5> (7))]) :: tuple(int64 x 1)\n",
" # del size_tuple.1\n",
" # empty_func.2 = global(empty: <built-in function empty>) :: Function(<built-in function empty>)\n",
" # $np_g_var.3 = global(np: <module 'numpy' from '/srv/conda/envs/notebook/lib/python3.7/site-packages/numpy/__init__.py'>) :: Module(<module 'numpy' from '/srv/conda/envs/notebook/lib/python3.7/site-packages/numpy/__init__.py'>)\n",
" # $np_typ_var.4 = getattr(value=$np_g_var.3, attr=float64) :: dtype(float64)\n",
" # del $np_g_var.3\n",
" # $0.13 = call empty_func.2(size.0, $np_typ_var.4, func=empty_func.2, args=[Var(size.0, <ipython-input-2-dbe4829a4aa5> (7)), Var($np_typ_var.4, <ipython-input-2-dbe4829a4aa5> (7))], kws={}, vararg=None) :: (int64, dtype(float64)) -> array(float64, 1d, C)\n",
" # del size.0\n",
" # del empty_func.2\n",
" # del $np_typ_var.4\n",
" # index.5 = const(int, 0) :: int64\n",
" # $0.13[index.5] = $0.8 :: (array(float64, 1d, C), int64, float64) -> none\n",
" # del index.5\n",
" # del $0.8\n",
" # index.6 = const(int, 1) :: int64\n",
" # $0.13[index.6] = $0.11 :: (array(float64, 1d, C), int64, float64) -> none\n",
" # del index.6\n",
" # del $0.11\n",
" # $0.14 = cast(value=$0.13) :: array(float64, 1d, C)\n",
" # del $0.13\n",
" # return $0.14\n",
"\n",
" return np.array([-koverm*y[1], y[0]])\n",
"\n",
"\n",
"================================================================================\n"
]
}
],
"source": [
"f_jit.inspect_types()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## See also:\n",
"\n",
"* [CompClass: RK](https://nbviewer.jupyter.org/github/henryiii/compclass/blob/master/classes/week10/2_rk.ipynb)"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python [conda env:notebook] *",
"language": "python",
"name": "conda-env-notebook-py"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.7.3"
}
},
"nbformat": 4,
"nbformat_minor": 4
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment