Skip to content

Diagnosing an Unstable Explicit Black–Scholes Grid

Original question

Why does my numerical solution to the Black-Scholes PDE become unstable when I increase the time step?
An explicit finite-difference step uses the old price curve to advance its diffusion and curvature. On a fixed spatial grid, a large time step can amplify small grid-scale errors at every update. Refine the time step, or use backward Euler or Crank–Nicolson with suitable treatment of the payoff kink and a convergence check.

Track what the explicit update does to an alternating error

For the diffusion equation Uτ=DUxxU_\tau=D U_{xx}, the standard explicit update uses λ=DΔτ/Δx2\lambda=D\Delta\tau/\Delta x^2:

Ujn+1=(1−2λ)Ujn+λ(Uj−1n+Uj+1n).U_j^{n+1}=(1-2\lambda)U_j^n+\lambda(U_{j-1}^n+U_{j+1}^n).
For the alternating error ej=(−1)je_j=(-1)^j, each neighbour equals −ej-e_j. One update multiplies the error by 1−4λ1-4\lambda. Its absolute value exceeds one when λ>1/2\lambda>1/2. Fourier modes at lower frequencies impose no tighter bound for this simple stencil. The Black–Scholes log-price equation has diffusion coefficient D=σ2/2D=\sigma^2/2, along with drift and discounting, so this heat-equation analysis explains the scaling. Derive or check the constraint for the actual discretisation used.

On a uniform spot grid Sj=jΔSS_j=j\Delta S, the explicit central Black–Scholes update has diagonal coefficient 1−Δτ(σ2j2+r)1-\Delta\tau(\sigma^2j^2+r). Requiring all coefficients to be nonnegative is a useful sufficient monotonicity check for this stencil with nonnegative rr. Also check the off-diagonal coefficients, especially at small jj where central differencing of the drift can create a negative weight.

Insert ej−1=ej+1=−eje_{j-1}=e_{j+1}=-e_j into the update to get a multiplier of 1−4λ1-4\lambda. If its magnitude exceeds one, even a small alternating perturbation grows each time you step. This explains the wiggles that appear before the prices become obviously wrong. In Black–Scholes the diffusion coefficient increases with Sj2S_j^2, so the largest spot indices can be the most restrictive. Halving the spatial step at fixed upper spot typically calls for about four times as many time steps in the diffusion-dominated part of an explicit grid.

Calculate the limit on one stock grid

Let maturity be one year, r=5%r=5\%, σ=25%\sigma=25\%, and Smax⁡=400S_{\max}=400 with 200 spot intervals. The highest interior index is 199199, so keeping its diagonal coefficient nonnegative requires Δτ≤1/(0.252(199)2+0.05)≈0.000404\Delta\tau\le1/(0.25^2(199)^2+0.05)\approx0.000404. The off-diagonal weights are nonnegative for these inputs. Using 4,000 time steps gives a diagonal weight of about 0.3810.381 at that node. Using 1,000 time steps gives a weight near −1.475-1.475. Inspect the entire price curve, including the far right, because an instability seeded there can grow long before the price at spot 100100 appears visibly wrong.

Use the options pricer to spot-check your explicit-grid European prices after refining the time step.

References and next steps