Finite-Difference Methods for Option Pricing

Adapted from a 2015 computational finance assignment. It prices the same European call as the Monte Carlo and COS-method posts.

The Equation on a Grid

The value V(S,t)V(S,t) of a European option under Black-Scholes obeys

Vt+rSVS+12σ2S22VS2=rV. \frac{\partial V}{\partial t} + rS\frac{\partial V}{\partial S} + \tfrac{1}{2}\sigma^2 S^2\frac{\partial^2 V}{\partial S^2} = rV.

Monte Carlo integrates the terminal payoff over simulated paths; the COS method integrates it against the characteristic function. The finite-difference method discretises the equation itself onto a grid in price and time and marches the payoff at expiry backwards to today. The payoff is the terminal condition, so time runs in reverse. Write

τ=Tt, \tau = T - t,

so the payoff sits at τ=0\tau = 0 and the solution advances in τ\tau. With Θ=V/t\Theta = \partial V/\partial t, Δ=V/S\Delta = \partial V/\partial S, Γ=2V/S2\Gamma = \partial^2 V/\partial S^2, the equation is Θ+rSΔ+12σ2S2Γ=rV\Theta + rS\Delta + \tfrac12\sigma^2 S^2\Gamma = rV. Throughout, the option is a European call with K=110K = 110, T=1T = 1, σ=0.30\sigma = 0.30, r=0.04r = 0.04; its analytical value at S0=100S_0 = 100 is 9.62549.6254.

Two Grids

There are two standard choices of spatial grid.

The untransformed grid places nodes at Si=iδSS_i = i\,\delta S, evenly spaced in price. The PDE keeps its SS-dependent coefficients rSrS and 12σ2S2\tfrac12\sigma^2 S^2.

The log grid changes variables to x=lnSx = \ln S. Substituting x=lnSx = \ln S and τ=Tt\tau = T-t and writing U(x,τ)=V(S,t)U(x,\tau) = V(S,t) gives

Uτ=12σ22Ux2+(r12σ2)UxrU. \frac{\partial U}{\partial \tau} = \tfrac{1}{2}\sigma^2\frac{\partial^2 U}{\partial x^2} + \left(r - \tfrac{1}{2}\sigma^2\right)\frac{\partial U}{\partial x} - rU.

The diffusion and drift coefficients are now constant in xx. Equal steps in xx are geometric steps in SS: the grid is fine at small SS, and a distant upper boundary costs few extra nodes.

Uniform grid in S versus uniform grid in log S
The two grids. Even spacing in $S$ leaves the PDE coefficients depending on $S$ (they grow like $i^2$ and $i$ across the grid). Even spacing in $x = \ln S$ makes the coefficients constant, at the cost of nodes that crowd toward small $S$.

Each grid has its own coefficients: rSrS and 12σ2S2\tfrac12\sigma^2 S^2 on the SS grid, the constants (r12σ2)(r - \tfrac12\sigma^2) and 12σ2\tfrac12\sigma^2 on the log grid. The scheme below uses the SS grid.

The Stencils

The three derivatives are replaced by difference quotients from Taylor expansions. These are the same on either grid. For Θ\Theta, a forward Euler step in time. Expanding V(S,tδt)V(S, t - \delta t) about (S,t)(S,t),

Vt(S,t)=V(S,t)V(S,tδt)δt+O(δt). \frac{\partial V}{\partial t}(S,t) = \frac{V(S,t) - V(S, t-\delta t)}{\delta t} + \mathcal{O}(\delta t).

On the grid, with time indexed by τ\tau so that a higher index is an earlier calendar time, and VinV^n_i the value at node ii and step nn, this is (VinVin+1)/δt(V^n_i - V^{n+1}_i)/\delta t.

For Δ\Delta, a centred difference. The two expansions

V(S±δS,t)=V(S,t)±δSVS+12δS22VS2+O(δS3) V(S \pm \delta S, t) = V(S,t) \pm \delta S\, \frac{\partial V}{\partial S} + \tfrac12\delta S^2\frac{\partial^2 V}{\partial S^2} + \mathcal{O}(\delta S^3)

subtract to cancel the even terms:

VS(S,t)=Vi+1nVi1n2δS+O(δS2). \frac{\partial V}{\partial S}(S,t) = \frac{V^n_{i+1} - V^n_{i-1}}{2\,\delta S} + \mathcal{O}(\delta S^2).

Adding the same two expansions cancels the odd terms and gives Γ\Gamma:

2VS2(S,t)=Vi+1n2Vin+Vi1nδS2+O(δS2). \frac{\partial^2 V}{\partial S^2}(S,t) = \frac{V^n_{i+1} - 2V^n_i + V^n_{i-1}}{\delta S^2} + \mathcal{O}(\delta S^2).

FTCS: the Explicit Scheme

Forward-Time Centred-Space substitutes the three stencils into the PDE and solves for the single unknown Vin+1V^{n+1}_i from three known values at the previous step. On the SS grid, because Si=iδSS_i = i\,\delta S the factor δS\delta S cancels against the SS and S2S^2 in the coefficients, and the update reduces to functions of the index ii:

Vin+1=aiVi1n+biVin+ciVi+1n, V^{n+1}_i = a_i V^n_{i-1} + b_i V^n_i + c_i V^n_{i+1},

ai=12(σ2i2ri)δt,bi=1(σ2i2+r)δt,ci=12(σ2i2+ri)δt. a_i = \tfrac12(\sigma^2 i^2 - r i)\,\delta t,\quad b_i = 1 - (\sigma^2 i^2 + r)\,\delta t,\quad c_i = \tfrac12(\sigma^2 i^2 + r i)\,\delta t.

Each new value is computed directly, with no system to solve.

Computational stencils for FTCS and Crank-Nicolson
Computational stencils. FTCS (left) computes one unknown at step $n{+}1$ from three known values at step $n$, so each node updates independently. Crank-Nicolson (right) couples the three unknowns at step $n{+}1$, which are solved together as a tridiagonal system.

An easy thing to get wrong. The coefficients ai,bi,cia_i, b_i, c_i carry the factors σ2i2\sigma^2 i^2 and rir i, which are the SS-grid coefficients 12σ2Si2\tfrac12\sigma^2 S_i^2 and rSirS_i with the δS\delta S divided out. It is tempting to use the log-grid constants (r12σ2)(r - \tfrac12\sigma^2) and 12σ2\tfrac12\sigma^2 here instead. This is what I did on my first attempt, in the computational finance course where I met these methods. Consider the diffusion term at S=100S = 100: on the SS grid it is 12σ2S2=0.045×104=450\tfrac12\sigma^2 S^2 = 0.045 \times 10^4 = 450, while the log-grid constant 12σ2=0.045\tfrac12\sigma^2 = 0.045 is smaller by a factor of 10410^4. With the constant on the SS grid the diffusion is far too small, value does not spread inward from the in-the-money region, and the out-of-the-money call is priced at essentially zero: the scheme returns 0.00010.0001 for the 9.62549.6254 call. The constants are correct on the log grid, where the payoff is max(exiK,0)\max(e^{x_i} - K, 0) and the step is δx\delta x. On the SS grid the coefficients depend on SS.

Stability

The explicit scheme is only conditionally stable. The binding requirement is bi0b_i \ge 0, worst at the top of the grid where ii is largest:

δt1σ2imax2+r1σ2N2. \delta t \le \frac{1}{\sigma^2 i_{\max}^2 + r} \approx \frac{1}{\sigma^2 N^2}.

The timestep must shrink like 1/N21/N^2. Doubling the asset resolution quadruples the number of timesteps: N=20N = 20 needs 4040 steps, N=100N = 100 needs 10001000, N=200N = 200 needs 40004000. The work grows like N3N^3. This is the main drawback of the explicit scheme, and the reason for the implicit scheme below.

Crank-Nicolson: the Implicit Scheme

Crank-Nicolson averages the spatial operator over the old and new time levels. Writing the discretised right-hand side of the PDE as a tridiagonal operator L\mathcal{L} acting on the value vector, the update is

(I12δtL)Vn+1=(I+12δtL)Vn. \left(I - \tfrac12\delta t\,\mathcal{L}\right)V^{n+1} = \left(I + \tfrac12\delta t\,\mathcal{L}\right)V^n.

Now Vn+1V^{n+1} appears on both sides. The three unknowns at each step are coupled, and each step solves a tridiagonal system by one LU (or Thomas) sweep in O(N)\mathcal{O}(N). Crank-Nicolson is unconditionally stable, so the timestep is set by accuracy rather than stability, and its error is O(δt2+δS2)\mathcal{O}(\delta t^2 + \delta S^2) against the explicit scheme’s O(δt+δS2)\mathcal{O}(\delta t + \delta S^2). The matrix should be factored once and the factorisation reused each step; re-inverting it every timestep costs O(N3)\mathcal{O}(N^3) per step.

Boundary Conditions

The grid is finite, so the scheme needs values at the edges. For a call:

The upper condition is only asymptotic, and imposing it at a finite SmaxS_{\max} introduces an error. At a modest boundary the true value still sits below SmaxKerτS_{\max} - K e^{-r\tau}, since the option retains some time value and its delta is below one. Pinning the boundary above the true value biases the solution upward, and refining the grid does not remove the error. Placing the boundary at several times the strike keeps it negligible.

Price error versus asset steps for two domain sizes
Absolute price error at $S_0 = 100$ against grid refinement, for two choices of $S_{\max}$. With the tight $S_{\max} = 2S_0$ the error settles near $0.9$ and refining the grid does not remove it: the boundary, not the grid, limits the accuracy. With $S_{\max} = 4K$ the error falls toward $10^{-2}$. On a fine grid the tight-domain price is still off by $0.88$.

Results

With a generous domain, both schemes converge to the analytical value as the grid is refined. Convergence is oscillatory: the node nearest the spot straddles it alternately from above and below as NN changes.

Convergence of FTCS and Crank-Nicolson to the Black-Scholes price
Call price at $S_0 = 100$ against the number of asset steps. The two schemes track each other almost exactly: at a given $N$ the price is set by the shared spatial discretisation, and the time error, where the schemes differ, is small in both.

The overlap is expected, not a shortcoming of Crank-Nicolson. At a fixed asset grid both schemes carry the same O(δS2)\mathcal{O}(\delta S^2) spatial error, and the plot runs each with enough timesteps that the time error is negligible, so they reach the same value. The schemes differ in the cost of getting there. FTCS is stable only for δt1/(σ2N2)\delta t \lesssim 1/(\sigma^2 N^2), so its number of timesteps must grow like N2N^2; Crank-Nicolson is unconditionally stable and needs only MNM \sim N steps for comparable time accuracy. At N=100N = 100 that is about 10001000 steps against 100100, and the gap widens with resolution.

Time steps required against asset steps for the two schemes
Time steps required against asset steps, log-log. FTCS's stability limit forces the count to grow like $N^2$; Crank-Nicolson needs only $M \sim N$ for accuracy. At $N = 320$ this is about $10^4$ steps against $3 \times 10^2$.

At N=100N = 100 both schemes agree with Black-Scholes across moneyness:

S0S_0analyticalFTCSCrank-Nicolson
1009.62549.62509.6238
11015.128615.102315.1012
12021.788821.783521.7842

The grid also gives the Greeks, as differences of the value surface it already holds. A centred difference of the solution gives the delta across the range of SS without further solving.

Finite-difference delta against the Black-Scholes delta
Delta, $\partial V/\partial S$, from a centred difference of the finite-difference solution, against the analytical $N(d_1)$. The two match across moneyness away from the boundary, where the imposed condition distorts the derivative.

Summary

The finite-difference method prices the option by discretising the Black-Scholes PDE and marching the payoff backwards, producing the value surface and the Greeks from one solve. At a given asset grid the explicit and implicit schemes return the same price, set by the shared spatial error; they differ in cost. FTCS is conditionally stable, so its number of timesteps grows like N2N^2. Crank-Nicolson is unconditionally stable and second order in time, needing only MNM \sim N steps, at the cost of a tridiagonal solve per step. Two choices matter as much as the scheme: the grid, whose coefficients must match the transform, and the placement of the far boundary.