Chapter 27
28 min read
Section 230 of 353

Wave Equation in 2D: Membranes

The Wave Equation

Learning Objectives

By the end of this section, you will be able to:

  1. Derive the 2D wave equation for a vibrating membrane and understand each term physically
  2. Apply separation of variables to transform the 2D wave PDE into three independent ODEs
  3. Compute the eigenvalues λmn\lambda_{mn} and natural frequencies ωmn\omega_{mn} for rectangular membranes
  4. Construct the general solution as a double Fourier series with oscillatory (not decaying) time behavior
  5. Explain mode degeneracy and Chladni patterns as observable consequences of the mathematics
  6. Extend the theory to circular membranes using Bessel functions
  7. Connect 2D wave analysis to modern applications in acoustics, engineering, and machine learning

The Big Picture: Vibrations in Two Dimensions

"The vibrations of a drumhead contain the entire physics of wave propagation in two dimensions — every frequency, every pattern, every principle of superposition, all visible in the motion of a stretched membrane."

In the previous sections, we studied the 1D wave equation — vibrations of a string. A string vibrates in one spatial dimension, and its modes are simple sine waves. Now we extend these ideas to two spatial dimensions: the vibrations of a thin, stretched membrane fixed at its boundary.

Think of a drumhead. When struck, it vibrates in complex patterns that are fundamentally different from a vibrating string. The membrane can move up and down at every point (x,y)(x, y) on its surface, and the patterns of motion — the normal modes — are two-dimensional standing waves described by products of sine functions (for rectangular membranes) or Bessel functions (for circular drums).

This extension from 1D to 2D is not merely a mathematical exercise. It reveals phenomena that have no analogue in one dimension:

Mode Degeneracy

Different vibration patterns can share the same frequency — impossible on a string

Chladni Patterns

Beautiful geometric nodal lines that make the mathematics of vibration visible to the eye

Musical Acoustics

The physics of drums, timpani, cymbals, and every percussion instrument with a vibrating surface

Structural Engineering

Vibration analysis of floors, walls, aircraft panels, and bridge decks under dynamic loading

Earthquake Engineering

Seismic wave propagation through 2D cross-sections of the Earth's crust

Machine Learning

Physics-informed neural networks and Fourier neural operators for wave simulation


Historical Context

The study of vibrating membranes has a rich history that connects some of the greatest names in mathematics and physics.

Euler & Bernoulli (1740s–1760s)

Leonhard Euler and Daniel Bernoulli extended the vibrating string theory to two dimensions. Euler wrote the first form of the 2D wave equation, while Bernoulli championed the idea that every vibration is a superposition of normal modes — the principle of superposition that underlies all of Fourier analysis.

Ernst Chladni (1787)

The German physicist Ernst Chladni made the vibrations of plates visible by scattering sand on vibrating metal plates. The sand collected along the nodal lines — curves where the plate does not move — forming stunning geometric patterns. Napoleon was so impressed that he offered a prize for a mathematical theory explaining them.

Sophie Germain (1816)

Sophie Germain won a prize from the French Academy of Sciences for her theory of vibrating elastic plates. Despite facing enormous barriers as a woman in 19th-century academia, she derived the correct equation governing plate vibrations — a fourth-order PDE related to the wave equation we study here.

Lord Rayleigh (1877)

John William Strutt (Lord Rayleigh) published The Theory of Sound, providing the definitive mathematical treatment of vibrating membranes and their modes. His work laid the foundation for modern acoustics and vibration analysis.


The 2D Wave Equation

Consider a thin, elastic membrane stretched over a frame. Let u(x,y,t)u(x, y, t) denote the vertical displacement of the membrane at position (x,y)(x, y) and time tt. Newton's second law applied to a small patch of membrane yields:

The 2D Wave Equation

2ut2=c2(2ux2+2uy2)=c22u\frac{\partial^2 u}{\partial t^2} = c^2 \left( \frac{\partial^2 u}{\partial x^2} + \frac{\partial^2 u}{\partial y^2} \right) = c^2 \nabla^2 u
Acceleration = Wave speed squared × Laplacian of displacement

Understanding Each Term

TermSymbolPhysical Meaning
Displacementu(x, y, t)Vertical deflection of the membrane at point (x,y) at time t
Acceleration∂²u/∂t²How fast the velocity of each point is changing
Laplacian∇²uCurvature of the membrane surface; how u differs from its local average
Wave speedc = √(T/ρ)Determined by tension T and surface density ρ of the membrane

The Physical Logic

The equation says: if the membrane is curved at a point (Laplacian is nonzero), then the net restoring force from the surrounding tension causes the point to accelerate back toward the flat position. A positive Laplacian 2u>0\nabla^2 u > 0 means the point is lower than the average of its neighbors, so the tension pulls it up (positive acceleration). A negative Laplacian means the point is higher, and tension pulls it down.

Contrast with the 2D Heat Equation

Property2D Heat Equation2D Wave Equation
PDE∂u/∂t = α∇²u∂²u/∂t² = c²∇²u
Time orderFirst order (one initial condition)Second order (two initial conditions)
Mode behaviorExponential decay: exp(-αλt)Oscillation: cos(ωt), sin(ωt)
EnergyDissipates (entropy increases)Conserved (kinetic ⇄ potential)
Time reversalIrreversible (smoothing)Reversible (oscillation)
Information speedInfinite (instantaneous spreading)Finite (propagation at speed c)

Two Initial Conditions

Because the wave equation is second order in time, it requires two initial conditions:

  1. Initial displacement: u(x,y,0)=f(x,y)u(x, y, 0) = f(x, y) — the shape of the membrane at time zero
  2. Initial velocity: ut(x,y,0)=g(x,y)\frac{\partial u}{\partial t}(x, y, 0) = g(x, y) — how fast each point is moving at time zero

In contrast, the heat equation needs only one initial condition (initial temperature) because it is first order in time.


Separation of Variables for Rectangular Membranes

We solve the 2D wave equation on a rectangular membrane [0,Lx]×[0,Ly][0, L_x] \times [0, L_y] with fixed (zero-displacement) boundaries:

u(0, y, t) = u(L_x, y, t) = 0   (left and right edges fixed)
u(x, 0, t) = u(x, L_y, t) = 0   (bottom and top edges fixed)
u(x, y, 0) = f(x, y)   (initial displacement)
∂u/∂t(x, y, 0) = g(x, y)   (initial velocity)

Step 1: Assume a product solution. We guess that u(x,y,t)=X(x)Y(y)T(t)u(x, y, t) = X(x) \cdot Y(y) \cdot T(t). Substituting into the PDE:

X(x)Y(y)T(t)=c2[X(x)Y(y)T(t)+X(x)Y(y)T(t)]X(x) Y(y) T''(t) = c^2 \left[ X''(x) Y(y) T(t) + X(x) Y''(y) T(t) \right]

Step 2: Divide by c2XYTc^2 X Y T:

Tc2T=XX+YY\frac{T''}{c^2 T} = \frac{X''}{X} + \frac{Y''}{Y}

The left side depends only on tt, the right side only on xx and yy. For these to be equal for all values, both must equal a constant λ-\lambda.

Step 3: Separate the spatial variables. From XX+YY=λ\frac{X''}{X} + \frac{Y''}{Y} = -\lambda, set XX=μ\frac{X''}{X} = -\mu so that YY=(λμ)=ν\frac{Y''}{Y} = -(\lambda - \mu) = -\nu.

Step 4: Solve three independent ODEs.

X-equation

X'' + μX = 0
X(0) = X(Lx) = 0
Xm=sin ⁣(mπxLx)X_m = \sin\!\left(\frac{m\pi x}{L_x}\right)
μm=(mπLx)2\mu_m = \left(\frac{m\pi}{L_x}\right)^2

Y-equation

Y'' + νY = 0
Y(0) = Y(Ly) = 0
Yn=sin ⁣(nπyLy)Y_n = \sin\!\left(\frac{n\pi y}{L_y}\right)
νn=(nπLy)2\nu_n = \left(\frac{n\pi}{L_y}\right)^2

T-equation

T'' + ω2T = 0
T(t)=Acos(ωt)+Bsin(ωt)T(t) = A\cos(\omega t) + B\sin(\omega t)
ω2=c2λ=c2(μm+νn)\omega^2 = c^2\lambda = c^2(\mu_m + \nu_n)

Wave vs Heat: The Time Equation

Compare the time equations for the two PDEs:

  • Heat: T+αλT=0T' + \alpha\lambda T = 0 gives decay T(t)=eαλtT(t) = e^{-\alpha\lambda t}
  • Wave: T+ω2T=0T'' + \omega^2 T = 0 gives oscillation T(t)=Acosωt+BsinωtT(t) = A\cos\omega t + B\sin\omega t

This is the fundamental difference: heat modes die out; wave modes oscillate forever.


Eigenvalues and Natural Frequencies

Each pair of mode numbers (m,n)(m, n) with m,n=1,2,3,m, n = 1, 2, 3, \ldots gives a combined eigenvalue and natural frequency:

2D Eigenvalue & Frequency

λmn=π2(m2Lx2+n2Ly2)\lambda_{mn} = \pi^2 \left( \frac{m^2}{L_x^2} + \frac{n^2}{L_y^2} \right)
ωmn=cλmn=πcm2Lx2+n2Ly2\omega_{mn} = c\sqrt{\lambda_{mn}} = \pi c \sqrt{\frac{m^2}{L_x^2} + \frac{n^2}{L_y^2}}

Frequency fmn=ωmn/(2π)f_{mn} = \omega_{mn} / (2\pi) depends on geometry, wave speed, and mode numbers

Mode Frequency Table (Unit Square)

For a unit square membrane (Lx=Ly=1L_x = L_y = 1, c=1c = 1):

Mode (m, n)m² + n²ωₘₙ / πPattern
(1, 1)2√2 ≈ 1.414Fundamental: single bump
(1, 2) or (2, 1)5√5 ≈ 2.236Two half-waves (degenerate pair)
(2, 2)8√8 ≈ 2.8282×2 checkerboard
(1, 3) or (3, 1)10√10 ≈ 3.162Three half-waves (degenerate pair)
(2, 3) or (3, 2)13√13 ≈ 3.606Mixed pattern
(3, 3)18√18 ≈ 4.2433×3 checkerboard

Degeneracy: A Purely 2D Phenomenon

On a square membrane, modes (m,n)(m, n) and (n,m)(n, m) have the same frequency because m2+n2=n2+m2m^2 + n^2 = n^2 + m^2. These are called degenerate modes. They have different spatial patterns but oscillate at the same rate. Any linear combination of degenerate modes is also a valid vibration at that frequency, leading to a rich variety of possible patterns.

On a rectangular membrane with LxLyL_x \neq L_y, this degeneracy is typically broken — modes (1, 2) and (2, 1) will have different frequencies.


The General Solution

Assembling all the pieces, each normal mode has the form:

umn(x,y,t)=sin ⁣(mπxLx)sin ⁣(nπyLy)[Amncos(ωmnt)+Bmnsin(ωmnt)]u_{mn}(x, y, t) = \sin\!\left(\frac{m\pi x}{L_x}\right) \sin\!\left(\frac{n\pi y}{L_y}\right) \left[ A_{mn}\cos(\omega_{mn} t) + B_{mn}\sin(\omega_{mn} t) \right]

The general solution is the superposition of all modes:

General Solution: 2D Wave Equation

u(x,y,t)=m=1n=1sin ⁣(mπxLx)sin ⁣(nπyLy)[Amncos(ωmnt)+Bmnsin(ωmnt)]u(x, y, t) = \sum_{m=1}^{\infty} \sum_{n=1}^{\infty} \sin\!\left(\frac{m\pi x}{L_x}\right) \sin\!\left(\frac{n\pi y}{L_y}\right) \left[ A_{mn}\cos(\omega_{mn}t) + B_{mn}\sin(\omega_{mn}t) \right]

Finding the Coefficients

The coefficients AmnA_{mn} and BmnB_{mn} are determined by the two initial conditions using orthogonality of the eigenfunctions:

From initial displacement

Amn=4LxLy0Lx ⁣ ⁣0Lyf(x,y)sin ⁣(mπxLx)sin ⁣(nπyLy)dydxA_{mn} = \frac{4}{L_x L_y} \int_0^{L_x}\!\!\int_0^{L_y} f(x,y)\, \sin\!\left(\frac{m\pi x}{L_x}\right)\sin\!\left(\frac{n\pi y}{L_y}\right) dy\, dx

From initial velocity

Bmn=4LxLyωmn0Lx ⁣ ⁣0Lyg(x,y)sin ⁣(mπxLx)sin ⁣(nπyLy)dydxB_{mn} = \frac{4}{L_x L_y \,\omega_{mn}} \int_0^{L_x}\!\!\int_0^{L_y} g(x,y)\, \sin\!\left(\frac{m\pi x}{L_x}\right)\sin\!\left(\frac{n\pi y}{L_y}\right) dy\, dx

Compare with 2D Heat Equation

The 2D heat equation solution has only BmnB_{mn} coefficients (no AmnA_{mn}) because it has only one initial condition. The time factor is eαλmnte^{-\alpha\lambda_{mn}t} (decay) instead of Acosωt+BsinωtA\cos\omega t + B\sin\omega t (oscillation).


Interactive Membrane Simulation

Explore the vibrations of a rectangular membrane in real time. Select different modes (m,n)(m, n), adjust the wave speed, and observe how the membrane oscillates. Enable the superposition toggle to see how two modes combine.

What to Observe

  • Mode (1, 1): The fundamental mode — the entire membrane bobs up and down as one
  • Higher modes: Increasing m or n adds more half-waves, creating richer patterns
  • Superposition: When two modes are combined, the resulting motion is complex and non-periodic unless the frequencies are rationally related
  • Wave speed: Higher speed means faster oscillation (higher frequency) for the same mode

Exploring Mode Patterns

Each mode (m,n)(m, n) has a characteristic spatial pattern: mm half-waves in the xx-direction and nn half-waves in the yy-direction. The nodal lines — where the displacement is always zero — form a grid of (m1)(m-1) vertical and (n1)(n-1) horizontal lines.

Click on any mode in the grid below to see its details:

Rectangular Membrane Mode Patterns

Negative
Zero
Positive

Reading the Mode Patterns

  • Red regions represent positive displacement (membrane displaced upward)
  • Blue regions represent negative displacement (membrane displaced downward)
  • Boundaries between colors are the nodal lines where u=0u = 0 at all times
  • Adjacent regions always have opposite signs — when one is up, its neighbor is down

Counting Nodal Lines

For mode (m,n)(m, n) on a rectangular membrane, the nodal lines are located at:

  • x=kLx/mx = k L_x / m for k=1,2,,m1k = 1, 2, \ldots, m-1 (vertical lines)
  • y=kLy/ny = k L_y / n for k=1,2,,n1k = 1, 2, \ldots, n-1 (horizontal lines)

So mode (3, 2) has 2 vertical lines and 1 horizontal line, dividing the membrane into 6 regions.


Circular Membranes: The Mathematics of Drums

Real drums are circular, not rectangular. On a circular membrane of radius aa, the wave equation in polar coordinates (r,θ)(r, \theta) becomes:

2ut2=c2(2ur2+1rur+1r22uθ2)\frac{\partial^2 u}{\partial t^2} = c^2 \left( \frac{\partial^2 u}{\partial r^2} + \frac{1}{r}\frac{\partial u}{\partial r} + \frac{1}{r^2}\frac{\partial^2 u}{\partial \theta^2} \right)

Separation of variables u(r,θ,t)=R(r)Θ(θ)T(t)u(r, \theta, t) = R(r)\,\Theta(\theta)\,T(t) leads to:

Angular equation

Θ+m2Θ=0\Theta'' + m^2\Theta = 0
Θ=cos(mθ)\Theta = \cos(m\theta) or sin(mθ)\sin(m\theta)

Radial equation (Bessel)

r2R+rR+(λr2m2)R=0r^2 R'' + rR' + (\lambda r^2 - m^2)R = 0
R(r)=Jm ⁣(jmnra)R(r) = J_m\!\left(\frac{j_{mn} r}{a}\right)

Time equation

T+ωmn2T=0T'' + \omega_{mn}^2 T = 0
ωmn=cjmna\omega_{mn} = \frac{c \, j_{mn}}{a}

Here JmJ_m is the Bessel function of the first kind of order mm, and jmnj_{mn} is the nn-th zero of JmJ_m. The boundary condition R(a)=0R(a) = 0 (fixed rim) forces Jm(jmn)=0J_m(j_{mn}) = 0, which selects the allowed frequencies.

First Few Bessel Function Zeros

m (angular)n = 1n = 2n = 3n = 4
02.40485.52018.653711.7915
13.83177.015610.173513.3237
25.13568.417211.619814.7960
36.38029.761013.015216.2235

The nodal patterns of a circular membrane have two types of nodal lines:

  • Nodal circles: n1n - 1 concentric circles where Jm=0J_m = 0
  • Nodal diameters: mm equally spaced lines through the center where cos(mθ)=0\cos(m\theta) = 0

Explore the circular membrane modes below. Toggle between top view (showing the pattern) and 3D view (showing the surface shape):

Why Drums Sound Different from Strings

On a string, the overtone frequencies are integer multiples of the fundamental: fn=nf1f_n = n f_1. This produces a harmonic (musical) sound.

On a drum, the frequencies are proportional to the Bessel zeros jmnj_{mn}, which are not integer multiples of each other. For example, the first few circular frequencies are proportional to 2.405, 3.832, 5.136, 5.520 — not a harmonic series. This is why drums produce a less definite pitch than string instruments.


Chladni Patterns: Seeing Sound

In 1787, Ernst Chladni demonstrated one of the most elegant experiments in physics: he scattered fine sand on a vibrating metal plate, and the sand migrated to the nodal lines — the curves where the plate remains at rest. The result was a gallery of stunning geometric patterns, now called Chladni figures.

Mathematically, Chladni patterns show the zero set of the mode shape function. For a rectangular plate vibrating in mode (m,n)(m, n), the nodal lines are the simple grid where sin(mπx/Lx)=0\sin(m\pi x / L_x) = 0 or sin(nπy/Ly)=0\sin(n\pi y / L_y) = 0. But when multiple modes are superimposed, the nodal lines curve and intersect in complex ways.

Explore Chladni patterns for different modes and plate shapes:

Real Chladni Experiments

Modern Chladni experiments use speakers driven at specific frequencies to excite individual modes of metal plates. The patterns depend on:

  • Frequency: Each driving frequency excites modes near that frequency
  • Plate shape: Square, circular, and irregular plates produce very different patterns
  • Boundary conditions: Clamped edges versus free edges change the mode shapes entirely

Machine Learning Connections

The 2D wave equation connects to modern machine learning and computational science in several important ways.

1. Physics-Informed Neural Networks (PINNs)

PINNs solve PDEs by training neural networks that satisfy the wave equation as a loss function. Instead of discretizing on a grid, you train uθ(x,y,t)u_\theta(x, y, t) to minimize:

L = ||u_tt - c²∇²u||² + ||u - f||²_boundary + ||u(0) - f||²_initial

The 2D wave equation is a standard benchmark for PINNs because its oscillatory solutions are challenging for neural networks to learn.

2. Fourier Neural Operators (FNOs)

FNOs learn to map initial conditions to solutions by operating in Fourier space — exactly the eigenmode representation we derived. The key insight: the 2D Fourier modes sin(mπx/Lx)sin(nπy/Ly)\sin(m\pi x / L_x)\sin(n\pi y / L_y) are the natural basis for these operators, and FNOs learn the relationship between input modes and output modes.

3. Acoustic Signal Processing

The modal analysis of 2D membranes directly applies to:

  • Speaker design: Understanding how speaker cones vibrate to radiate sound
  • Microphone arrays: Spatial filtering based on 2D wave propagation principles
  • Room acoustics: Modal analysis of room surfaces for noise control and acoustic design

4. Structural Health Monitoring

Machine learning models trained on vibration mode shapes can detect damage in structures. A crack or defect changes the natural frequencies and mode shapes, and neural networks can learn to identify damage location and severity from vibration measurements — using exactly the modal theory we developed here.


Python Implementation

Implement the 2D wave equation solution for both rectangular and circular membranes:

Solving the 2D Wave Equation
🐍wave_equation_2d.py
3Single Normal Mode

Each mode (m, n) has spatial pattern sin(mπx/Lx)sin(nπy/Ly) that oscillates at frequency ωₘₙ = πc√(m²/Lx² + n²/Ly²). Unlike the heat equation where modes decay, wave modes oscillate forever.

17General Solution via Fourier Series

The general solution is a double sum over all modes, with coefficients Aₘₙ (from initial displacement) and Bₘₙ (from initial velocity). This is analogous to the 1D case but with two mode indices.

35Computing Fourier Coefficients

The coefficients are found by projecting the initial conditions onto each eigenmode using the orthogonality of sin functions. Aₘₙ comes from displacement, Bₘₙ from velocity (divided by ωₘₙ).

55Circular Membrane with Bessel Functions

The circular drum uses Bessel functions Jₘ instead of sine functions. The zeros jₘₙ of the Bessel functions play the same role as mπ/L in the rectangular case, setting the allowed frequencies.

72Frequency Analysis

The frequency table shows that modes with larger m² + n² have higher frequencies. On a square membrane, modes like (1,2) and (2,1) are degenerate (same frequency) since 1²+2² = 2²+1².

114 lines without explanation
1import numpy as np
2import matplotlib.pyplot as plt
3from mpl_toolkits.mplot3d import Axes3D
4from matplotlib import cm
5from scipy.special import jn, jn_zeros
6
7def rectangular_mode(x, y, t, m, n, Lx=1.0, Ly=1.0, c=1.0):
8    """
9    Normal mode (m, n) of a rectangular membrane.
10
11    u_mn(x, y, t) = sin(m*pi*x/Lx) * sin(n*pi*y/Ly) * cos(omega_mn * t)
12
13    omega_mn = pi * c * sqrt(m^2/Lx^2 + n^2/Ly^2)
14    """
15    omega = np.pi * c * np.sqrt(m**2/Lx**2 + n**2/Ly**2)
16    spatial = np.sin(m * np.pi * x / Lx) * np.sin(n * np.pi * y / Ly)
17    temporal = np.cos(omega * t)
18    return spatial * temporal
19
20
21def solve_rectangular_membrane(x, y, t, initial_disp, initial_vel=None,
22                                Lx=1.0, Ly=1.0, c=1.0, n_modes=10):
23    """
24    Solve the 2D wave equation on [0,Lx] x [0,Ly] with zero BCs.
25
26    u(x,y,t) = sum_m sum_n [A_mn cos(w_mn t) + B_mn sin(w_mn t)]
27                            * sin(m*pi*x/Lx) * sin(n*pi*y/Ly)
28
29    A_mn = (4/LxLy) int int f(x,y) sin(m*pi*x/Lx) sin(n*pi*y/Ly) dxdy
30    B_mn = (4/LxLy) * (1/w_mn) int int g(x,y) sin(...) sin(...) dxdy
31    """
32    # Integration grid
33    ni = 100
34    xi = np.linspace(0, Lx, ni)
35    yi = np.linspace(0, Ly, ni)
36    Xi, Yi = np.meshgrid(xi, yi)
37    dx_i, dy_i = Lx / (ni - 1), Ly / (ni - 1)
38
39    f_vals = initial_disp(Xi, Yi)
40    g_vals = initial_vel(Xi, Yi) if initial_vel else np.zeros_like(Xi)
41
42    u = np.zeros_like(x)
43
44    for m in range(1, n_modes + 1):
45        for n in range(1, n_modes + 1):
46            omega = np.pi * c * np.sqrt(m**2/Lx**2 + n**2/Ly**2)
47            basis = np.sin(m*np.pi*Xi/Lx) * np.sin(n*np.pi*Yi/Ly)
48
49            # Fourier coefficients via numerical integration
50            A_mn = (4/(Lx*Ly)) * np.sum(f_vals * basis) * dx_i * dy_i
51            B_mn = (4/(Lx*Ly*omega)) * np.sum(g_vals * basis) * dx_i * dy_i
52
53            if abs(A_mn) < 1e-12 and abs(B_mn) < 1e-12:
54                continue
55
56            spatial = np.sin(m*np.pi*x/Lx) * np.sin(n*np.pi*y/Ly)
57            u += (A_mn * np.cos(omega*t) + B_mn * np.sin(omega*t)) * spatial
58
59    return u
60
61
62def circular_mode(r, theta, t, m, n, a=1.0, c=1.0):
63    """
64    Normal mode of a circular membrane (drum).
65
66    u_mn(r, theta, t) = J_m(j_mn * r / a) * cos(m*theta) * cos(omega_mn * t)
67
68    where j_mn is the n-th zero of J_m, and omega_mn = c * j_mn / a
69    """
70    j_mn = jn_zeros(m, n)[-1]  # n-th zero of J_m
71    omega = c * j_mn / a
72    radial = jn(m, j_mn * r / a)
73    angular = np.cos(m * theta)
74    temporal = np.cos(omega * t)
75    return radial * angular * temporal
76
77
78def visualize_membrane():
79    """Visualize rectangular membrane vibration at several time steps."""
80    Lx, Ly, c = 1.0, 1.0, 1.0
81    nx, ny = 50, 50
82    x = np.linspace(0, Lx, nx)
83    y = np.linspace(0, Ly, ny)
84    X, Y = np.meshgrid(x, y)
85
86    # Initial condition: Gaussian bump
87    def f(x, y):
88        return np.exp(-30 * ((x - 0.5)**2 + (y - 0.5)**2))
89
90    times = [0, 0.2, 0.5, 0.8, 1.2, 2.0]
91    fig = plt.figure(figsize=(15, 10))
92
93    for i, t in enumerate(times):
94        ax = fig.add_subplot(2, 3, i+1, projection='3d')
95        Z = solve_rectangular_membrane(X, Y, t, f, Lx=Lx, Ly=Ly, c=c, n_modes=12)
96        ax.plot_surface(X, Y, Z, cmap=cm.coolwarm, linewidth=0, alpha=0.9)
97        ax.set_xlabel('x')
98        ax.set_ylabel('y')
99        ax.set_zlabel('u')
100        ax.set_title(f't = {t}')
101        ax.set_zlim(-1, 1)
102
103    plt.suptitle('2D Wave Equation: Rectangular Membrane', fontsize=14)
104    plt.tight_layout()
105    plt.show()
106
107    # Frequency analysis
108    print("\n--- Mode Frequency Analysis ---")
109    print("Mode (m,n) | omega_mn | frequency | period")
110    print("-" * 55)
111    for m in range(1, 5):
112        for n in range(1, 5):
113            omega = np.pi * c * np.sqrt(m**2 + n**2)
114            freq = omega / (2 * np.pi)
115            period = 1 / freq
116            print(f"  ({m},{n})   | {omega:8.3f} | {freq:9.4f} | {period:8.4f}")
117
118
119visualize_membrane()

Common Pitfalls

Forgetting the Second Initial Condition

The wave equation requires both initial displacement f(x,y)f(x,y) and initial velocity g(x,y)g(x,y). If you set g=0g = 0 everywhere, you get Bmn=0B_{mn} = 0 for all modes, and the solution is purely cosine in time. But if you forget to include gg when it is nonzero, you miss the sine terms entirely.

Confusing Wave and Heat Modes

The spatial eigenfunctions are identical for both equations, but the time behavior is completely different:

  • Heat: mode decays as eαλmnte^{-\alpha\lambda_{mn} t} (smooth and permanent)
  • Wave: mode oscillates as cos(ωmnt)\cos(\omega_{mn} t) (periodic, energy-conserving)

Degeneracy Is Geometry-Dependent

Modes (m,n)(m, n) and (n,m)(n, m) are degenerate only on a square membrane. On a rectangle with LxLyL_x \neq L_y, these modes have different frequencies. Be careful when analyzing physical systems — small deviations from perfect symmetry break the degeneracy.

Bessel Functions Are Not Sinusoidal

The zeros of Bessel functions are not equally spaced (unlike zeros of sine functions). This means the overtone frequencies of a circular drum are not harmonically related, which is why drums have a less definite pitch than stringed instruments. Do not assume harmonic relationships for circular membranes.


Test Your Understanding

1. In the 2D wave equation on a rectangular membrane, what does the Laplacian ∇²u measure?

2. For a rectangular membrane of dimensions Lₓ × Lᵧ with mode numbers (m, n), the natural frequency is:

3. Unlike the 2D heat equation where each mode decays exponentially, what do the modes of the 2D wave equation do?

4. On a square membrane (Lₓ = Lᵧ = L), modes (1, 2) and (2, 1) are called degenerate because they:

5. Chladni patterns on a vibrating plate show lines where:


Summary

The 2D wave equation extends the vibrating string theory to membranes and surfaces, revealing rich phenomena like mode degeneracy and Chladni patterns that have no analogue in one dimension.

Key Equations

NameFormula
2D Wave Equation∂²u/∂t² = c²(∂²u/∂x² + ∂²u/∂y²)
Eigenvaluesλₘₙ = π²(m²/Lₓ² + n²/Lᵧ²)
Natural Frequenciesωₘₙ = πc√(m²/Lₓ² + n²/Lᵧ²)
Mode Shapesin(mπx/Lₓ) sin(nπy/Lᵧ)
General SolutionΣₘ Σₙ [Aₘₙ cos(ωt) + Bₘₙ sin(ωt)] × mode shape
Circular MembraneJₘ(jₘₙ r/a) cos(mθ) cos(ωₘₙ t)

Key Takeaways

  1. The 2D wave equation utt=c22uu_{tt} = c^2 \nabla^2 u describes vibrating membranes with the Laplacian measuring surface curvature
  2. Separation of variables yields three ODEs: two spatial (eigenvalue problems) and one temporal (oscillator)
  3. Unlike the heat equation where modes decay, wave modes oscillate forever at their natural frequencies
  4. The natural frequency ωmn\omega_{mn} depends on m2/Lx2+n2/Ly2\sqrt{m^2/L_x^2 + n^2/L_y^2} — the square root of the sum, not the sum of square roots
  5. Degeneracy occurs on square membranes: modes (m,n)(m, n) and (n,m)(n, m) share the same frequency
  6. Circular membranes use Bessel functions instead of sines, with non-harmonic overtone series
  7. Chladni patterns make the nodal lines of vibrating surfaces visible and are direct manifestations of the eigenmodes
The Essence of 2D Wave Vibration:
"A vibrating membrane decomposes into infinitely many independent oscillators — each with its own spatial pattern and frequency — and the physical motion is the sum of them all."
Coming Next: In the next section, we'll explore Numerical Methods for Waves — finite difference schemes, stability conditions, and practical algorithms for simulating wave propagation when analytical solutions are not available.
Loading comments...