Chapter 27
25 min read
Section 228 of 353

D'Alembert's Solution

The Wave Equation

Learning Objectives

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

  1. Derive the general solution u(x,t)=F(xct)+G(x+ct)u(x,t) = F(x-ct) + G(x+ct) using characteristic coordinates
  2. Apply D'Alembert's formula to solve initial value problems for the wave equation on an infinite string
  3. Interpret the solution as a superposition of right-traveling and left-traveling waves
  4. Understand characteristic curves and their role in information propagation
  5. Explain the domain of dependence and range of influence, and why the wave equation has finite propagation speed
  6. Compare wave behavior (propagation, reversibility) with heat behavior (diffusion, irreversibility)
  7. Connect wave propagation to signal processing, acoustics, and physics-informed neural networks

The Big Picture: Why D'Alembert's Solution Matters

"The vibrating string problem is the origin of partial differential equations." — Carl Boyer, A History of Mathematics

In the previous section, we derived the wave equation from Newton's second law applied to a vibrating string. Now comes the question every mathematician asks: can we solve it exactly?

The answer, discovered by d'Alembert in 1747, is remarkably elegant. The solution to the wave equation is simply two copies of the initial shape traveling in opposite directions. Unlike the heat equation (where the solution involves convolution with a Gaussian kernel), the wave equation's solution has a strikingly simple geometric interpretation:

Shape Preservation

Waves propagate without distortion. A pulse remains a pulse, a triangle stays a triangle. The shape is perfectly preserved.

Finite Speed

Information propagates at exactly speed c. A disturbance at one point takes time c to reach another. No action at a distance.

Time Reversibility

Unlike the heat equation, the wave equation is symmetric in time. Playing a wave backward produces a valid physical process.

The Central Result

D'Alembert's solution for the wave equation with initial displacement φ(x)\varphi(x) and initial velocity ψ(x)\psi(x):

u(x,t)=12[φ(xct)+φ(x+ct)]+12cxctx+ctψ(s)dsu(x,t) = \frac{1}{2}\Big[\varphi(x-ct) + \varphi(x+ct)\Big] + \frac{1}{2c}\int_{x-ct}^{x+ct} \psi(s)\,ds

Historical Context: D'Alembert and the Vibrating String

Jean le Rond d'Alembert (1717–1783) was a French mathematician, physicist, and philosopher. Abandoned as an infant on the steps of the church of Saint-Jean-le-Rond in Paris (from which he took his name), he rose to become one of the foremost intellectuals of the Enlightenment.

1747: The First PDE Solution

In his memoir "Recherches sur la courbe que forme une corde vibrante" (Researches on the curve formed by a vibrating string), d'Alembert presented the first explicit solution of a partial differential equation. This was a pivotal moment in the history of mathematics.

The d'Alembert–Euler Debate

D'Alembert's solution sparked a famous debate with Euler. D'Alembert argued that the initial shape must be a "continuous and differentiable function" for the solution to be valid. Euler countered that any "arbitrary curve" should be allowed — even one drawn freehand. This debate forced mathematicians to formalize the concept of a function, eventually leading to Dirichlet's modern definition.

Legacy: Characteristic Methods

D'Alembert's method of characteristics became the foundation for solving hyperbolic PDEs. It influenced the development of special relativity (light cones are characteristic cones!), gas dynamics, and modern computational methods for wave propagation.


The Wave Equation on an Infinite String

We consider the one-dimensional wave equation for a string extending to infinity in both directions:

2ut2=c22ux2,x(,),t>0\frac{\partial^2 u}{\partial t^2} = c^2 \frac{\partial^2 u}{\partial x^2}, \quad x \in (-\infty, \infty), \quad t > 0

with initial conditions:

u(x,0)=φ(x)u(x, 0) = \varphi(x)(initial displacement)
ut(x,0)=ψ(x)\frac{\partial u}{\partial t}(x, 0) = \psi(x)(initial velocity)

Here c>0c > 0 is the wave speed, determined by the physical properties of the string (tension and linear density). Our goal is to find an explicit formula for u(x,t)u(x, t).

Why an Infinite String?

Working with an infinite string means we don't need boundary conditions. The wave propagates freely without reflecting off endpoints. We'll add boundaries (creating standing waves) in the next section.


Change of Variables: Characteristic Coordinates

The key insight of d'Alembert is to introduce new coordinates that "follow the wave." Define:

Characteristic Coordinates

ξ=xct\xi = x - ct
Right-moving coordinate
η=x+ct\eta = x + ct
Left-moving coordinate

These are called characteristic coordinates because the lines ξ=const\xi = \text{const} and η=const\eta = \text{const} are the characteristic curves of the wave equation — the paths along which information travels.

Step 1: Transform the Derivatives

Using the chain rule, we transform the partial derivatives. For the first spatial derivative:

ux=uξξx+uηηx=uξ+uη\frac{\partial u}{\partial x} = \frac{\partial u}{\partial \xi}\frac{\partial \xi}{\partial x} + \frac{\partial u}{\partial \eta}\frac{\partial \eta}{\partial x} = \frac{\partial u}{\partial \xi} + \frac{\partial u}{\partial \eta}

since ξ/x=1\partial \xi/\partial x = 1 and η/x=1\partial \eta/\partial x = 1. The second spatial derivative becomes:

2ux2=2uξ2+22uξη+2uη2\frac{\partial^2 u}{\partial x^2} = \frac{\partial^2 u}{\partial \xi^2} + 2\frac{\partial^2 u}{\partial \xi \partial \eta} + \frac{\partial^2 u}{\partial \eta^2}

For the time derivatives, using ξ/t=c\partial \xi/\partial t = -c and η/t=c\partial \eta/\partial t = c:

2ut2=c2(2uξ222uξη+2uη2)\frac{\partial^2 u}{\partial t^2} = c^2\left(\frac{\partial^2 u}{\partial \xi^2} - 2\frac{\partial^2 u}{\partial \xi \partial \eta} + \frac{\partial^2 u}{\partial \eta^2}\right)

Step 2: Substitute into the Wave Equation

Plugging both expressions into utt=c2uxxu_{tt} = c^2 u_{xx}:

c2 ⁣(uξξ2uξη+uηη)=c2 ⁣(uξξ+2uξη+uηη)c^2\!\left(u_{\xi\xi} - 2u_{\xi\eta} + u_{\eta\eta}\right) = c^2\!\left(u_{\xi\xi} + 2u_{\xi\eta} + u_{\eta\eta}\right)

The uξξu_{\xi\xi} and uηηu_{\eta\eta} terms cancel, leaving:

4c22uξη=0-4c^2 \frac{\partial^2 u}{\partial \xi \partial \eta} = 0

Since c0c \neq 0, this simplifies to the beautifully simple equation:

2uξη=0\frac{\partial^2 u}{\partial \xi \,\partial \eta} = 0
The wave equation in characteristic coordinates

This is remarkable! The second-order PDE with constant coefficients has been reduced to a mixed partial derivative equaling zero — which is trivial to solve by integration.


The General Solution

Step 3: Integrate Twice

From 2u/ξη=0\partial^2 u / \partial \xi \,\partial \eta = 0, we integrate with respect to η\eta (holding ξ\xi fixed):

uξ=h(ξ)\frac{\partial u}{\partial \xi} = h(\xi)

where h(ξ)h(\xi) is an arbitrary function of ξ\xi alone (the "constant" of integration with respect to η\eta). Now integrate with respect to ξ\xi:

u(ξ,η)=F(ξ)+G(η)u(\xi, \eta) = F(\xi) + G(\eta)

where F(ξ)=h(ξ)dξF(\xi) = \int h(\xi)\,d\xi and G(η)G(\eta) is another arbitrary function. Converting back to the original variables:

General Solution of the Wave Equation

u(x,t)=F(xct)+G(x+ct)u(x, t) = F(x - ct) + G(x + ct)
Sum of a right-traveling wave F and a left-traveling wave G

Physical Interpretation

This is one of the most beautiful results in mathematical physics. It says:

  • F(xct)F(x - ct): A wave traveling to the right at speed cc. At time tt, the profile FF has shifted right by ctct.
  • G(x+ct)G(x + ct): A wave traveling to the left at speed cc. At time tt, the profile GG has shifted left by ctct.

The general solution is a superposition of these two traveling waves. The specific functions FF and GG are determined by the initial conditions.

Why Two Arbitrary Functions?

The wave equation is second-order in time, so it requires two initial conditions (displacement and velocity) to determine a unique solution. This is analogous to Newton's second law: you need both initial position and initial velocity to predict the motion of a particle.


D'Alembert's Formula: Applying Initial Conditions

Now we determine FF and GG from the initial conditions.

From the Initial Displacement

At t=0t = 0:

u(x,0)=F(x)+G(x)=φ(x)(I)u(x, 0) = F(x) + G(x) = \varphi(x) \quad \cdots \text{(I)}

From the Initial Velocity

Taking the time derivative of the general solution:

ut=cF(xct)+cG(x+ct)\frac{\partial u}{\partial t} = -cF'(x - ct) + cG'(x + ct)

At t=0t = 0:

cF(x)+cG(x)=ψ(x)(II)-cF'(x) + cG'(x) = \psi(x) \quad \cdots \text{(II)}

Solving the System

Integrate equation (II) from 00 to xx:

cF(x)+cG(x)=0xψ(s)ds+C(II’)-cF(x) + cG(x) = \int_0^x \psi(s)\,ds + C \quad \cdots \text{(II')}

Adding (I) and (II') divided by cc:

G(x)=12φ(x)+12c0xψ(s)ds+C2cG(x) = \frac{1}{2}\varphi(x) + \frac{1}{2c}\int_0^x \psi(s)\,ds + \frac{C}{2c}

Subtracting:

F(x)=12φ(x)12c0xψ(s)dsC2cF(x) = \frac{1}{2}\varphi(x) - \frac{1}{2c}\int_0^x \psi(s)\,ds - \frac{C}{2c}

Substituting F(xct)F(x - ct) and G(x+ct)G(x + ct) into the general solution, the constants CC cancel, and we get:

D'Alembert's Formula

u(x,t)=12[φ(xct)+φ(x+ct)]+12cxctx+ctψ(s)dsu(x,t) = \frac{1}{2}\Big[\varphi(x-ct) + \varphi(x+ct)\Big] + \frac{1}{2c}\int_{x-ct}^{x+ct} \psi(s)\,ds
Displacement term: average of shifted initial shapes
Velocity term: integral over domain of dependence

Special Case: Released from Rest

When the string is released from rest (ψ(x)=0\psi(x) = 0), the integral term vanishes and the formula simplifies beautifully:

u(x,t)=12[φ(xct)+φ(x+ct)]u(x,t) = \frac{1}{2}\Big[\varphi(x-ct) + \varphi(x+ct)\Big]

This says: the initial shape splits into two half-amplitude copies traveling in opposite directions. This is precisely what the interactive visualizer below demonstrates.


Traveling Wave Visualization

The interactive visualizer below shows D'Alembert's solution in action for the case of zero initial velocity. Watch how the initial displacement splits into two halves and propagates:

D'Alembert's Traveling Wave Decomposition

The solution u(x,t) = ½φ(x−ct) + ½φ(x+ct) splits the initial shape into right-traveling (blue) and left-traveling (red) halves. Their sum (green) is the exact solution.

t = 0.000

What to observe:

  • • The initial shape splits into two halves
  • • Each half travels at speed c in opposite directions
  • • No distortion — wave shapes are perfectly preserved
  • • Try the square pulse to see a discontinuity propagate

Experiment with Different Shapes

Try the "Square" initial condition. Notice how the discontinuity propagates without being smoothed — this is a dramatic contrast with the heat equation, which instantly smooths any discontinuity. The wave equation preserves the shape exactly.


Characteristic Curves and the Domain of Dependence

The characteristic coordinates ξ=xct\xi = x - ct and η=x+ct\eta = x + ct define two families of straight lines in the (x,t)(x, t) plane:

FamilyEquationSlope (dt/dx)Direction
Right-movingξ = x − ct = const1/c (positive slope)Information travels to the right
Left-movingη = x + ct = const−1/c (negative slope)Information travels to the left

Domain of Dependence

D'Alembert's formula tells us that u(x0,t0)u(x_0, t_0) depends only on:

  • The values of φ\varphi at x0ct0x_0 - ct_0 and x0+ct0x_0 + ct_0
  • The values of ψ\psi in the interval [x0ct0,x0+ct0][x_0 - ct_0, \, x_0 + ct_0]

This interval is the domain of dependence — the backward characteristic cone from (x0,t0)(x_0, t_0) to the initial line t=0t = 0. Click on the interactive diagram below to explore this:

Characteristic Curves in Spacetime

Click on the (x, t) plane to see the domain of dependence (backward cone) or range of influence (forward cone). Information propagates along characteristics at speed c.

Higher c tilts characteristics more

Key Insight:

The value u(x₀, t₀) depends ONLY on initial data in [x₀ − ct₀, x₀ + ct₀]. This is finite propagation — the fundamental difference from the heat equation, which has infinite speed.

Physical Meaning:

If you pluck a guitar string at one point, the disturbance takes finite time to reach other points. The wavefront travels along the characteristics.

Range of Influence

Conversely, the range of influence of a point (x0,0)(x_0, 0) on the initial line is the forward cone: all points (x,t)(x, t) satisfying xx0ct|x - x_0| \leq ct. In other words, a disturbance at x0x_0 can only affect points within a distance ctct after time tt.

Finite Propagation Speed

The wave equation has finite propagation speed. If you pluck a guitar string at one point, the disturbance takes time d/cd/c to reach a point at distance dd. Compare this with the heat equation, where any change affects the entire domain instantly (infinite propagation speed).


Key Properties of D'Alembert's Solution

1. Linearity and Superposition

The wave equation is linear, so any linear combination of solutions is also a solution. D'Alembert's formula reflects this: the displacement term and velocity term contribute independently and can be analyzed separately.

2. No Smoothing (Preservation of Regularity)

Unlike the heat equation, the wave equation does not smooth initial data. If φ(x)\varphi(x) has a corner, the solution carries that corner along the characteristics forever. If φ\varphi is discontinuous, the discontinuity propagates at speed cc.

3. Time Reversibility

The wave equation is unchanged if we replace tt with t-t. Physically, playing a wave backward produces a valid solution. This reflects conservation of energy with no dissipation — in contrast with the heat equation, which is irreversible due to entropy increase.

4. Energy Conservation

The total energy of the wave (kinetic + potential) is conserved:

E=12[(ut) ⁣2+c2(ux) ⁣2]dx=constE = \frac{1}{2}\int_{-\infty}^{\infty}\left[\left(\frac{\partial u}{\partial t}\right)^{\!2} + c^2\left(\frac{\partial u}{\partial x}\right)^{\!2}\right]dx = \text{const}

Energy is neither created nor destroyed, only redistributed between the right-traveling and left-traveling components.

5. Huygens' Principle (in 1D)

In one dimension, waves have sharp wavefronts: a pulse passes through a point and then is gone. There is no residual signal. This is related to the fact that the domain of dependence has sharp boundaries.


Wave vs. Heat: Two Fundamentally Different PDEs

The contrast between the wave equation and the heat equation is one of the most illuminating comparisons in all of PDE theory. They represent two fundamentally different physical processes:

PropertyWave EquationHeat Equation
TypeHyperbolicParabolic
Physical processPropagationDiffusion
Propagation speedFinite (speed c)Infinite
SmoothingNone (preserves shape)Instant (infinite smoothing)
Time symmetryReversibleIrreversible
EntropyConstantIncreasing
EnergyKinetic + potential conservedTotal energy conserved, but spreads
Initial conditions neededTwo (φ and ψ)One (φ only)
Prototype equation∂²u/∂t² = c²∂²u/∂x²∂u/∂t = α∂²u/∂x²

The interactive comparison below shows the same initial condition evolving under both equations simultaneously:

Wave vs. Heat: Propagation vs. Diffusion

Same Gaussian initial condition, fundamentally different evolution. Watch how waves split and propagate while heat smoothly diffuses.

t = 0.000

Wave Equation

  • • Shape preserved (no distortion)
  • • Finite propagation speed c
  • • Time-reversible (run backward!)
  • • Energy conserved, entropy constant

Heat Equation

  • • Shape smoothed (Gaussian blur)
  • • Infinite propagation speed
  • • Time-irreversible (entropy increases)
  • • Energy conserved, but spreads out

Applications of D'Alembert's Solution

Acoustics and Music

Sound waves in air and vibrations in strings follow the wave equation. D'Alembert's solution explains how a plucked guitar string creates traveling waves that bounce between the bridge and nut, producing standing wave patterns we perceive as musical notes.

Seismology

Seismic P-waves (pressure waves) propagate through the Earth following the wave equation. The characteristic cone defines the "shadow zone" where waves cannot reach directly, helping geologists map the Earth's internal structure.

Signal Processing

Electrical signals in transmission lines satisfy the wave equation (telegrapher's equation in the lossless case). D'Alembert's solution describes how signals propagate and reflect at impedance mismatches, a key concept in RF engineering.

Special Relativity

The characteristic cone of the wave equation is the precursor to the light cone in special relativity. The finite propagation speed cc of electromagnetic waves led Einstein to revolutionize our understanding of space and time.


Connection to Machine Learning

Wave equations appear in several cutting-edge areas of machine learning and scientific computing:

Physics-Informed Neural Networks (PINNs)

PINNs embed the wave equation as a constraint in the neural network's loss function. Instead of requiring labeled data, the network learns to satisfy utt=c2uxxu_{tt} = c^2 u_{xx} by penalizing violations of the PDE at collocation points. D'Alembert's solution provides the exact benchmark for validating these networks.

Neural Operators for Wave Propagation

Fourier Neural Operators (FNOs) and DeepONet learn to map initial conditions to solutions of the wave equation. They approximate the operator (φ,ψ)u(,T)(\varphi, \psi) \mapsto u(\cdot, T), achieving orders-of-magnitude speedup over numerical solvers while maintaining physical accuracy.

Wave Scattering and Inverse Problems

In medical imaging (ultrasound) and non-destructive testing, ML models learn to invert wave scattering data to reconstruct internal structures. Understanding D'Alembert's solution and characteristic propagation is essential for designing physically meaningful neural architectures.

Research Frontier

The finite propagation property of waves, encoded in the characteristic cone, constrains the architecture of physics-informed networks. Models that respect the causal structure of the wave equation (information cannot travel faster than cc) train faster and generalize better than unconstrained architectures.


Python Implementation

D'Alembert's Formula in Code

D'Alembert's Solution for the Wave Equation
🐍dalembert_solution.py
3D’Alembert’s Formula

The exact solution for the wave equation on an infinite string. It consists of two terms: the displacement term (average of shifted initial shapes) and the velocity term (integral of initial velocity over the domain of dependence).

17Displacement Term

This is the key insight: the initial shape φ(x) splits into two copies, each shifted by ±ct. The factor of ½ ensures the amplitudes add correctly. When psi = 0, this IS the entire solution.

20Velocity Integral

When the string has initial velocity ψ(x), we integrate it over the interval [x − ct, x + ct]. This is the domain of dependence! The factor 1/(2c) comes from the derivation using the initial conditions.

40Gaussian Initial Displacement

A smooth Gaussian bump is a classic test case. It splits cleanly into two half-amplitude Gaussians traveling in opposite directions. This shape was at the center of the d’Alembert-Euler debate about what constitutes a valid function.

53Localized Velocity Push

Even with zero initial displacement, a localized velocity creates two outward-propagating waves. The integral term generates waves from the initial momentum. This models striking a drum or plucking a string at a point.

78 lines without explanation
1import numpy as np
2import matplotlib.pyplot as plt
3
4def dalembert_solution(phi, psi, x, t, c=1.0, dx=0.001):
5    """
6    D'Alembert's formula for the 1D wave equation.
7
8    u(x,t) = (1/2)[phi(x-ct) + phi(x+ct)]
9           + (1/(2c)) * integral from x-ct to x+ct of psi(s) ds
10
11    Parameters:
12        phi: initial displacement function
13        psi: initial velocity function
14        x: spatial positions (array)
15        t: time value
16        c: wave speed
17        dx: integration step for psi integral
18    """
19    # Displacement term: average of left- and right-shifted
20    term1 = 0.5 * (phi(x - c * t) + phi(x + c * t))
21
22    # Velocity term: integral of psi from x-ct to x+ct
23    term2 = np.zeros_like(x)
24    for i, xi in enumerate(x):
25        a, b = xi - c * t, xi + c * t
26        s = np.arange(a, b, dx)
27        if len(s) > 0:
28            term2[i] = np.sum(psi(s)) * dx / (2 * c)
29
30    return term1 + term2
31
32# Initial conditions
33def phi_gaussian(x):
34    """Gaussian bump centered at x=0"""
35    return np.exp(-x**2 / 0.1)
36
37def phi_triangle(x):
38    """Triangle pulse"""
39    return np.maximum(0, 1 - np.abs(x) / 0.5)
40
41def psi_zero(x):
42    """Released from rest (no initial velocity)"""
43    return np.zeros_like(x)
44
45def psi_localized(x):
46    """Localized initial velocity (push)"""
47    return 2.0 * np.exp(-x**2 / 0.1)
48
49# Solve and plot
50x = np.linspace(-4, 4, 1000)
51c = 1.0
52times = [0, 0.5, 1.0, 1.5, 2.0]
53
54fig, axes = plt.subplots(2, 1, figsize=(12, 8))
55
56# Case 1: Released from rest
57ax = axes[0]
58ax.set_title("Released from rest: ψ(x) = 0", fontsize=14)
59colors = plt.cm.viridis(np.linspace(0, 1, len(times)))
60for t_val, color in zip(times, colors):
61    u = dalembert_solution(phi_gaussian, psi_zero, x, t_val, c)
62    ax.plot(x, u, color=color, linewidth=2, label=f"t = {t_val}")
63ax.set_xlabel("x")
64ax.set_ylabel("u(x, t)")
65ax.legend()
66ax.grid(True, alpha=0.3)
67ax.set_ylim(-0.7, 1.2)
68
69# Case 2: Initially flat with velocity push
70ax = axes[1]
71ax.set_title("Initially flat with velocity push: φ(x) = 0", fontsize=14)
72for t_val, color in zip(times, colors):
73    u = dalembert_solution(lambda x: np.zeros_like(x),
74                           psi_localized, x, t_val, c)
75    ax.plot(x, u, color=color, linewidth=2, label=f"t = {t_val}")
76ax.set_xlabel("x")
77ax.set_ylabel("u(x, t)")
78ax.legend()
79ax.grid(True, alpha=0.3)
80ax.set_ylim(-0.7, 1.2)
81
82plt.tight_layout()
83plt.show()

Visualizing Characteristic Curves

Characteristic Curves and Domain of Dependence
🐍characteristic_curves.py
11Characteristic Families

There are two families of characteristic curves: x − ct = const (right-moving, blue) and x + ct = const (left-moving, red). These are straight lines in the (x, t) plane with slopes ±1/c.

23Domain of Dependence

The backward light cone from a point (x₀, t₀) to the x-axis. The solution at (x₀, t₀) depends ONLY on initial data in the interval [x₀ − ct₀, x₀ + ct₀]. This is finite propagation!

31Backward Characteristics

The two characteristics passing through (x₀, t₀) trace back to the endpoints of the domain of dependence. Along x − ct = const, we track the right-moving signal; along x + ct = const, the left-moving signal.

53 lines without explanation
1import numpy as np
2import matplotlib.pyplot as plt
3
4def plot_characteristics(c=1.0, x_range=(-3, 3), t_max=3.0):
5    """
6    Visualize characteristic curves and domain of dependence
7    for the 1D wave equation.
8    """
9    fig, ax = plt.subplots(figsize=(10, 8))
10
11    # Draw characteristic families
12    for x0 in np.arange(x_range[0], x_range[1] + 0.5, 0.3):
13        # Right-moving: x - ct = x0 => x = x0 + ct
14        t = np.linspace(0, t_max, 100)
15        x_right = x0 + c * t
16        ax.plot(x_right, t, 'b-', alpha=0.15, linewidth=0.8)
17
18        # Left-moving: x + ct = x0 => x = x0 - ct
19        x_left = x0 - c * t
20        ax.plot(x_left, t, 'r-', alpha=0.15, linewidth=0.8)
21
22    # Highlight domain of dependence for a specific point
23    x0, t0 = 0.5, 2.0
24    x_left_bound = x0 - c * t0
25    x_right_bound = x0 + c * t0
26
27    # Draw the backward cone
28    triangle_x = [x0, x_left_bound, x_right_bound, x0]
29    triangle_t = [t0, 0, 0, t0]
30    ax.fill(triangle_x, triangle_t, alpha=0.15, color='purple',
31            label='Domain of dependence')
32
33    # Draw characteristics through the point
34    t_back = np.linspace(0, t0, 100)
35    ax.plot(x0 - c * (t0 - t_back), t_back, 'r-', linewidth=2.5)
36    ax.plot(x0 + c * (t0 - t_back), t_back, 'b-', linewidth=2.5)
37
38    # Mark the point and interval
39    ax.plot(x0, t0, 'ko', markersize=8, zorder=5)
40    ax.annotate(f'({x0}, {t0})', (x0, t0),
41                xytext=(10, 5), textcoords='offset points', fontsize=12)
42    ax.plot([x_left_bound, x_right_bound], [0, 0],
43            'purple', linewidth=4, alpha=0.8)
44
45    ax.set_xlabel('x', fontsize=14)
46    ax.set_ylabel('t', fontsize=14)
47    ax.set_title(f'Characteristic Curves (c = {c})', fontsize=16)
48    ax.legend(fontsize=12)
49    ax.set_xlim(x_range)
50    ax.set_ylim(0, t_max)
51    ax.grid(True, alpha=0.2)
52
53    plt.tight_layout()
54    plt.show()
55
56plot_characteristics(c=1.0)

Common Pitfalls

Confusing F and G with the Initial Conditions

The functions FF and GG are NOT equal to φ\varphi and ψ\psi. They are derived from both initial conditions simultaneously. A common mistake is setting F=φF = \varphi and G=0G = 0.

Finite vs. Infinite Domains

D'Alembert's formula applies to the infinite string. For a finite string with boundary conditions, you need reflection and Fourier series methods (covered in the next section on standing waves). Applying D'Alembert directly on a finite domain gives wrong answers!

Wrong Direction of Travel

Remember: F(xct)F(x - ct) moves to the right (positive x direction) and G(x+ct)G(x + ct) moves to the left. The sign of the time term tells you the direction. A minus means the pattern shifts rightward as tt increases.

Smoothness Requirements

For the classical solution to exist, we need φC2\varphi \in C^2 and ψC1\psi \in C^1. For less regular initial data (like the square pulse), we work with weak solutions. This subtlety was at the heart of the d'Alembert–Euler debate.


Test Your Understanding

Test Your UnderstandingQuestion 1 of 8

What are the characteristic coordinates for the wave equation ∂²u/∂t² = c² ∂²u/∂x²?


Summary

D'Alembert's solution is one of the great achievements of mathematical physics. By introducing characteristic coordinates, the wave equation transforms into a trivially integrable form, revealing that all wave motion is a superposition of right-traveling and left-traveling waves.

Key Equations

EquationNameMeaning
u(x,t) = F(x−ct) + G(x+ct)General SolutionSum of right- and left-traveling waves
∂²u/∂ξ∂η = 0Canonical FormWave equation in characteristic coordinates
u = ½[φ(x−ct) + φ(x+ct)] + ...D’Alembert’s FormulaExplicit solution from initial conditions
ξ = x − ct, η = x + ctCharacteristic CoordinatesCoordinates that follow wave propagation
[x₀ − ct₀, x₀ + ct₀]Domain of DependenceInterval of initial data that affects u(x₀, t₀)

Key Takeaways

  1. The characteristic coordinates ξ=xct\xi = x - ct and η=x+ct\eta = x + ct transform the wave equation into uξη=0u_{\xi\eta} = 0, which integrates to u=F(ξ)+G(η)u = F(\xi) + G(\eta)
  2. D'Alembert's formula gives the explicit solution from initial displacement and velocity: the initial shape splits into two half-amplitude waves traveling in opposite directions
  3. The domain of dependence is the interval [x0ct0,x0+ct0][x_0 - ct_0, x_0 + ct_0], giving finite propagation speed — fundamentally different from the heat equation
  4. The wave equation preserves shapes without smoothing and is time-reversible (no dissipation, no entropy increase)
  5. Energy is conserved: kinetic energy and potential energy exchange but their sum remains constant
  6. Characteristic methods extend to special relativity (light cones), seismology, and physics-informed neural networks
D'Alembert's Solution in One Sentence:
"Every wave is the sum of a rightward copy and a leftward copy of the initial shape, each traveling at speed c without distortion."
Coming Next: In the next section, we'll confine the string to a finite interval with fixed endpoints. Waves will reflect off the boundaries, and D'Alembert's traveling waves will interfere to create standing waves and normal modes — the mathematics behind musical harmony.
Loading comments...