{
"cells": [
{
"cell_type": "markdown",
"id": "81b1d2f0",
"metadata": {},
"source": [
"---\n",
"title: \"Transport and Heat Equations\"\n",
"subtitle: \"Lecture 18\"\n",
"date: 2026-04-15\n",
"abstract-title: Overview\n",
"format:\n",
" html:\n",
" other-links:\n",
" - text: This notebook\n",
" href: L18.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 chapter is mostly based on \n",
"\n",
"* @Burden Chapter 11, \n",
"* @FNC Chapter 10, \n",
"* Lecture 16: @FNC [Galerkin method](https://fncbook.com/galerkin/), \n",
"* Lecture 17: Chapter 14.4 of @Suli: Theorem 14.6. \n",
"\n",
":::"
]
},
{
"cell_type": "code",
"execution_count": 1,
"id": "f8408d86",
"metadata": {},
"outputs": [],
"source": [
"#| echo: false\n",
"\n",
"using Plots, LaTeXStrings, LinearAlgebra, Interpolations, SparseArrays\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"
]
},
{
"cell_type": "markdown",
"id": "81473756",
"metadata": {},
"source": [
"## Recap\n",
"\n",
"We have seen how to approximate the solution to general initial value problems: Find $u:[0,T]\\to \\mathbb R$ such that\n",
"\n",
"\\begin{align}\n",
" &u'(t) = f(t, u(t) ) \\nonumber\\\\\n",
" &u(0) = u_0.\n",
"\\end{align} \n",
"\n",
"(e.g exponential growth/decay, population models, ....) We saw Euler's method, general one-step methods, Runge-Kutta methods, multistep methods (and their associated error estimates). We then saw linear boundary value problems of the form: find $u : [a,b] \\to \\mathbb R$ such that \n",
"\n",
"\\begin{align}\n",
" -u''(x) &+ p(x) u'(x) + q(x) u(x) = f(x) \\nonumber\\\\\n",
" &u(a) = A, \\quad u(b) = B \\tag{Dirichlet} \\\\\n",
" \\text{or} \\qquad &u(a) = u(b), \\quad u'(a) = u'(b) \\tag{Periodic}\n",
"\\end{align}\n",
"\n",
"(e.g. semiconductors, pollutants, drug delivery, asset prices, heat transfer in fluids, ...) We saw finite differences and finite elements and some assosciated error estimates. Now, we'll take what we have learnt so far and apply it to Partial Differential Equations (PDEs). "
]
},
{
"cell_type": "markdown",
"id": "22380333",
"metadata": {},
"source": [
"## Some examples...\n",
"\n",
"PDEs can model a variety of phenomena. Here, we list some examples to introduce some of the notation:\n",
"\n",
"*Laplace's equation*: \n",
"\n",
"\\begin{align}\n",
" - \\Delta u := \\sum_{i=1}^d \\frac{\\partial^2 u}{\\partial x_i^2} = 0\n",
"\\end{align}\n",
"\n",
"Here, $\\Delta$ is the *Laplacian*. Solutions to this equation are called *Harmonic*. Poisson's equation is the inhomogenous version: $- \\Delta u = f$. This models heat conduction, elastic deformation, appears in electrostatics, Newton's law of gravitation, ....\n",
"\n",
"*Helmholtz's equation*: \n",
"\n",
"\\begin{align}\n",
" - \\Delta u = \\lambda u\n",
"\\end{align}\n",
"\n",
"This is an eigenvalue equation which appears in the study of acoustics, optics, electromagnetism, it's related to time-independent Schr\\\"odinger equation, .... \n",
"\n",
"*Heat (diffusion) equation*:\n",
"\n",
"\\begin{align}\n",
" u_t - \\Delta u = 0\n",
"\\end{align}\n",
"\n",
"where $u_t := \\frac{\\partial u}{\\partial t}$. Models the dissipation of some quantity as a function of time. (Related to the Black-Scholes equation in finance).\n",
"\n",
"*Schrödinger equation:*\n",
"\n",
"\\begin{align}\n",
" i \\hbar \\frac{\\partial \\Psi}{\\partial t} = \\hat{H} \\Psi\n",
"\\end{align}\n",
"\n",
"where $\\hat{H}$ is the *Hamiltonian* and $\\Psi$ is the *wave function* representing the distribution of electrons in a quantum system. \n",
"\n",
"*Wave equation:*\n",
"\n",
"\\begin{align}\n",
" u_{tt} - \\Delta u = 0.\n",
"\\end{align}\n",
"\n",
"So far, we have only seen linear equations (the equations are linear in $u$ and it's derivatives). Nonlinear equations are also of importance in many fields:\n",
"\n",
"*Minimal surfaces:*\n",
"\n",
"\\begin{align}\n",
" \\nabla \\cdot \\left( \\frac{\\nabla u}{\\sqrt{1 + |\\nabla u|^2}} \\right) = 0.\n",
"\\end{align}\n",
"\n",
"This equation describes surfaces with zero mean curvature - this is the shape of soap films stretched across a wire boundary. Here, $\\nabla \\cdot v := \\sum_{i=1}^d \\frac{\\partial v_{i}}{\\partial x_i}$ is the *divergence* of $v$. \n",
"\n",
"*Monge-Ampère equation:*\n",
"\n",
"\\begin{align}\n",
" \\det D^2 u = f.\n",
"\\end{align}\n",
"\n",
"Here, $D^2 u := (u_{x_i x_j})_{i,j=1}^n$ denotes the *Hessian*. This equation arises in optimal transport (moving mass efficiently), differential geometry (prescribing the Gauss curvature of a surface), and meteorology.\n",
"\n",
"*Burgers':*\n",
"\n",
"\\begin{align}\n",
" u_t + (u \\cdot \\nabla) u = \\nu \\Delta u\n",
"\\end{align}\n",
"\n",
"($\\nu=0$: inviscid Burgers')\n",
"\n",
"*Korteweg-de Vries (KdV):*\n",
"\n",
"\\begin{align}\n",
" u_t + 6 u u_x + u_{xxx} = 0\n",
"\\end{align}\n",
"\n",
"Waves in shallow water.\n",
"\n",
"In this course, we will look at *linear PDEs* which can be categorised as Elliptic, Parabolic, or Hyperbolic: consider the general linear equation \n",
"\n",
"\\begin{align}\n",
" A u_{\\xi\\xi} + B u_{\\xi\\zeta} + C u_{\\zeta\\zeta} + \\mathrm{l.o.t} =0\n",
"\\end{align}\n",
"\n",
"where $\\mathrm{l.o.t}$ represents \"lower order terms\" (functions involving derivatives of lower order). Here, we are thinking of either $(\\xi,\\zeta) = (x,t)$ (one spatial dimension) or $(\\xi, \\zeta) = (x,y)$ (two spatial dimensions and no time dependence). To this equation, we may assign the conic section $A \\xi^2 + B \\xi \\zeta + C \\zeta^2 = 0$. The equation is classed as Elliptic, Parabolic, or Hyperbolic if the corresponding conic section is Elliptic, Parabolic, or Hyperbolic, respectively. That is, \n",
"\n",
"\\begin{align}\n",
" &B^2 - 4AC < 0 &&\\text{Elliptic} \\\\\n",
" &B^2 - 4AC = 0 &&\\text{Parabolic} \\\\\n",
" &B^2 - 4AC > 0 &&\\text{Hyperbolic}\n",
"\\end{align}\n",
"\n",
"Roughly speaking, Elliptic equations describe steady-state systems, Parabolic equations describe diffusion (systems that evolve towards equilibrium), and Hyperbolic equations describe wave propagation. \n",
"\n",
"::: {#exr-}\n",
"\n",
"Show that Laplace's equation (in 2d) is Elliptic, the wave equation is Hyperbolic, and the heat equation is Parabolic\n",
"\n",
":::"
]
},
{
"cell_type": "markdown",
"id": "ee16dc71",
"metadata": {},
"source": [
"## Laplace equation (Elliptic)\n",
"\n",
"See presentation on finite differences for Laplace equation in 2d."
]
},
{
"cell_type": "markdown",
"id": "9c51387e",
"metadata": {},
"source": [
"## Transport/advection equation (Hyperbolic)\n",
"\n",
"The simplest possible equation of hyperbolic type is the linear transport equation with constant coefficient:\n",
"\n",
"\\begin{align}\n",
" & u_t + b \\cdot \\nabla u = 0 \\nonumber\\\\\n",
" & u(x,0) = u_0(x).\n",
"\\end{align}\n",
"\n",
"::: {.callout-note}\n",
"\n",
"We use the notation $\\nabla u$ for the vector of first derivatives with respect to the spatial dimensions: $(\\nabla u)_i = u_{x_i} = \\frac{\\partial u}{\\partial x_i} = \\partial_{x_i} u = \\partial_i u = \\cdots$. The dot is the Euclidean dot product so that $b \\cdot \\nabla u := \\sum_{i=1}^d b_i u_{x_i}$.\n",
"\n",
":::\n",
"\n",
"::: {#exr-}\n",
"\n",
"Show that $u(x,t) := u_0(x - bt)$ is a solution.\n",
"\n",
"::: \n",
"\n",
"***Answer.*** You can show this directly but here we look at a more general method.\n",
"\n",
"We will use the so-called *method of characteristics* - the idea is to reduce the PDE to a system of ODEs by trying to parametrise the solution as $z(s) := u\\big( x(s), t(s) \\big)$ where $x(0) = \\xi$ and $t(0) = 0$. Then, $z$ satisfies the ODE:\n",
"\n",
"\\begin{align}\n",
" z(0) &= u( \\xi, 0 ) = u_0(\\xi) \\nonumber\\\\\n",
" z'(s) &= t'(s) u_t\\big( x(s), t(s) \\big) + x'(s) \\cdot \\nabla u\\big(x(s),t(s)\\big)\n",
"\\end{align} \n",
"\n",
"Here, we have applied the chain rule. Therefore, if \n",
"\n",
"\\begin{align}\n",
" &t(0) = 0, &&t'(s) = 1 \\nonumber\\\\\n",
" &x(0) = \\xi &&x'(s) = b\n",
"\\end{align}\n",
"\n",
"(these are known as the *characteristic equations*), then $z'(s) = 0$ and $z(s)$ is constant (and equal to $z(0) = u_0(\\xi)$). The solution to the characteristic equations are given by $x(s) = \\xi + sb$ and $t(s) = s$, and so $z(s) = u(\\xi + sb, s) = u_0(\\xi) = z(0)$ and thus $u(x,t) = u_0(x-tb)$. $\\square$\n",
"\n",
"We have also shown that for the linear transport equation, the solution is constant along the characteristic curves $(\\xi+sb, s)$:"
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "fcfa9e07",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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",
"image/svg+xml": [
"\n",
"\n"
],
"text/html": [
"
"
]
},
"execution_count": 2,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# | echo: false\n",
"\n",
"b = 1.\n",
"P = plot(xlabel=L\"x\", ylabel=L\"t\", \n",
" title=\"characteristic curves for linear transport equation\")\n",
"for ξ ∈ -1:.1:1 \n",
" scatter!( [ξ], [0], primary=false )\n",
" plot!( ξ.+b.*[0,1], [0,1], primary=false, xlims=(-1,1))\n",
"end\n",
"P"
]
},
{
"cell_type": "markdown",
"id": "5170226b",
"metadata": {},
"source": [
"Here, we look at what these solutions do: "
]
},
{
"cell_type": "code",
"execution_count": 3,
"id": "b3e12af3",
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"\u001b[36m\u001b[1m[ \u001b[22m\u001b[39m\u001b[36m\u001b[1mInfo: \u001b[22m\u001b[39mSaved animation to c:\\Users\\math5\\Math 5485\\Math5486\\pics\\transport-1.gif\n"
]
},
{
"data": {
"text/html": [
"
"
],
"text/plain": [
"Plots.AnimatedGif(\"c:\\\\Users\\\\math5\\\\Math 5485\\\\Math5486\\\\pics\\\\transport-1.gif\")"
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# | echo: false\n",
" \n",
"u0(x) = exp(-x^2)\n",
"τ=0.1\n",
"t = 0:τ:10\n",
"\n",
"anim = @animate for j ∈ 1:length(t)\n",
" b = -1.\n",
" plot( x->u0(x-b*t[j]); \n",
" ylims=[0,1],\n",
" legend_title=\"t = $(t[j])\", legend=:topleft,\n",
" title = L\"Transport equation $u_t + b u_{x} = 0$\",\n",
" label = \"b = $b\")\n",
" b = 0.\n",
" plot!( x->u0(x-b*t[j]); label = \"b = $b\")\n",
" b = 1.\n",
" plot!( x->u0(x-b*t[j]); label = \"b = $b\")\n",
"end\n",
"gif(anim, \"pics/transport-1.gif\")\n"
]
},
{
"cell_type": "markdown",
"id": "ec91134f",
"metadata": {},
"source": [
"Inhomogeneous equation: \n",
"\n",
"\\begin{align}\n",
" & u_t + b \\cdot \\nabla u = f \\nonumber\\\\\n",
" & u(x,0) = u_0(x)\n",
"\\end{align}\n",
"\n",
"::: {#exr-}\n",
"\n",
"Write down an integral form of the solution to this equation. \n",
"\n",
":::"
]
},
{
"cell_type": "markdown",
"id": "dd74055c",
"metadata": {},
"source": [
"Transport with decay: take $\\mu > 0$ and consider\n",
"\n",
"\\begin{align}\n",
" &u_t + b \\cdot \\nabla u + \\mu u = 0\\nonumber\\\\\n",
" &u(x,0) = u_0(x)\n",
"\\end{align}\n",
"\n",
"::: {#exr-}\n",
"\n",
"Applying the exact same argument as before, we find that $z'(s) + a z(s) = 0$ (where $z(s) = u(\\xi + sb, s)$). Use the integrating factor to conclude that the exact solution is \n",
"\n",
"\\begin{align}\n",
" u(x,t) = u_0(x-bt) e^{-\\mu t}\n",
"\\end{align}"
]
},
{
"cell_type": "code",
"execution_count": 4,
"id": "43f71d3d",
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"\u001b[36m\u001b[1m[ \u001b[22m\u001b[39m\u001b[36m\u001b[1mInfo: \u001b[22m\u001b[39mSaved animation to c:\\Users\\math5\\Math 5485\\Math5486\\pics\\transport-2.gif\n"
]
},
{
"data": {
"text/html": [
"
"
],
"text/plain": [
"Plots.AnimatedGif(\"c:\\\\Users\\\\math5\\\\Math 5485\\\\Math5486\\\\pics\\\\transport-2.gif\")"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# | echo: false\n",
"\n",
"μ = .25\n",
"u0(x) = exp(-x^2)\n",
"τ=0.1\n",
"t = 0:τ:10\n",
"\n",
"anim = @animate for j ∈ 1:length(t)\n",
" b = -1.\n",
" plot( x->u0(x-b*t[j])*exp(-μ*t[j]); \n",
" ylims=[0,1],\n",
" legend_title=\"t = $(t[j])\", legend=:topleft,\n",
" title = L\"Transport equation $u_t + b u_{x} + μ u = 0$\",\n",
" label = \"b = $b\")\n",
" b = 0.\n",
" plot!( x->u0(x-b*t[j])*exp(-μ*t[j]); label = \"b = $b\")\n",
" b = 1.\n",
" plot!( x->u0(x-b*t[j])*exp(-μ*t[j]); label = \"b = $b\")\n",
"end\n",
"gif(anim, \"pics/transport-2.gif\")\n"
]
},
{
"cell_type": "markdown",
"id": "837ed44d",
"metadata": {},
"source": [
":::"
]
},
{
"cell_type": "markdown",
"id": "7aec19ff",
"metadata": {},
"source": [
"## Heat equation (Parabolic)\n",
"\n",
"The *heat equation* (or the *diffusion equation*) is \n",
"\n",
"\\begin{align}\n",
" u_t - \\alpha^2 \\Delta u = f\n",
"\\end{align}\n",
"\n",
"This models e.g. how temperature density $u$ distributes (diffuses) accross a domain $\\Omega \\subset \\mathbb R^d$. Here, $\\alpha^2$ is the thermal diffusivity. \n",
"\n",
"::: {#exr-}\n",
"\n",
"Take $d = 1$. Explain why the term $-\\alpha^2 u''$ makes the solution \"smooth out\" (diffuses) over time. \n",
"\n",
":::\n",
"\n",
"::: {#exr-}\n",
"\n",
"Consider the equation\n",
"\n",
"\\begin{align}\n",
" &u_t - \\alpha^2 u_{xx} = 0 \\qquad \\text{on }(0,1)\\nonumber\\\\\n",
" \\tag{IC} &u(x,0) = \\sin \\pi x \\nonumber\\\\\n",
" \\tag{BC} &u(0,t) = u(1,t) = 0.\n",
"\\end{align}\n",
"\n",
"* Show that $u(x,t) = e^{-\\pi^2 t} \\sin \\pi x$ is a solution to this equation. \n",
"\n",
"::: \n",
"\n",
"Here, we look at a finite difference implementation of this equation:"
]
},
{
"cell_type": "code",
"execution_count": 5,
"id": "447761b8",
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"\u001b[36m\u001b[1m[ \u001b[22m\u001b[39m\u001b[36m\u001b[1mInfo: \u001b[22m\u001b[39mSaved animation to c:\\Users\\math5\\Math 5485\\Math5486\\pics\\heat-1.gif\n"
]
},
{
"data": {
"text/html": [
"
"
],
"text/plain": [
"Plots.AnimatedGif(\"c:\\\\Users\\\\math5\\\\Math 5485\\\\Math5486\\\\pics\\\\heat-1.gif\")"
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"function fdm_heat( m, n, α, u0; a=0., b=1., f=0., g_a = 0., g_b = 0., T=.2, warn=true )\n",
" # space discretisation\n",
" h = (b-a)/m\n",
" x = collect(a:h:b)\n",
"\n",
" # time discretisation\n",
" τ = T/n \n",
" t = collect(0:τ:T)\n",
"\n",
" c = τ*(α/h)^2\n",
" if ((c > 1/2) && (warn))\n",
" @warn \"c = $c, unstable!\"\n",
" end\n",
"\n",
" u = zeros( m+1, n+1 )\n",
" u[:,1] = u0.(x)\n",
"\n",
" # boundary condition @ t=0\n",
" u[1,1] = typeof(g_a) <: Function ? g_a(t[1]) : g_a\n",
" u[m+1,1] = typeof(g_b) <: Function ? g_b(t[1]) : g_b\n",
" for j ∈ 1:n\n",
" for i ∈ 2:m\n",
" source = typeof(f) <: Function ? f(x[i],t[j]) : f\n",
" u[i,j+1] = u[i,j] + c * (u[i-1,j]-2u[i,j]+u[i+1,j]) + τ*source\n",
" end\n",
" u[1,j+1] = typeof(g_a) <: Function ? g_a(t[j+1]) : g_a\n",
" u[m+1,j+1] = typeof(g_b) <: Function ? g_b(t[j+1]) : g_b\n",
" end\n",
"\n",
" return x,t,u\n",
"end\n",
"\n",
"# initial condition\n",
"u0(x) = sin(π*x) \n",
"# exact solution\n",
"u_e(x,t) = exp( -(π^2) * t ) * sin( π*x )\n",
"x,t,u = fdm_heat(50, 1000, 1., u0)\n",
"\n",
"anim = @animate for j ∈ 1:10:length(t)\n",
" scatter(x, u[:, j]; \n",
" title = L\"Heat equation $u_t - u_{xx} = 0$\",\n",
" label = \"t = $(t[j])\", \n",
" ylims = [0,1], m=2)\n",
" plot!( x->u_e(x,t[j]); \n",
" label=\"exact solution\", linestyle=:dot)\n",
"end\n",
"gif(anim, \"pics/heat-1.gif\")\n"
]
},
{
"cell_type": "markdown",
"id": "4dedc99b",
"metadata": {},
"source": [
"Here, we run the same code with different mesh sizes:"
]
},
{
"cell_type": "code",
"execution_count": 6,
"id": "4315e298",
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"\u001b[33m\u001b[1m┌ \u001b[22m\u001b[39m\u001b[33m\u001b[1mWarning: \u001b[22m\u001b[39mc = 0.7200000000000001, unstable!\n",
"\u001b[33m\u001b[1m└ \u001b[22m\u001b[39m\u001b[90m@ Main In[5]:12\u001b[39m\n",
"\u001b[36m\u001b[1m[ \u001b[22m\u001b[39m\u001b[36m\u001b[1mInfo: \u001b[22m\u001b[39mSaved animation to c:\\Users\\math5\\Math 5485\\Math5486\\pics\\heat-2.gif\n"
]
},
{
"data": {
"text/html": [
"