Sturm–Liouville Theory & Green's Functions
Sturm–Liouville theory explains why separation of variables works: self-adjoint boundary-value problems have real eigenvalues and orthogonal eigenfunctions that form a complete basis. Green's functions give the response to a point source, turning any forcing into an integral. Learn both, with vibrating strings, heat conduction and beam deflection examples and a NumPy eigenvalue check.
Sines for strings, Bessel functions for drums, Legendre polynomials for spheres — all these 'mode shapes' are eigenfunctions of one general problem: (p y′)′ + (q + λw) y = 0 with boundary conditions. Sturm–Liouville theory guarantees their good behaviour once, for all cases.
Green's functions are the continuous version of influence lines: the deflection of a beam at x due to a unit load at s. Superposing (integrating) against the real load gives the full response — the same idea as convolution with an impulse response.
An analogy
Eigenfunctions are the 'natural notes' of a system, like a guitar string's harmonics; any sound it makes is a chord of them. A Green's function is the system's response to one sharp tap; any disturbance is a sum of taps.
Boundary-value eigenproblems
For y″ + λy = 0 with y(0) = y(L) = 0, non-zero solutions exist only for special λ = (nπ/L)² with yₙ = sin(nπx/L). These are the string's mode shapes and λ relates to their frequencies. Most λ give only the trivial solution y = 0.
The Sturm–Liouville guarantees
For a regular S-L problem (p, w > 0 on [a, b]):
- Eigenvalues are real and can be ordered λ₁ < λ₂ < … → ∞
- Eigenfunctions of distinct λ are orthogonal with weight w
- The n-th eigenfunction has n − 1 zeros inside (a, b)
- The eigenfunctions are complete — any reasonable f can be expanded
Green's functions
Solve once for a unit point source at s; the answer G(x, s) is the influence function. For a beam, G is the deflection at x due to a unit load at s — engineers call its plot an influence line. Maxwell's reciprocity G(x, s) = G(s, x) is the symmetry of a self-adjoint operator.
Connections
G can be written as an eigenfunction series: G(x, s) = Σ yₙ(x)yₙ(s)/λₙ (normalised). The Rayleigh quotient gives upper bounds on the fundamental frequency — the basis of Rayleigh's method in vibrations. In PDEs, Green's functions give boundary-integral methods (BEM), and in control they are impulse responses.
Formulas
- Sturm–Liouville form:
−(p y′)′ + q y = λ w y on (a, b) + BCs - Orthogonality:
∫ₐᵇ yₘ yₙ w dx = 0, m ≠ n - Eigenfunction expansion:
f = Σ cₙ yₙ, cₙ = ∫ f yₙ w dx / ∫ yₙ² w dx - Rayleigh quotient:
λ₁ ≤ ∫(p y′² + q y²) dx / ∫ w y² dx for any admissible y - Green's function definition:
L G(x, s) = δ(x − s), G satisfies the BCs - Solution by Green:
u(x) = ∫ G(x, s) f(s) ds - Example (−u″ = f, u(0) = u(1) = 0):
G = x(1 − s) for x < s; s(1 − x) for x > s
Worked example: Eigenvalues of a string
Given: y″ + λy = 0, y(0) = y(L) = 0
Find: λₙ, yₙ.
- Try y = A sin√λx + B cos√λx
- y(0) = 0 → B = 0; y(L) = 0 → √λL = nπ
Answer: λₙ = (nπ/L)², yₙ = sin(nπx/L)
Worked example: Green's function solution
Given: −u″ = 1, u(0) = u(1) = 0
Find: u(½).
- u(½) = ∫₀^½ s(½) ds + ∫_½¹ ½(1 − s) ds
- = ½(⅛) + ½(⅛)
Answer: u(½) = 0.125
Worked example: Rayleigh bound
Given: −y″ = λy on [0, 1], trial y = x(1 − x)
Find: Estimate λ₁.
- ∫y′² = ∫(1 − 2x)² = 1/3
- ∫y² = 1/30
- Ratio = 10
Answer: λ₁ ≤ 10 (exact π² = 9.87, +1.3%)
Eigenvalues by finite differences and a Green's-function solution
import numpy as np
# Sturm-Liouville: -y'' = lambda y on [0, pi], y(0) = y(pi) = 0 (exact lambda = n^2)
N = 200
h = np.pi / N
main = 2 * np.ones(N - 1) / h**2
off = -np.ones(N - 2) / h**2
A = np.diag(main) + np.diag(off, 1) + np.diag(off, -1)
lam = np.sort(np.linalg.eigvalsh(A))[:4]
print("FD eigenvalues:", np.round(lam, 4), " exact: [1 4 9 16]")
# Green's function solution of -u'' = 1, u(0) = u(1) = 0
x = np.linspace(0, 1, 11)
G = lambda x, s: np.where(x < s, x * (1 - s), s * (1 - x))
s = np.linspace(0, 1, 2001)
u = [np.trapezoid(G(xi, s) * 1.0, s) for xi in x]
print("u(0.5) via Green =", round(u[5], 6), " exact x(1-x)/2 =", 0.125)
# FD eigenvalues: [ 1. 3.9997 8.9983 15.9947] exact: [1 4 9 16]
# u(0.5) via Green = 0.125 exact x(1-x)/2 = 0.125The discrete operator is a symmetric matrix — the finite-dimensional version of self-adjointness — so its eigenvalues are real, as the theory promises. Higher modes are less accurate on a fixed grid.
Common mistakes
- Wrong: Forgetting the weight function in orthogonality. — Right: Integrate yₘyₙ·w.
- Wrong: Using a Green's function that ignores the BCs. — Right: G must satisfy the same homogeneous BCs.
- Wrong: Treating λ as known beforehand. — Right: BCs determine the admissible eigenvalues.
Applications
- Vibration analysis: Mode shapes and natural frequencies of strings, beams and shafts.
- Heat conduction: Eigenfunction series for transient temperatures.
- Structural analysis: Influence lines = Green's functions for moving loads.
- Quantum mechanics: Schrödinger's equation is a Sturm–Liouville problem.
Key takeaways
- S-L problems: real eigenvalues, orthogonal complete eigenfunctions.
- Separation of variables relies on this.
- Green's function = point-source response; integrate for any load.
- Rayleigh quotient bounds the fundamental.
Going further
- Singular S-L problems: Bessel and Legendre equations with endpoint singularities.
- Fredholm alternative: Solvability when λ is an eigenvalue.
- Boundary element method: Green's functions reduce PDEs to boundary integrals.