Numerical Methods for PDEs: Finite Differences

the FTCS scheme

/ F-T-C-S /

Imagine watching heat spread through a metal rod minute by minute. You know the temperature everywhere right now; you want it one minute later. The most direct guess is: each spot's new temperature is its old temperature, nudged by how it compares to its two immediate neighbours — hotter spots cool toward the average, cooler spots warm up. FTCS is exactly this intuition turned into a formula for the heat (diffusion) equation u_t = alpha * u_xx.

The name spells out the recipe: Forward in Time, Central in Space. You approximate the time derivative u_t by a forward difference (u_j^{n+1} - u_j^n) / k — looking one step ahead — and the space derivative u_xx by the central second-difference (u_{j-1}^n - 2 u_j^n + u_{j+1}^n) / h^2 at the current time level n. Equating them and solving for the only unknown, the new value, gives u_j^{n+1} = u_j^n + r * (u_{j-1}^n - 2 u_j^n + u_{j+1}^n), where r = alpha * k / h^2. Because every term on the right is already known at level n, you simply sweep across the grid and read off the new row — no system to solve. This is what makes FTCS an EXPLICIT scheme: cheap, simple, one node at a time.

The catch is stability. FTCS is only CONDITIONALLY stable: von Neumann analysis shows it blows up unless r = alpha * k / h^2 is at most 1/2. So if you refine the space grid by halving h, you must cut the time step k by a factor of four to stay stable — a brutal penalty that makes FTCS expensive precisely when you want accuracy. Cross that limit and the solution does not just get inaccurate; it explodes into wild oscillations within a few steps. FTCS is the textbook first example of explicit time-stepping, prized for clarity and cursed by its stability restriction.

Heat equation with alpha = 1, h = 0.1, choose k = 0.004 so r = k/h^2 = 0.4 (under 0.5, stable). At a node currently 20 with neighbours 18 and 24, the new value is 20 + 0.4*(18 - 40 + 24) = 20 + 0.4*2 = 20.8. Bump k to 0.006 and r = 0.6 > 0.5: within a handful of steps the numbers swing to ridiculous magnitudes — the scheme has gone unstable.

Explicit and trivial to code — but only stable when r = alpha*k/h^2 <= 1/2.

The stability bound r <= 1/2 is for the 1D heat equation; in two dimensions with the five-point Laplacian it tightens to r <= 1/4, and tighter still in 3D. FTCS applied to the ADVECTION equation (u_t + c u_x = 0) is unconditionally UNSTABLE — central-in-space is the wrong choice there, and you need an upwind scheme instead.

Also called
forward-time central-spaceexplicit Euler in time顯式格式前向時間中心空間