d'Alembert's Solution

Most PDEs resist an exact answer — you fight them with infinite series, numerical grids, or clever approximations, and the "solution" is really a machine for generating better and better guesses. The wave equation on an infinite line is the glorious exception. In 1747, the French mathematician Jean le Rond d'Alembert found that every single solution, no matter how complicated it looks, is secretly just two fixed shapes gliding past each other — one drifting right, one drifting left, both at the wave speed c. No series, no approximation: an exact, closed-form formula.

Here is why. Because u_{tt} - c^2 u_{xx} = 0 factors like a difference of squares — (\partial_t - c\partial_x)(\partial_t + c\partial_x)u = 0 — its general solution is a sum of two travelling shapes:

u(x, t) = F(x - ct) + G(x + ct).

One profile F moves right at speed c, the other G moves left. The wave equation is just two transport equations bundled together, one for each direction — no wonder the solution is exact and explicit.

Matching the initial data

Given the initial shape u(x, 0) = f(x) and initial velocity u_t(x, 0) = g(x), solving for F and G yields d'Alembert's formula:

u(x, t) = \tfrac{1}{2}\big[f(x - ct) + f(x + ct)\big] + \frac{1}{2c}\int_{x - ct}^{x + ct} g(s)\,ds.

With zero initial velocity (g = 0) it says something vivid: the initial shape splits in half, and the two halves glide apart in opposite directions at speed c.

The formula also reveals the domain of dependence: the value at (x, t) depends only on the initial data in the interval [x - ct, x + ct]. Information travels at finite speed c — nothing outside that interval can yet have reached the point. This is the sharpest contrast with the heat equation, whose influence is instantaneous.

Worked example 1 — a triangular pluck

Take the simplest possible "bump": a tent shape of height 1 sitting on [-1, 1], released from rest, so g = 0 and c = 1. D'Alembert's formula says u(x,t) = \tfrac12 f(x - t) + \tfrac12 f(x + t) — a copy of the tent, squashed to half height, sliding right, plus another half-height copy sliding left.

Walk through the frames:

Nothing about the shape ever changes — only its position and, at the very start, whether the two copies overlap. That rigidity (shapes that translate but never distort) is a hallmark of the wave equation, and it's precisely what the chart below lets you watch happen to a smooth bump instead of a pointy tent.

Worked example 2 — watching the split

A Gaussian pluck f(x) = e^{-x^2} released from rest (g = 0), so u = \tfrac12[e^{-(x - ct)^2} + e^{-(x + ct)^2}] with c = 1. Advance time and the single bump cleaves into two half-height copies racing apart — exactly the formula made visible. The faint curve is the original bump at t = 0.

Notice that the total "area under the curve" a long way from the origin is conserved: nothing is created or destroyed, the energy that was piled up in one bump is simply redistributed into two smaller ones, one running each way forever (on this idealized infinite line).

The physical picture: plucking a guitar string

Pluck a real guitar string right in its middle and let go. For the first instant, before the disturbance has had time to reach the fixed ends, the string behaves exactly like d'Alembert's infinite-line formula predicts: your single triangular pluck splits into two half-size pulses, one racing toward the bridge and one racing toward the nut, both at the same speed c set by the string's tension and mass per length.

Once each pulse reaches an end of the string, it reflects (flipped upside down, because the ends are clamped) and races back the other way. The two reflected pulses cross, re-cross, and overlap again and again — and this endless criss-crossing of two half-pulses bouncing between the ends is exactly what separation of variables reorganizes into standing waves and harmonics, the language in which musicians actually think about a string's sound. D'Alembert's travelling pulses and the standing-wave harmonics are two descriptions of the very same physics.

D'Alembert's formula, exactly as written, only applies to a string that is infinite (or, more precisely, to a domain where the initial data is defined and no boundary ever gets in the way during the time you care about). A real guitar or violin string is finite, clamped at both ends, and the raw formula does not know those ends exist.

The fix is a clever trick, not a new formula: you extend the initial data f and g off the finite interval [0, L] onto the whole line, using an odd extension about each fixed end (so the extended function is forced to vanish there, matching u(0,t) = u(L,t) = 0) and then repeating that pattern periodically. Only then do you plug the extended data into d'Alembert's formula — the reflections you see on a real string are, mathematically, just the formula's right- and left-movers wrapping back in from this extended, mirrored copy of the initial shape. Forgetting the extension and naively applying the bare formula to a finite string is one of the most common mistakes when first learning this method.

It's easy to think of exact, closed-form solutions to PDEs as a rare treat that mathematicians stumbled on late, after decades of grinding through series and special functions. D'Alembert's formula overturns that story: he published it in 1747, while wrestling with the vibrating-string problem — more than sixty years before Joseph Fourier introduced the trigonometric-series methods that would later dominate the subject.

That makes d'Alembert's solution one of the very first exact results in the entire history of mathematical physics — a startlingly modern-looking formula that predates almost all of the machinery (Fourier series, separation of variables as a general technique, even a fully rigorous definition of "function") that a modern textbook would reach for first. D'Alembert, Euler, and Daniel Bernoulli then spent years arguing — sometimes furiously — about exactly what kinds of "functions" were allowed to be plucked shapes at all, a dispute that quietly helped push mathematicians toward the modern definition of a function itself.