LUNAROPS · OPERATIONAL UPLINK 100% UPTIME 1,247d POSTS 893 JEFF.MOON@LUNAROPS.DEV UTC --:--:--

Black-Scholes for Engineers: Options Pricing as a Diffusion Problem

black-scholesoptions-pricingstochastic-calculuspartial-differential-equationsquantitative-financeito-lemmavolatility

Every options trading desk quotes prices from a formula that, if you strip away the dollar signs, is identical in structure to the equation that describes heat spreading through a metal rod. That is not a metaphor — it is a literal, provable change of variables. The Black-Scholes-Merton equation is a parabolic partial differential equation, and with the right substitution it becomes the one-dimensional heat equation, ∂u/∂τ = ∂²u/∂x², the same equation Fourier wrote down in 1822 to describe conduction. Options pricing, at its mathematical core, is a diffusion problem: uncertainty about a future stock price spreads forward in time the same way heat spreads forward through a solid, and the option’s value today is the “temperature” you’d measure by looking backward from a known boundary condition at expiry. This post derives the equation from first principles the way an engineer would — as a hedge argument plus a stochastic calculus identity, not as a memorized formula — states the assumptions that make it solvable in closed form, and then does the more useful thing: shows precisely where those assumptions fail, because the 1997 Nobel Prize committee gave the award for a model that the market spent the following decades proving wrong in specific, measurable ways.


The Setup: A Portfolio That Hedges Itself

Start with the thing you’re trying to price: a European call option, value V(S, t), a function of the underlying stock price S and time t, with strike K and expiry T. At expiry the value is known exactly — V(S, T) = max(S − K, 0). The entire problem is finding V at every earlier time, which means finding a function that satisfies some equation and matches that boundary condition.

The key move, due to Black, Scholes, and Merton in 1973, is to notice that you can build a portfolio — long one option, short Δ shares of the underlying — whose value change over an infinitesimal instant dt does not depend on which way the stock moves. If a portfolio’s return is riskless, arbitrage forces its return to equal the risk-free rate r. That single idea, formalized, produces the PDE.

Assume the stock follows geometric Brownian motion:

dS = μS dt + σS dW

where μ is the stock’s expected drift, σ is its volatility, and dW is a Wiener process increment — the continuous-time formalization of a random walk. S itself is log-normally distributed under this assumption, which matters later.

Because V is a function of the random variable S and of t, you cannot just differentiate it with ordinary calculus — S has nonzero quadratic variation, so second-order terms in dS don’t vanish the way they would for a smooth deterministic function. This is exactly what Ito’s lemma is for:

dV = (∂V/∂t)dt + (∂V/∂S)dS + ½σ²S²(∂²V/∂S²)dt

That last term — ½σ²S²·V_SS·dt — is the whole reason stochastic calculus exists as a separate discipline from ordinary calculus. It falls out of the (dW)² = dt identity, and it is the term every closed-form options formula secretly depends on.

Now build the hedged portfolio Π = V − Δ·S, choosing Δ = ∂V/∂S at each instant so the random dW terms cancel between dV and Δ·dS. What survives is deterministic:

dΠ = [∂V/∂t + ½σ²S²(∂²V/∂S²)] dt

A riskless portfolio must earn the risk-free rate: dΠ = rΠ dt = r(V − S·∂V/∂S)dt. Setting the two expressions for equal and rearranging gives the Black-Scholes PDE:

∂V/∂t + ½σ²S²(∂²V/∂S²) + rS(∂V/∂S) − rV = 0

That’s it. That is the entire model. Everything else — the closed-form call and put formulas, the Greeks, implied volatility — is either a boundary-value solution to this equation or a derivative of one.


The Same Equation, Wearing a Different Costume

The PDE above doesn’t look like the heat equation because of the and S coefficients in front of the second and first derivative terms — those come from S being log-normal rather than normal. Substitute x = ln(S) and reverse time with τ = T − t (diffusion equations run forward in τ, but option value is naturally computed backward from expiry), and the variable-coefficient PDE above collapses into a constant-coefficient diffusion equation:

∂u/∂τ = (σ²/2)·∂²u/∂x² + (r − σ²/2)·∂u/∂x − ru

A further substitution (absorbing the first-derivative drift term and the −ru decay term into an exponential prefactor) reduces this all the way to the canonical heat equation ∂u/∂τ = (σ²/2)·∂²u/∂x². This is not a loose analogy — it is the actual method Black and Scholes used to find the closed-form solution in their original 1973 paper, “The Pricing of Options and Corporate Liabilities”: transform the finance problem into a known physics problem, borrow the known Green’s-function solution to the heat equation (a Gaussian kernel), then transform the solution back. The N(d1) and N(d2) terms in the familiar closed-form formula are exactly what a Gaussian heat kernel looks like after being integrated against a log-normal terminal condition.

  Heat equation picture                  Options picture (same math)
  ----------------------                 ----------------------------
  Rod at time τ=0: temperature           At expiry: payoff = max(S-K,0)
  spike at the "hot point"               is a kink, not a diffusion yet

  As τ increases forward:                Solve BACKWARD from expiry:
  heat diffuses outward,                 uncertainty about S diffuses
  spike smooths into a Gaussian          the kink into a smooth curve

  u(x, τ) = temperature at               V(S, t) = option value at
  position x, elapsed time τ             stock price S, time-to-expiry τ

The closed-form call price:

1
2
3
4
5
6
7
import numpy as np
from scipy.stats import norm

def bs_call(S, K, T, r, sigma):
    d1 = (np.log(S / K) + (r + 0.5 * sigma**2) * T) / (sigma * np.sqrt(T))
    d2 = d1 - sigma * np.sqrt(T)
    return S * norm.cdf(d1) - K * np.exp(-r * T) * norm.cdf(d2)

is a diffusion result end to end: norm.cdf is the Gaussian, and it appears because the terminal payoff got convolved with a Gaussian transition density. This is also why the Greeks are just partial derivatives of this same function — delta is ∂V/∂S, gamma is ∂²V/∂S², and both are literally the coefficients that appear inside the PDE itself. The PDE isn’t just used to derive the price; its own terms are the sensitivities traders hedge.


The Assumptions That Make It Solvable

A closed-form solution to a PDE is a luxury, and luxuries have a price: a list of assumptions strict enough that the equation has constant (or at least simple) coefficients. Black-Scholes makes seven of them.

# Assumption What it buys you What actually happens
1 S follows geometric Brownian motion with constant σ Log-normal terminal distribution; closed-form Gaussian integral Volatility clusters and spikes (GARCH effects); it is not constant
2 No jumps — S is continuous The quadratic-variation term in Ito’s lemma is well-defined and finite Earnings surprises, crashes, and news gaps are discontinuous by nature
3 Constant, known risk-free rate r One fewer stochastic factor in the PDE Rates move, and rate volatility matters for long-dated options
4 No dividends Simplifies the drift term Real equities pay dividends; the model needs an adjustment term to handle it
5 No transaction costs, infinitely divisible shares The replicating portfolio can be rebalanced continuously and freely Every rebalance costs a spread and commission; continuous rebalancing is impossible
6 Continuous trading, no liquidity constraints The hedge is always achievable at the theoretical delta Markets gap, halt, and have finite depth — you can’t always get filled at the mid
7 European exercise only The boundary condition is a single terminal payoff, not a moving early-exercise boundary American options need a free-boundary PDE (no closed form); this is a genuinely harder problem

Assumption 1 is the one that matters most for the rest of this post, because it’s the one markets falsified in a single, dateable afternoon.


Where the Model Breaks: One Afternoon in 1987

Before October 19, 1987, implied volatility — the σ you back out of a quoted option price by inverting the Black-Scholes formula — was roughly flat across strikes, just as the model assumes: one stock, one volatility, regardless of whether the option is at-the-money or far out-of-the-money. On that day the S&P 500 fell 20.5% in a single session — an event that geometric Brownian motion with any historically reasonable σ assigns a probability so small it rounds to zero. Traders did not stop using Black-Scholes; they started distrusting its single-volatility assumption specifically for tail risk. Out-of-the-money puts — the ones that only pay off in a crash — got bid up and never came back down. Plot implied volatility against strike price for equity index options any day since, and you get a smile or, more commonly for equities, a downward-sloping skew: low strikes trade at higher implied volatility than high strikes, because the market is pricing in exactly the fat-tailed crash risk that assumption 1 says can’t happen.

  Implied volatility vs strike (equity index options, post-1987)

  IV %
   35 |  *
   30 |    *
   25 |       *
   20 |          *  *  *  ATM  *  *
   15 |                              *
      +------------------------------------  Strike
        deep ITM puts    ATM      deep OTM calls
        (crash insurance,          (less demand,
         bid up, high IV)           lower IV)

A single number σ cannot produce a curve — by definition, Black-Scholes with one volatility input produces a flat line across strikes. The smile is not a refinement of the model; it is empirical proof the model’s core assumption is wrong, quantified and traded every single day since 1987.


The Fixes: Making the Diffusion Non-Constant

Three families of models relax assumption 1 in different directions, and none of them recovers a simple closed form — this is the trade you make for realism.

Local volatility (Dupire, and independently Derman and Kani, all 1994) keeps σ deterministic but lets it vary with both stock price and time: σ(S, t) instead of a constant. It’s calibrated so the model exactly reproduces today’s observed volatility surface — every quoted option price is matched by construction. The diffusion coefficient in the PDE is no longer constant, but it’s still a diffusion — no jumps, no second source of randomness — so the equation is solved numerically (finite differences or trees) rather than in closed form.

Stochastic volatility (Heston, 1993) goes further and makes σ itself a second random process, typically mean-reverting: dv = κ(θ − v)dt + ξ√v dW₂, correlated with the stock’s own Brownian motion. This is a genuinely two-factor diffusion — a system of coupled PDEs rather than one — and it’s what actually produces a persistent smile shape rather than one that has to be re-fit strike by strike every day. Heston has a semi-closed-form solution via Fourier transform, which is why it remains popular despite the added complexity.

Jump diffusion (Merton, 1976 — predating the smile by over a decade, originally motivated by discontinuous news events rather than the 1987 crash specifically) adds a compound Poisson jump process on top of the ordinary Brownian diffusion: dS = μS dt + σS dW + S dJ, where J is a jump term with its own frequency and size distribution. This directly attacks assumption 2, not assumption 1 — it says the path itself is discontinuous, which is a structurally different kind of wrong than “volatility isn’t constant.”

Model Year Relaxes Extra state variables Closed form?
Black-Scholes 1973 — (baseline) 0 Yes
Merton jump-diffusion 1976 Continuity (assumption 2) 0 (adds jump params) Yes, as a series expansion
Heston stochastic vol 1993 Constant volatility (assumption 1) 1 (variance process) Semi-closed (Fourier)
Local vol (Dupire/Derman-Kani) 1994 Constant volatility (assumption 1) 0 (σ becomes a surface) No — numerical PDE

None of these is “the” fix. Desks pick based on what they’re hedging: local vol for exotic payoffs that need to match today’s vanilla surface exactly, Heston or its variants for anything where the dynamics of the smile over time matter (because local vol famously gets those dynamics backward), jump models for single-name equity risk around known event dates like earnings.


Delta Hedging Is the Part That Survives

Here is the honest caveat underneath everything above: relaxing assumption 1 doesn’t just change a formula, it changes what “hedging” means. The elegant part of the original derivation — that a single Δ = ∂V/∂S shares hedges away all risk instantaneously — depends on there being exactly one source of randomness (dW) to cancel. Add a second stochastic factor (Heston’s variance process) or a jump term (Merton’s dJ), and one hedge instrument can no longer span the risk. You need to hedge vega (volatility exposure) and, in the jump case, you generally cannot fully hedge at all with a finite number of instruments, because a jump process is not driven by a Brownian motion and the market is incomplete in the technical sense — there is no self-financing replicating portfolio. This is not a minor footnote; it’s the reason options market-makers run books with dozens of hedge instruments and still carry residual “jump risk” and “vol-of-vol risk” that no static hedge eliminates. Black-Scholes solved a complete-markets toy problem exactly; every extension since has traded exactness for realism and, in doing so, given up the guarantee that risk can be hedged away at all.


Verdict

Black-Scholes deserves its reputation, but not for the reason most people cite it — it is not a good predictor of option prices (the market has disagreed with its flat-volatility assumption, priced into every quote, since October 1987). Its actual contribution is the method: turn a hedging argument into a PDE via Ito’s lemma, recognize the PDE as a disguised diffusion equation, and borrow a century-old physics solution to solve it in closed form. That method is durable even where the specific model is wrong, which is why every “fix” — local vol, stochastic vol, jump diffusion — is still built as a PDE or an SDE and still gets solved with the same toolkit (Feynman-Kac, Fourier transforms, finite differences) rather than something unrelated. If you’re pricing vanilla, near-the-money, short-dated options, Black-Scholes is close enough and fast enough that more complex models aren’t worth the calibration burden. If you’re pricing anything with meaningful tail risk, a long dated skew, or a payoff sensitive to the path of volatility rather than just its level, the constant-σ assumption is not a simplification — it’s the wrong answer, by a margin the market has been pricing explicitly for going on four decades.


Sources

Comments