{
"cells": [
{
"cell_type": "markdown",
"id": "81b1d2f0",
"metadata": {},
"source": [
"---\n",
"title: \"Multistep Methods\"\n",
"subtitle: \"Lecture 6\"\n",
"date: 2026-02-11\n",
"abstract-title: Overview\n",
"abstract: | \n",
" (1) Recap, \n",
" (2) Adaptive RK methods, \n",
" (3) Numerical examples, \n",
" (4) Multistep methods\n",
"format:\n",
" html:\n",
" other-links:\n",
" - text: This notebook\n",
" href: L6.ipynb\n",
"---"
]
},
{
"cell_type": "markdown",
"id": "63cf0867",
"metadata": {},
"source": [
"::: {.callout-note}\n",
"\n",
"I encourage you to play around with the juptyer notebook for this lecture - you can copy the code with the ```this notebook``` button on the side of this page.\n",
"\n",
":::\n",
"\n",
"::: {.callout-warning}\n",
"\n",
"These notes are mainly a record of what we discussed and are not a substitute for attending the lectures and reading books! If anything is unclear/wrong, let me know and I will update the notes.\n",
"\n",
":::\n",
"\n",
"::: {.callout-tip}\n",
"\n",
"This lecture is mostly based on @Burden section 5.6 and @FNC section on zero stability,\n",
"\n",
":::"
]
},
{
"cell_type": "code",
"execution_count": 1,
"id": "db6fe346",
"metadata": {},
"outputs": [],
"source": [
"#| echo: false\n",
"\n",
"# IF YOU ARE READING THIS, THANK YOU\n",
"# FOR DOWNLOADING THE LECTURE NOTES.\n",
"# THE FIRST PERSON TO LET ME KNOW,\n",
"# WINS SOME CHOCOLATES OF YOUR CHOICE\n",
"\n",
"using Plots, LaTeXStrings, OrdinaryDiffEq"
]
},
{
"cell_type": "markdown",
"id": "5ea01014",
"metadata": {},
"source": [
"## Recap\n",
"\n",
"Recall that we are considering IVPs: seek $u :[0,T] \\to \\mathbb R$ such that\n",
"\n",
"\\begin{align}\n",
" &u(0) = u_0 \\nonumber\\\\\n",
" &u'(t) = f\\big( t, u(t) \\big). \\tag{IVP}\n",
"\\end{align}\n",
"\n",
"We will suppose that $f$ is continuous on $[0,T] \\times \\mathbb R$ and Lipschitz in the second argument and so the problem is well-posed and there exists a unique solution to $(\\text{IVP})$. Recall *one-step methods*: \n",
"\n",
"\\begin{align}\n",
" u_{j+1} = u_j + h \\phi(t_j, u_j; h)\n",
" \\tag{1-step}\n",
"\\end{align}\n",
"\n",
"where $t_j = j \\frac{T}{n} = j h$ define the *mesh*. We saw last week that, if the local truncation error is $\\tau_{j+1} = O(h^p)$ as $h\\to 0$ (i.e. if the method is *consistent* with *order of accuracy $p$*) and $|\\frac{\\partial \\phi}{\\partial u}| \\leq L$ on $[0,T] \\times \\mathbb R$, then we have the error bound \n",
"\n",
"\\begin{align}\n",
" |u(t_j) - u_j| \\leq \\frac{Ch^p}{L} ( e^{Lt_j} - 1).\n",
"\\end{align}\n",
"\n",
"Then, we looked at Runge--Kutta methods:"
]
},
{
"cell_type": "markdown",
"id": "cc1ca527",
"metadata": {},
"source": [
"::: {#def-RK}\n",
"\n",
"A general $s$-stage Runge-Kutta method is of the form:\n",
"\n",
"\\begin{align}\n",
" k_1 &= h f(t_j, u_j) \\nonumber\\\\\n",
" k_2 &= h f(t_j + c_1 h, u_j + a_{11} k_1) \\nonumber \\\\\n",
" k_3 &= h f(t_j + c_2 h, u_j + a_{21} k_1 + a_{22} k_2) \\nonumber\\\\\n",
" \\vdots& \\nonumber\\\\\n",
" k_s &= h f(t_j + c_{s-1} h, u_j + a_{s-1,1} k_1 + \\dots + a_{s-1,s-1} k_{s-1}) \\nonumber\\\\\n",
" %\n",
" u_{j+1} &= u_{j} + b_1 k_1 + b_2 k_2 + \\dots + b_s k_s. \\nonumber\n",
"\\end{align}\n",
"\n",
"This Runge-Kutta method is conveniently written as the *Butcher tableau*: \n",
"\n",
"\\begin{array}\n",
"{c|cccc}\n",
"0\\\\\n",
"c_1 & a_{11} \\\\\n",
"c_2 & a_{21} & a_{22} \\\\\n",
"\\vdots & \\vdots& \\vdots & \\ddots& \\\\\n",
"c_{s-1} & a_{s-1,1}& a_{s-1,2} & \\cdots & a_{s-1,s-1} \\\\\n",
"\\hline\n",
"& b_1 & b_2 & \\dots & b_{s-1} & b_s \n",
"\\end{array}\n",
"\n",
":::\n",
"\n",
"::: {#exm-1}\n",
"\n",
"Show that all $2$ stage, order $2$ Runge-Kutta methods have a Butcher tableau of the form\n",
"\n",
"\\begin{array}\n",
"{c|cccc}\n",
"0\\\\\n",
"\\tfrac{1}{2b} & \\tfrac{1}{2b} \\\\\n",
"\\hline\n",
"& 1-b & b \n",
"\\end{array}\n",
"\n",
"for some $b \\not= 0$. \n",
"\n",
":::\n",
"\n",
"::: {#exm-1}\n",
"\n",
"Show that $\\sum_{j=1}^s b_j = 1$ implies the Runge-Kutta method given by the Butcher tableau above is consistent. \n",
"\n",
":::\n",
"\n",
"We saw a popular $4$ stage order $4$ method:\n",
"\n",
"\\begin{align}\\tag{RK4}\n",
"\\begin{array}\n",
"{c|cccc}\n",
"0\\\\\n",
"\\frac12 & \\frac12 \\\\\n",
"\\frac12 & 0 & \\frac12 \\\\\n",
"1 & 0 & 0 & 1 \\\\\n",
"\\hline\n",
"& \\frac16 & \\frac13 & \\frac13 & \\frac16 \n",
"\\end{array}\n",
"\\end{align}\n",
"\n",
"We then implemented a general Runge-Kutta method:"
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "6a0bfcf5",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"RK (generic function with 1 method)"
]
},
"execution_count": 2,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"function RK( u0, f, T, n, A, b, c )\n",
" h, t = T/n, 0:T/n:T \n",
" u = fill(float(u0), n+1)\n",
" s, = size(A)\n",
" s = s+1 \n",
" k = fill(float(u0), s)\n",
" for j = 1:n\n",
" k[1] = h * f( t[j], u[j] )\n",
" for i = 1:s-1 \n",
" k[i+1] = h * f( t[j] + h * c[i], u[j] + sum( A[i,ℓ] * k[ℓ] for ℓ ∈ 1:i ) )\n",
" end\n",
" u[j+1] = u[j] + sum( b[ℓ] * k[ℓ] for ℓ ∈ 1:s )\n",
" end\n",
" return u\n",
"end "
]
},
{
"cell_type": "markdown",
"id": "51b207b7",
"metadata": {},
"source": [
"Then, we saw examples of error curves for order 1 (Euler), order 2, and order 4 methods. We plotted the errors as a function of both $n$ and function evaluations. \n",
"\n",
"## Adaptive Runge-Kutta\n",
"\n",
"In adaptive RK methods, we want to choose a smaller step size where the error between the true solution and the numerical approximation is large. However, we do not have access to the true error (because the true solution is unknown) and so one must use *error estimators*. We consider two methods of order $p$ and $p+1$ to compute $u_{j+1}$ and $\\widetilde{u}_{j+1}$, respectively. If $E_j(h) := |\\widetilde{u}_{j+1} - u_{j+1}|$ is \"small\" (relative to some tolerance $\\rm tol$), we accept $\\widetilde{u}_{j+1}$ whereas, if $E_j$ is \"large\" we choose a new step size $qh$ and recompute $u_{j+1}$ and $\\widetilde{u}_{j+1}$ with this new step size and repeat. At first glance, it looks like the computational cost in doing this is very large: *(i)* we are computing two RK methods in the first place, and *(ii)* we are using function evaluations and then discarding the outputs (if the step size is too large). \n",
"\n",
"Using so-called *embedded RK methods* reduces the (potential) problem in *(i)* by reusing all the stages of the order $p$ method in the order $p+1$ method: The following is the Bogacki-Shampine (BS23) method of order 2/3:\n",
"\n",
"\\begin{align}\\tag{BS23}\n",
"\\begin{array}\n",
"{c|cccc}\n",
"0\\\\\n",
"1/2 & 1/2 \\\\\n",
"3/4 & 0 & 3/4 \\\\\n",
"1 & 2/9 & 1/3 & 4/9 \\\\\n",
"\\hline\n",
"\\widetilde{\\bm b} := & 2/9 & 1/3 & 4/9 & 0\\\\\n",
"\\hline\n",
"\\bm b := & 7/24 & 1/4 & 1/3 & 1/8 .\n",
"\\end{array}\n",
"\\end{align}\n",
"\n",
"What we mean in the final two lines is that \n",
"\n",
"\\begin{align}\n",
" u_{j+1} &= u_j + b_1 k_1 + b_2 k_2 + b_3 k_3 + b_4 k_4 \\nonumber\\\\\n",
" \\widetilde{u}_{j+1} &= u_j + \\widetilde{b}_1 k_1 + \\widetilde{b}_2 k_2 + \\widetilde{b}_3 k_3 \\nonumber\\\\\n",
"\\end{align}\n",
"\n",
"::: {#exr-1}\n",
"\n",
"How many function evaluations do we need to compute $u_{j+1}$ and $\\widetilde{u}_{j+1}$ from $u_j$?\n",
"\n",
":::\n",
"\n",
"We implement a general adaptive RK method: "
]
},
{
"cell_type": "code",
"execution_count": 9,
"id": "cf3d2bd1",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"ARK (generic function with 1 method)"
]
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"function ARK( u0, f, T; \n",
" A=[1/2 0 0 ; 0 3/4 0 ; 2/9 1/3 4/9], \n",
" b=[2/9 1/3 4/9 0; 7/24 1/4 1/3 1/8], \n",
" c=[1/2 3/4 1], tol=1e-5, p=2, α=0.84 )\n",
" \n",
" t, u = [0.], [float(u0)]\n",
" s, = size(A)\n",
" s = s+1 \n",
" k = fill(float(u0), s)\n",
" i, h, evals = 1, 1e-1, 0\n",
" \n",
" while t[i] < T\n",
" if h < 1e-15\n",
" @warn \"Step size is too small, t=$(t[i])\"\n",
" break \n",
" end\n",
"\n",
" k[1] = h * f( t[i], u[i] )\n",
" for j = 1:s-1 \n",
" k[j+1] = h * f( t[i] + h * c[j], u[i] + sum( A[j,ℓ] * k[ℓ] for ℓ ∈ 1:j ) )\n",
" end\n",
" evals = evals + s\n",
" next_u_1 = u[i] + sum( b[2,ℓ] * k[ℓ] for ℓ ∈ 1:s )\n",
" next_u_2 = u[i] + sum( b[1,ℓ] * k[ℓ] for ℓ ∈ 1:s )\n",
" E = abs(next_u_1 - next_u_2)\n",
"\n",
" if E < tol\n",
" push!(t, t[i] + h)\n",
" push!(u, next_u_2)\n",
" i += 1\n",
" end\n",
"\n",
" q = min( α * (tol/E)^(1/(p+1)), 5 )\n",
" h = min(q*h, T-t[i]) \n",
" end\n",
" return t, u, evals\n",
"end"
]
},
{
"cell_type": "markdown",
"id": "64b7e63d",
"metadata": {},
"source": [
"::: {#nte-code}\n",
"\n",
"In the above code, if $A,b,c$ are not specified, the default is $(\\text{BS23})$.\n",
"\n",
":::"
]
},
{
"cell_type": "markdown",
"id": "7a2e6a87",
"metadata": {},
"source": [
"::: {#exm-1}\n",
"# Example 6.5.1 @FNC\n",
"\n",
"Here, we consider \n",
"\n",
"\\begin{align}\n",
" u(0) &= 0 \\nonumber\\\\\n",
" u'(t) &= e^{t - u(t) \\sin u(t)}.\n",
"\\end{align}\n",
"\n",
"First, we plot the numerical solution found using ```Tsit5()``` with a very small tolerence (so that we have something to compare our numerical methods to) together with our adaptive RK method:"
]
},
{
"cell_type": "code",
"execution_count": 4,
"id": "00ca922d",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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",
"image/svg+xml": [
"\n",
"\n"
],
"text/html": [
""
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"u0, T = 0., 5.\n",
"f(t,u) = (u == Inf) ? Inf : exp( t - u * sin(u) )\n",
"\n",
"ivp = ODEProblem((u,p,t)->f(t,u), u0, (0., T))\n",
"sol = solve(ivp, Tsit5(), reltol=1e-15, abstol=1e-15)\n",
"\n",
"t, u, evals = ARK(u0,f,T; tol=1e-2) \n",
"\n",
"plot(sol, \n",
" label=\"Tsit5()\", \n",
" xlabel=L\"t\", ylabel=L\"u(t)\")\n",
"\n",
"plot!(t, u, m=3, label=\"BS23 (f-evals = $evals)\")"
]
},
{
"cell_type": "markdown",
"id": "07181cbf",
"metadata": {},
"source": [
"Notice that the derivative of the solution becomes very large around $t\\approx \\frac{3\\pi}{2}$ (Exercise: Why?). In these regions, our adaptive method chooses a smaller step size (as expected). Let's compare this to RK4 with the same number of function evaluations:"
]
},
{
"cell_type": "code",
"execution_count": 5,
"id": "536a9694",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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",
"image/svg+xml": [
"\n",
"\n"
],
"text/html": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"n = Int(evals/4)\n",
"\n",
"P = plot(sol, \n",
" label=\"Tsit5()\", \n",
" xlabel=L\"t\", ylabel=L\"u(t)\", ylims=(0,maximum(sol.u)))\n",
"\n",
"# RK4\n",
"A = [1/2 0 0 ; 0 1/2 0 ; 0 0 1]\n",
"b = [1/6 1/3 1/3 1/6]\n",
"c = [1/2 1/2 1]\n",
"\n",
"u = RK( u0, f, T, n, A, b, c)\n",
"plot!( 0:T/n:T, u, label=\"RK4 (n = $n)\", m=3)\n",
"\n",
"display(P)"
]
},
{
"cell_type": "markdown",
"id": "e30634c4",
"metadata": {},
"source": [
"Let's plot the error (when compared to the ```Tsit5()``` with a low tolerance) against the number of function evalations for the different methods that we have seen"
]
},
{
"cell_type": "code",
"execution_count": 10,
"id": "19ad21eb",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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",
"image/svg+xml": [
"\n",
"\n"
],
"text/html": [
""
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"nn = [round(Int, 10^ℓ) for ℓ ∈ 2:0.5:6]\n",
"errs = zeros(length(nn),6)\n",
"i = 0\n",
"\n",
"for (ℓ,n) ∈ enumerate(nn)\n",
" mesh = 0:T/n:T\n",
" u1 = RK( u0, f, T, n, [], [1], []) # Euler\n",
" u2 = RK( u0, f, T, n, [1/2], [0, 1], [1/2]) # Midpoint\n",
" u3 = RK( u0, f, T, n, [1], [1/2, 1/2], [1]) # Modified Euler \n",
" u4 = RK( u0, f, T, n, [2/3], [1/4, 3/4], [2/3]) # Heun \n",
" u5 = RK( u0, f, T, n, A, b, c) # RK4\n",
" errs[ℓ,1] = maximum( @. abs( u1 - sol(mesh) ) )\n",
" errs[ℓ,2] = maximum( @. abs( u2 - sol(mesh) ) )\n",
" errs[ℓ,3] = maximum( @. abs( u3 - sol(mesh) ) )\n",
" errs[ℓ,4] = maximum( @. abs( u4 - sol(mesh) ) )\n",
" errs[ℓ,5] = maximum( @. abs( u5 - sol(mesh) ) )\n",
"end\n",
"\n",
"Aerrs, evals = [], [] # BS23\n",
"for ℓ ∈ 2:13\n",
" t, u6, feval = ARK(u0,f,T; tol=10.0^(-ℓ)) \n",
" push!( evals, feval )\n",
" push!( Aerrs, maximum( @. abs( u6 - sol(t) ) ) )\n",
"end\n",
"\n",
"plot([nn 2nn 2nn 2nn 4nn], errs[:,1:5];\n",
" m=4, label=[\"Euler (p=1)\" \"Midpoint (p=2)\" \"Modified Euler (p=2)\" \"Heun (p=2)\" \"RK4 (p=4)\"], \n",
" xaxis=(:log10, \"function evaluations\"), yaxis=(:log10, \"error\"), ylims=(1e-11,1e5), \n",
" legend=:bottomleft)\n",
"plot!(evals, Aerrs, m=3, label=\"BS23\")\n",
"plot!( nn, (1/2)*errs[end,1]*(nn/nn[end]).^(-1), primary=false, linestyle=:dash )\n",
"plot!( 2*nn, (1/2)*errs[end,2]*(nn/nn[end]).^(-2), primary=false, linestyle=:dash )\n",
"plot!( nn, 1e6*(nn).^(-3), primary=false, linestyle=:dash )\n",
"plot!( 4*nn, (1/2)*errs[end,5]*(nn/nn[end]).^(-4), primary=false, linestyle=:dash )"
]
},
{
"cell_type": "markdown",
"id": "b8ee6891",
"metadata": {},
"source": [
":::\n",
"\n",
"::: {#exr-BS23}\n",
"\n",
"Discuss the previous plot with the person next to you. Is the order of accuracy always the best measure of convergence?\n",
"\n",
":::\n",
"\n",
"## Multistep methods\n",
"\n",
"@Burden section 5.6\n",
"\n",
"All the methods we have seen so take the form $u_{j+1} = u_j + h \\phi( t_j, u_j; h)$. These are known as $1$-step methods because $u_{j+1}$ is only given as a function of $1$ previously computed value $u_j$. Multistep methods hope to improve efficiency by using the history of the solution $\\{u_j, u_{j-1}, \\dots, u_{j-m+1}\\}$ for some $m \\in \\mathbb N$ to compute the next term $u_{j+1}$. Linear multistep methods produce $u_{j+1}$ as a linear combination of $\\{ u_{i} \\}$ and $\\{ f(t_{i}, u_{i}) \\}$:\n",
"\n",
"::: {#def-mstep}\n",
"# Linear multistep method\n",
"\n",
"A linear $m$-step method is of the form:\n",
"\n",
"\\begin{align}\n",
" u_{j+1} &= \\alpha_{m-1} u_{j} + \\alpha_{m-2} u_{j-1} + \\cdots + \\alpha_{0} u_{j-m+1} \\nonumber\\\\\n",
" %\n",
" &+ h \\big[ \\beta_m f(t_{j+1}, u_{j+1}) + \\beta_{m-1} f(t_{j}, u_{j}) + \\cdots + \\beta_0 f(t_{j-m+1}, u_{j-m+1})\\big]\n",
"\\end{align}\n",
"\n",
"for some coefficients $\\alpha_0,\\dots,\\alpha_{m-1}$ and $\\beta_0, \\dots, \\beta_{m}$. \n",
"\n",
"If $\\beta_m = 0$, the method is *explicit* ($u_{j+1}$ is given explicitly),\n",
"\n",
"If $\\beta_m \\not= 0$, the method is *implicit* ($u_{j+1}$ solves a non-linear equation that must be solved).\n",
"\n",
":::\n",
"\n",
"::: {.callout-note}\n",
"\n",
"For $1$-step methods, we started from $u_0$ given by the equation. \n",
"\n",
"Now, we need to initiate $u_0,\\dots,u_{m-1}$ in order to define $u_{m}$. This can be done by e.g. using a RK method.\n",
"\n",
":::\n",
"\n",
"::: {#rmk-fevals}\n",
"\n",
"We can store the history $f(t_{j-1}, u_{j-1}), \\dots, f(t_{j-m+1}, u_{j-m+1})$ so that (in the explicit case) to evaluate $u_{j+1}$ we only need to compute one function evaluation $f(t_{j}, u_{j})$.\n",
"\n",
":::\n",
"\n",
"::: {#exm-AB}\n",
"# Adams-Bashforth (AB)\n",
"\n",
"AB methods are explicit ($\\beta_{m} = 0$) with $\\alpha_{m-1} = 1$ and $\\alpha_{m-2} = \\cdots = 0$. They are chosen to have order $p=m$ and denoted $\\text{(AB}p\\text{)}$:\n",
"\n",
"\\begin{align}\n",
" \\tag{AB1}\n",
" &m=1, \\quad \\beta_0 = 1 \n",
"\\\\\n",
" \\tag{AB2}\n",
" &m=2, \\quad \\beta_1 = \\frac32, \\quad \\beta_0 = -\\frac12 \n",
"\\\\\n",
" \\tag{AB3}\n",
" &m=3, \\quad \\beta_2 = \\frac{23}{12}, \\quad \\beta_1 = -\\frac{16}{12}, \\quad \\beta_0 = \\frac5{12} \n",
"\\end{align}\n",
"\n",
":::\n",
"\n",
"::: {#exr-AB1}\n",
"\n",
"Notice that $\\text{(AB1)}$ is Euler's method\n",
"\n",
":::\n",
"\n",
"We define the local truncation error in an analogous way to $1$-step methods:\n",
"\n",
"::: {#def-LTE}\n",
"\n",
"The local truncation error of a linear multistep method with coefficients $\\alpha_{m-1}, \\dots, \\alpha_0$ and $\\beta_{m},\\dots,\\beta_0$ is given by \n",
"\n",
"\\begin{align}\n",
" \\tau_{j+1}(h) \n",
" &= \n",
" \\frac1h \\Big[\n",
" u(t_{j+1}) - \\sum_{i=0}^{m-1} \\alpha_{m-1-i} u(t_{j-i}) \n",
" \\Big] \\nonumber\\\\\n",
" %\n",
" &\\quad - \\sum_{i=0}^m \\beta_{m-i} f\\big( t_{j+1-i}, u(t_{j+1-i}) \\big)\n",
"\\end{align}\n",
"\n",
"We say the multistep method is *consistent* if $\\max_j \\tau_{j+1}(h) \\to 0$ as $h\\to 0$. \n",
"\n",
"We say the multistep method has *order of accuracy $p$* if $\\tau_{j+1}(h) = O(h^p)$ as $h\\to 0$.\n",
"\n",
":::\n",
"\n",
"::: {#exr-AB1}\n",
"\n",
"Show that $\\text{(AB2)}$ has order of accuracy $2$.\n",
"\n",
":::\n",
"\n",
"::: {#exm-AM}\n",
"# Adams-Moulton (AM)\n",
"\n",
"AM methods are implicit ($\\beta_{m} \\not= 0$) with $\\alpha_{m-1} = 1$ and $\\alpha_{m-2} = \\cdots = 0$. Since there is another degree of freedom ($\\beta_m\\not=0$), $m$-step implicit methods can have order of accuracy $p = m+1$:\n",
"\n",
"\\begin{align}\n",
" \\tag{AM1}\n",
" &m=1, \\quad \\beta_1 = 1, \\quad \\beta_0 = 0 \n",
"\\\\\n",
" \\tag{AM2}\n",
" &m=1, \\quad \\beta_1 = \\frac12, \\quad \\beta_0 = \\frac12 \n",
"\\\\\n",
" \\tag{AM3}\n",
" &m=2, \\quad \\beta_2 = \\frac{5}{12}, \\quad \\beta_1 = \\frac{8}{12}, \\quad \\beta_0 - \\frac1{12} \n",
"\\end{align}\n",
"\n",
"Here, we use the naming convention $(\\text{AM}p)$ where $p$ is the order of accuracy.\n",
"\n",
":::\n",
"\n",
"::: {#exr-AM}\n",
"\n",
"Write down the formulas for $(\\text{AM}1)$, $(\\text{AM}2)$, $(\\text{AM}3)$.\n",
"\n",
":::\n",
"\n",
"::: {.callout-note}\n",
"\n",
"$(\\text{AM}1)$ is also called *backward's Euler* because you can derive it from $u'(t_{j+1}) = f(t_{j+1}, u_{j+1})$ and replace the derivative with the *backwards difference* $\\frac{u_{j+1} - u_j}{h}$.\n",
"\n",
"$(\\text{AM}2)$ is also called the *trapezoid rule* or *Crank-Nicolson*\n",
"\n",
":::"
]
},
{
"cell_type": "markdown",
"id": "b94ee96d",
"metadata": {},
"source": [
":::{.callout-tip}\n",
"# TO-DO\n",
"\n",
"* Assignment 2: Due today 11:59 PM,\n",
"* Make sure you are up to date with @Burden sections 5.1 - 5.5\n",
"* Read: @Burden 5.6, @FNC [zero stability](https://fncbook.com/zerostability/) \n",
"* (Sign-up to office hours if you would like)\n",
" \n",
"Next: (zero) stability and convergence of multistep methods.\n",
":::"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Julia 1.11",
"language": "julia",
"name": "julia-1.11"
},
"language_info": {
"file_extension": ".jl",
"mimetype": "application/julia",
"name": "julia",
"version": "1.11.6"
}
},
"nbformat": 4,
"nbformat_minor": 5
}