The Three Classical Equations

Pdes

The whole theory of linear second-order PDEs in two variables splits neatly into THREE classes — elliptic, parabolic, hyperbolic — and the three classical equations (Laplace), (heat), and (wave) are the canonical representatives. Their solutions behave so differently that ELLIPTIC, PARABOLIC, and HYPERBOLIC name not just an algebraic test but distinct families of physical and mathematical phenomena. Once you know what type your equation is, the analytical tools, the numerical methods, and the qualitative behavior you should expect all follow.

The taxonomy

Consider a general second-order linear PDE in two variables:

The DISCRIMINANT classifies the equation:

Why this matters: the type determines what BOUNDARY conditions are well-posed, what NUMERICAL METHOD will be stable, and what QUALITATIVE behavior the solution exhibits. Mixing them up — e.g., posing a "Cauchy problem" with initial data on a curve where the equation is elliptic — gives an ILL-POSED problem in the Hadamard sense: small data perturbations produce arbitrarily large solution changes. Hadamard's classical example was solving Laplace's equation as if it were a Cauchy problem; you can write down a sequence of analytic solutions whose data goes to zero while the solutions blow up.

The three model problems

Each canonical equation comes packaged with its own physical interpretation, well-posed problem statement, and dominant phenomenon.

Laplace's equation (elliptic): equilibrium

Steady-state of diffusion; gravitational and electrostatic potentials in source-free regions; incompressible inviscid potential flow; the imaginary part of a holomorphic function. Solutions are HARMONIC FUNCTIONS — infinitely smooth in the interior (analyticity follows from the mean-value property), satisfy the MAXIMUM PRINCIPLE (interior values are bounded by boundary values), and are uniquely determined by Dirichlet data on a connected boundary.

The mean-value property is the cleanest statement: for a harmonic , the value at any interior point equals the average over any ball centred there. Smoothness, the maximum principle, and uniqueness all follow from this single fact.

The heat equation (parabolic): smoothing and time-asymmetry

Initial-boundary value problem: specify the initial profile and the boundary behavior, and the equation evolves the solution forward in time. THREE defining features.

Infinite propagation speed. The Green's function for the heat equation on is the Gaussian heat kernel

which is nonzero everywhere for any . A localised initial perturbation INSTANTLY influences the solution at every point in space, even though the influence is exponentially small far away. This is non-relativistic and acceptable for the model's physical regime but should be remembered: the heat equation is an approximation that fails at relativistic length / time scales.

Smoothing. Even discontinuous initial data become instantly for . Mathematically: the high-frequency Fourier modes of get damped by , which kills them faster than any polynomial decay rate. Discontinuities in the initial data don't persist; physically this matches the diffusive intuition.

Time-asymmetry. The heat equation is irreversible. Run it backwards () and high-frequency modes grow exponentially; backwards heat is ill-posed. This breaks symmetry of the underlying Newtonian physics, reflecting the second law of thermodynamics encoded at the PDE level: forward in time, entropy increases (the solution becomes more spread out and less informative).

The wave equation (hyperbolic): propagation

Two initial conditions are needed because the equation is second-order in time. The 1D solution on the whole real line has D'Alembert's beautiful closed form:

Three defining features.

Finite propagation speed. The solution at depends only on initial data in the DOMAIN OF DEPENDENCE . Data outside this interval cannot affect . This is the relativistic structure built into the equation: information propagates at speed .

Singularities persist. If has a kink or jump, that kink propagates forward in time along the characteristics . No smoothing. The wave equation is reversible: swaps left- and right-moving waves but doesn't lose information.

Energy conservation. Define the energy . Differentiating in time and integrating by parts (with appropriate boundary terms) gives . The wave equation has a CONSERVATION LAW, in contrast to the heat equation's monotone decay.

Side-by-side numerical demonstration

The three behaviors are most striking when you watch them on the same initial condition. Start with a piecewise-linear hat (which has a discontinuous derivative at ) on with zero boundary values, and evolve each equation.

# Heat, wave, and Laplace on [0, 1] — side by side.
# Same initial condition (a piecewise-linear hat) and zero boundary values
# for the time-dependent equations; show how qualitatively different the
# three solutions are.

import numpy as np

N  = 81
x  = np.linspace(0, 1, N)
dx = x[1] - x[0]

# Initial bump for heat and wave: continuous, but with a kink at x = 0.5
u0 = np.maximum(0, 0.5 - np.abs(x - 0.5))
u0[0] = u0[-1] = 0.0

# ─── Heat: u_t = alpha u_xx, Dirichlet BCs ──────────────────────────────
# Explicit FTCS: stability r = alpha dt / dx^2 <= 1/2.
def heat_solve(u_init, T, alpha=1.0, r=0.4):
    dt = r * dx**2 / alpha
    nsteps = int(np.ceil(T / dt))
    dt = T / nsteps
    r  = alpha * dt / dx**2
    u  = u_init.copy()
    for _ in range(nsteps):
        u_new = u.copy()
        u_new[1:-1] = u[1:-1] + r * (u[2:] - 2*u[1:-1] + u[:-2])
        u_new[0] = u_new[-1] = 0.0
        u = u_new
    return u

# ─── Wave: u_tt = c^2 u_xx, Dirichlet BCs ──────────────────────────────
# Leapfrog with CFL: c dt / dx <= 1. Released from rest (u_t = 0 at t=0).
def wave_solve(u_init, T, c=1.0, cfl=0.9):
    dt = cfl * dx / c
    nsteps = int(np.ceil(T / dt))
    dt = T / nsteps
    r2 = (c * dt / dx)**2
    u_prev = u_init.copy()
    u = u_init.copy()
    u[1:-1] = u_prev[1:-1] + 0.5 * r2 * (u_prev[2:] - 2*u_prev[1:-1] + u_prev[:-2])
    u[0] = u[-1] = 0.0
    for _ in range(nsteps - 1):
        u_new = 2*u - u_prev
        u_new[1:-1] += r2 * (u[2:] - 2*u[1:-1] + u[:-2])
        u_new[0] = u_new[-1] = 0.0
        u_prev = u
        u = u_new
    return u

# ─── Laplace: u'' = 0, Dirichlet BCs u(0)=0, u(1)=1 ─────────────────────
# Analytical: u(x) = x. We verify the FD solution recovers this exactly.
def laplace_solve():
    A = (np.diag(-2*np.ones(N-2)) + np.diag(np.ones(N-3), 1)
         + np.diag(np.ones(N-3), -1))
    rhs = np.zeros(N - 2); rhs[-1] = -1.0
    u_int = np.linalg.solve(A, rhs)
    u = np.zeros(N); u[1:-1] = u_int; u[-1] = 1.0
    return u

print(f"Initial bump:           max u = {u0.max():.4f}, kink at x = 0.5")
print()
print(f"HEAT (smoothing, monotone in time):")
print(f"  t = 0.005:  max u = {heat_solve(u0, 0.005).max():.4f}  (peak smoothed)")
print(f"  t = 0.050:  max u = {heat_solve(u0, 0.05).max():.4f}   (heavily diffused)")
print()
u_w = wave_solve(u0, 0.4)
print(f"WAVE (propagation at finite speed):")
print(f"  t = 0.4:  u(x=0.5) = {u_w[N//2]:.4f}  (pulse split, centre near zero)")
print(f"            u(x=0.1) = {u_w[8]:.4f}  (left-moving pulse arrived)")
print(f"            u(x=0.9) = {u_w[72]:.4f}  (right-moving pulse arrived)")
print()
u_L = laplace_solve()
print(f"LAPLACE (equilibrium, harmonic):")
print(f"  u(x=0.5) = {u_L[N//2]:.4f}  (analytical: 0.5)")
print(f"  ||u - x||_inf = {np.max(np.abs(u_L - x)):.2e}  (machine precision)")

Output:

Initial bump:           max u = 0.5000, kink at x = 0.5

HEAT (smoothing, monotone in time):
  t = 0.005:  max u = 0.4202  (peak smoothed)
  t = 0.050:  max u = 0.2480   (heavily diffused)

WAVE (propagation at finite speed):
  t = 0.4:  u(x=0.5) = 0.0996  (pulse split, centre near zero)
            u(x=0.1) = 0.0972  (left-moving pulse arrived)
            u(x=0.9) = 0.0972  (right-moving pulse arrived)

LAPLACE (equilibrium, harmonic):
  u(x=0.5) = 0.5000  (analytical: 0.5)
  ||u - x||_inf = 2.55e-15  (machine precision)

Read the three behaviors. (1) Heat smooths and decays. The peak drops from 0.50 at to 0.42 at to 0.25 at . The kink at is gone almost immediately. (2) Wave splits and propagates. The initial bump is the superposition of a left-moving and a right-moving copy, each at half-amplitude (D'Alembert). At , the left-moving pulse has arrived near and the right-moving one near , with values ~0.097 (essentially half of the original 0.25 hat-peak at half-amplitude — the centre at has been emptied). (3) Laplace finds the equilibrium. No time evolution; the solution is harmonic, monotone between the boundary values, and finite differences recover it to machine precision because is exactly representable.

What this implies for numerics

The PDE type dictates the natural numerical strategy.

Related