The Method of Characteristics

Why did u(x, t) = f(x - ct) solve the transport equation? Because u stays constant along the moving lines x - ct = \text{const}. That was a nice trick for one particular PDE — but it turns out to be far more than a trick. Ride along the right curve through the (x, t) plane, and almost any first-order PDE collapses to something you already know how to solve: an ordinary differential equation. The method of characteristics is the recipe for finding that curve.

Along a path x(t), the chain rule gives the rate of change of u as you ride it:

\frac{d}{dt}\,u\big(x(t), t\big) = u_t + \frac{dx}{dt}\,u_x.

Compare with u_t + c\,u_x = 0: if we choose the path so that \frac{dx}{dt} = c, the right-hand side is the PDE, so \frac{du}{dt} = 0. The unknown is constant along that path. A whole hard problem — a function of two variables, changing in two directions at once — has been reduced to a family of one-variable problems, one per starting point.

The recipe

Strip away the specifics and what's left is a two-step routine that works for any first-order PDE of the form u_t + a(x, t)\,u_x = 0 — even when the coefficient a is not the constant speed c, but changes from place to place:

  1. Find the characteristics. Read the coefficient of u_x straight off the PDE and set dx/dt equal to it. Solving that ODE gives a family of curves, one through every starting point x_0 on the initial line t = 0.
  2. Solve the ODE along each curve. The same substitution always turns the PDE into du/dt = 0 along that curve, so u keeps whatever value it had at the curve's foot, u(x_0, 0) = f(x_0).

Reassembling the solution is just bookkeeping: solve the characteristic equation for x_0 in terms of (x, t), and substitute it into f(x_0). For the transport equation, x_0 = x - ct and out pops u(x, t) = f(x - ct) again — but now as one case of a much more general machine.

Worked example: a coefficient that varies with x

Try u_t + x\,u_x = 0, with u(x, 0) = f(x). The coefficient of u_x is no longer a constant speed — it's x itself, so points further from the origin move faster.

Step 1 — the characteristics. Set dx/dt = x. This is a separable ODE:

\frac{dx}{x} = dt \;\Rightarrow\; \ln x = t + \text{const} \;\Rightarrow\; x(t) = x_0\,e^{t}.

Every characteristic is an exponential curve fanning out from its starting point x_0 on the t = 0 line.

Step 2 — solve along it. As always, du/dt = 0 along a characteristic, so u = f(x_0) stays fixed. Solving x = x_0 e^t for the label gives x_0 = x\,e^{-t}, so

u(x, t) = f\!\left(x\,e^{-t}\right).

A quick check confirms it: differentiating, u_t = -x e^{-t} f' and u_x = e^{-t} f', so u_t + x\,u_x = -x e^{-t} f' + x \cdot e^{-t} f' = 0. It satisfies the PDE exactly.

Compare this to plain transport. There, every characteristic had the same slope c, so the family was a set of parallel lines. Here the slope dx/dt = x depends on where you are, so the characteristics fan out (or squeeze in) instead of marching in lockstep — yet each one is still determined purely by its starting position, not by the value of u that it carries. That last detail matters more than it looks: it's exactly what keeps these characteristics from ever crossing.

A second example: a coefficient that varies with time

The same recipe handles a coefficient that changes with t instead. Take u_t + t\,u_x = 0, again with u(x, 0) = f(x) — a wave whose carrying speed steadily accelerates.

Characteristics: dx/dt = t integrates directly to

x(t) = x_0 + \tfrac{1}{2}t^2,

a family of parabolas opening to the right, one through every x_0.

Along each one u is still frozen at f(x_0). Solving for the label, x_0 = x - \tfrac{1}{2}t^2, so

u(x, t) = f\!\left(x - \tfrac{1}{2}t^2\right).

Same two steps, same shape of answer, a completely different family of curves underneath. That is the whole point of the method: the machinery never changes, only the geometry of the characteristics it produces.

The geometric picture

Step back from any single example and a picture emerges. A first-order PDE's characteristics form a whole family of curves that sweep out the entire (x, t) plane — through every point (x, t) with t > 0 passes exactly one characteristic, and it leads back to exactly one foot on the initial line. Each curve is like a conveyor belt: it picks up one piece of the initial data f(x_0) at t = 0 and carries it forward, unchanged, forever after. Whatever the value was at the start, that's the value everywhere along the belt.

In the box below, each line is a characteristic x = x_0 + ct rising through the plane; u never changes as you travel up one. Change the speed c and the whole family tilts together — a larger speed leans the lines further over, carrying the data faster. Notice that however you set c, the lines stay perfectly parallel: they never touch, let alone cross. The highlighted line is the one starting at x_0 = 0.

That "never crossing" property isn't a coincidence of this particular equation — it holds for any equation whose coefficient depends only on x and t, never on u itself (as in both worked examples above). Each characteristic is fully decided by where it starts, so two different starting points can never be forced onto a collision course.

Everything on this page relies on the PDE being first order — only one derivative in x and one in t. That's what lets the chain rule turn the PDE into a single ODE along a single curve. Push into second-order PDEs (like the heat or wave equation) and there's no single characteristic direction left to exploit in the same simple way; a different toolkit is needed.

Even for first-order equations, there is a catch, and it's an important one. Everything above quietly assumed the coefficient of u_x depends only on x and t — never on u itself. The moment it does (a quasilinear equation), characteristics can carry different speeds depending on the solution value they're transporting, and faster ones can catch up to slower ones and cross. At a crossing point the method tries to assign u two different values at once — a sure sign the smooth solution has broken down and a shock is forming. That's not a failure of the method — it's the method faithfully reporting that something genuinely new is happening.

This isn't just textbook furniture. Traffic-flow models describe the density of cars on a road with a first-order PDE, and its characteristics are literally the paths that "clumps" of traffic follow down the highway. When traffic ahead is denser (and so moving slower) than traffic behind, the characteristics from behind catch up to the ones ahead and cross — and that crossing is the mathematical birth of a traffic jam, springing up from perfectly smooth-flowing traffic with no accident required.

The same idea, run in reverse, is a workhorse of gas dynamics and aerodynamics: engineers track how a pressure disturbance — a shock wave off a supersonic jet, a compression pulse in an engine cylinder — propagates through a fluid by following its characteristics. It's the same handful of equations from this page, just with the fluid's own speed of sound standing in for c.