Boundary Value Problems
Before we introduce an important solution method for PDEs in section 7.3, we consider an ordinary
differential equation that will arise in that method when dealing with a
single spatial dimension
This problem has nontrivial solutions, called eigenfunctions
There exist an infinite number of eigenfunctions
(unique within a multiplicative constant)There exists a unique corresponding real eigenvalue
for each eigenfunctionThe eigenvalues can be ordered as
Eigenfunction
has zeros on open intervalThe eigenfunctions
form an orthogonal basis with respect to weighting function such that any piecewise continuous function can be represented by a generalized fourier series on
This last theorem will be of particular interest in section 7.3.
Types of boundary conditions
Boundary conditions of the sturm-liouville kind eq. ¿eq:s_l_bcs? have four sub-types:
- Dirichlet
-
for just
, - Neumann
-
for just
, - Robin
-
for all
, and - Mixed
-
if
, ; if , .
There are many problems that are not regular sturm-liouville
problems. For instance, the right-hand sides of
eq. ¿eq:s_l_bcs? are zero, making them homogeneous boundary conditions; however, these
can also be nonzero. Another case is periodic
boundary conditions:
Consider the differential equation
This is a sturm-liouville problem, so we know the eigenvalues are
real. The well-known general solution to the ODE is
Plotting the eigenfunctions
import numpy as np
import matplotlib.pyplot as plt
Set L = 1 and compute
values for the first four eigenvalues lambda_n
and eigenfunctions X_n
.
= 1
L = np.linspace(0, L, 100)
x = np.linspace(1, 4, 4, dtype=int)
n = (n*np.pi/L)**2
lambda_n = np.zeros([len(n), len(x)])
X_n for i,n_i in enumerate(n):
= np.sin(np.sqrt(lambda_n[i])*x) X_n[i, :]
Plot the eigenfunctions.
= plt.subplots()
fig, ax for i, n_i in enumerate(n):
=2,label='$n = '+str(n_i)+'$')
ax.plot(x, X_n[i,:], linewidth
plt.legend() plt.show()
We see that the fourth of the S-L theorems appears true: n − 1 zeros of Xn exist on the open interval (0,1).
Irregular Sturm-Liouville problems
Sturm-Liouville problems that do not satisfy the regularity conditions are called irregular. The nice theorems for regular S-L problems may not hold for irregular S-L problems. However, we can often still solve irregular S-L problems using the same methods as for regular problems.
Consider the ODE called Bessel’s equation [@kreyszig2011, § 5.4], for real independent variable s and dependent variable y(s), s2y″ + sy′ + (s2−ν2)y = 0. This ODE arises in polar coordinate PDE models of circular membranes, where y is the membrane displacement and s = kr, and where r is the radius of the membrane and k is a constant sometimes called the wavenumber.
Consider the following boundary conditions:
- At radius r = R, the membrane is fixed, so y = 0.
- At radius r = 0, the membrane is free to move, but the displacement is finite, so |y| < ∞.
Prove that the Bessel equation is an irregular Sturm-Liouville problem and solve for the eigenvalues and eigenfunctions for the case ν = 0.
We proceed to show that the Bessel equation with the given boundary
conditions is an irregular Sturm-Liouville problem by first showing that
the Bessel equation can be written in the form of a Sturm-Liouville
problem ODE, then showing that the boundary conditions are not regular.
Dividing the Bessel equation by s gives
Now let us consider the boundary conditions. The second boundary condition cannot be written as a linear combination of y and y′ at s = 0, therefore this is an irregular Sturm-Liouville problem.
Solutions for Bessel’s equation are Bessel functions of the first
kind, Jν(s)
(section 6.4), and Bessel functions of the second
kind, Yν(s)
[@kreyszig2011,§ 5.5]. For ν = 0, the Bessel equation
simplifies to s2y″ + sy′ + s2y = 0
and the solutions are zeroth-order Bessel functions of the first kind,
J0(s), and
of the second kind, Y0(s). That is,
the general solution is y(s) = aJ0(s) + bY0(s).
However, Y0(s) is
singular at s = 0, so the
boundary condition |y(0)| < ∞ requires b = 0. Therefore, the eigenfunctions
are yn(s) = J0(s) = J0(knr)
for eigenvalues λn = kn2
and n ∈ ℤ+. On the
boundary, yn(kR) = 0
implies that knR are
the zeros of J0(s), what we
called α0, n in example. Therefore, the eigenvalues are
Plotting the eigenfunctions
We proceed in Python. First, load packages.
import numpy as np
import sympy as sp
import scipy
from scipy.special import jn_zeros
import matplotlib.pyplot as plt
The eigenvalues can be computed from the zeros of the Bessel function zeros α0, n, where n = 1, 2, 3, … as follows:
= sp.symbols('n', integer=True, positive=True)
n = sp.symbols('k, R', positive=True, real=True)
k, R = sp.symbols('r', nonnegative=True)
r = sp.besselj(0, k * r)
J_0 = 5
N_zeros = jn_zeros(0, N_zeros)
alpha_0_n = {R: 1} # Set R = 1
params = (alpha_0_n / params[R])**2
lambda_n_ print(f"The first {N_zeros} eigenvalues are:")
print(lambda_n_)
The first 5 eigenvalues are:
[ 5.78318596 30.47126234 74.88700679 139.04028443 222.93230362]
The eigenfunctions are given by the Bessel functions of the first kind J0(knr).
def k_n(lambda_n): return np.sqrt(lambda_n)
= k_n(lambda_n_) k_n_
Plot the eigenfunctions.
= np.linspace(0, 1, 101)
r_plt print(J_0)
= sp.lambdify((r, k), J_0, modules=['numpy', 'scipy'])
y_n_fun = plt.subplots()
fig, ax for i in range(5):
= k_n_[i]
k_i =f'$y_{i+1}(k_{i+1} r)$')
ax.plot(r_plt, y_n_fun(r_plt, k_i), label'bottom'].set_position('zero')
ax.spines['left'].set_position('zero')
ax.spines['$r$')
ax.set_xlabel('Eigenfunctions $y_n(k_n r)$')
ax.set_ylabel(
ax.legend() plt.show()
The plot shows the eigenfunctions yn(knr) for the first few eigenvalues. Note that the boundary conditions are satisfied and that the eigenfunctions appear to be radial modes of vibration for a circular membrane.
For the S-L problem to be regular, it has the additional constraints that
are continuous and on . This is also sometimes called the sturm-liouville eigenvalue problem. See Haberman (2018, sec. 5.3) for the more general (non-regular) S-L problem and Haberman (2018, sec. 7.4) for the multi-dimensional analog.↩︎These eigenvalues are closely related to, but distinct from, the “eigenvalues” that arise in systems of linear ODEs.↩︎
Online Resources for Section 7.2
No online resources.