Slide 1 / 14 00:00

Geometric Brownian Motion

How calculus models a positive quantity that grows under random, proportional shocks — and why the result is log-normal

AP Calculus BC final project · Higher-math topic

The problem

Quantities that grow randomly but stay positive

Many real quantities share three traits: they are always positive, they tend to grow or decay at a roughly constant percentage rate, and that rate is disturbed by unpredictable shocks proportional to the current size.

Where it shows up

A bacterial colony, a drug concentration in the bloodstream, an animal population, an accumulating wear index — each is a positive number nudged up or down by random influences.

The question

What is the simplest continuous-time model that captures random growth, never produces a negative value, and still allows exact calculus?

We want one equation whose solutions are random curves, yet whose average, spread, and distribution we can still compute by hand.

The problem, made precise

Why the obvious models fail

Additive noise

\(X_{t+\Delta t}=X_t+\varepsilon\), with \(\varepsilon\sim\mathcal N(0,\sigma^2)\), is simple — but a Gaussian shock can exceed \(X_t\) and push a positive state below zero.

Deterministic exponential

The AP Calculus growth law \(\frac{\mathrm dS}{\mathrm dt}=\mu S\) gives \(S(t)=S_0e^{\mu t}\): always positive, but every run is identical — no uncertainty at all.

A good model must meet three requirements at once:

Positivity. The state stays strictly above zero for every outcome.
Proportional shocks. Randomness scales with the current size, so a large state moves in larger absolute steps than a small one.
Tractability. The model has an exact distribution and a fast way to simulate it.

The solution · construction

From an exponential ODE to a stochastic equation

Begin with the deterministic growth law from AP Calculus BC, written in differential form:

\[ \mathrm dS = \mu S\,\mathrm dt. \]

Inject randomness proportional to the state with a term driven by Brownian motion \(W_t\):

\[ \mathrm dS_t = \underbrace{\mu S_t\,\mathrm dt}_{\text{drift}} + \underbrace{\sigma S_t\,\mathrm dW_t}_{\text{diffusion}}. \]

\(\mu\) is the average proportional growth rate; \(\sigma\) (the volatility) sets the scale of the random proportional fluctuations.

Both terms carry the factor \(S_t\), which makes the model geometric: every change is measured relative to the current level, and that is what keeps \(S_t\) positive.

The solution · key idea

Brownian motion bends the chain rule

Standard Brownian motion \(W_t\) has independent, Gaussian increments:

\[ W_t-W_s\sim \mathcal N(0,\,t-s),\qquad t>s. \]

Over a step \(\Delta t\) the increment scales like \(\sqrt{\Delta t}\), so its square scales like \(\Delta t\) — the rule \((\mathrm dW_t)^2=\mathrm dt\). A second-order Taylor expansion can no longer ignore that term. Applying it to \(g(S)=\ln S\):

\[ \mathrm d\ln S_t=\frac{1}{S_t}\,\mathrm dS_t-\frac{1}{2S_t^{2}}(\mathrm dS_t)^2=\left(\mu-\frac{\sigma^{2}}{2}\right)\mathrm dt+\sigma\,\mathrm dW_t. \]
The extra \(-\sigma^2/2\) is the Itô correction, or volatility drag: randomness lowers the typical growth of \(\ln S_t\) even though the level still drifts at \(\mu\).

The solution · closed form

Integrate once, exponentiate back

Since \(\mathrm d\ln S_t\) has constant drift and constant diffusion, it integrates directly from \(0\) to \(T\). Exponentiating recovers the level:

\[ S_T=S_0\exp\!\left(\left(\mu-\frac{\sigma^2}{2}\right)T+\sigma\sqrt{T}\,Z\right), \qquad Z\sim\mathcal N(0,1). \]
Positivity. \(S_T\) is an exponential, so \(S_T>0\) for every outcome — requirement one, met.
Distribution. \(\ln S_T\) is normal, so \(S_T\) is log-normal, with a long right tail.
Roles. \(\mu\) shifts the center; \(\sigma\) widens the spread and lowers the median.

The solution · consequences

Mean, median, and spread

With the single Gaussian fact \(\mathbb E[e^{aZ}]=e^{a^2/2}\) for \(Z\sim\mathcal N(0,1)\), every moment follows in closed form:

\[ \mathbb E[S_T]=S_0e^{\mu T},\qquad \operatorname{Median}(S_T)=S_0e^{(\mu-\sigma^2/2)T}. \]

The mean tracks the full drift \(\mu\); the median carries the \(-\sigma^2/2\) correction, so for any \(\sigma>0\) the median sits below the mean — the signature of a right-skewed log-normal.

\[ \operatorname{Var}(S_T)=S_0^{2}e^{2\mu T}\!\left(e^{\sigma^{2}T}-1\right). \]

As \(\sigma\) grows the paths fan out quickly, even though their average still follows \(S_0e^{\mu T}\).

The solution · computation

Simulating the model

Each path uses the exact update implied by the closed form — no discretization error, because \(\ln S\) is linear in the noise:

\[ S_{k+1}=S_k\exp\!\left((\mu-\sigma^2/2)\Delta t+\sigma\sqrt{\Delta t}\,Z_k\right). \]
100
0.08
0.25
1.00
25

Minimal Python implementation

import numpy as np
import matplotlib.pyplot as plt

S0, mu, sigma, T, steps = 100, 0.08, 0.25, 1, 252
dt = T / steps
t = np.linspace(0, T, steps + 1)

S = np.zeros(steps + 1)
S[0] = S0
for i in range(steps):
    z = np.random.normal()
    S[i + 1] = S[i] * np.exp(
        (mu - 0.5 * sigma**2) * dt + sigma * np.sqrt(dt) * z
    )

plt.plot(t, S)
plt.title("Geometric Brownian motion path")
plt.xlabel("time")
plt.ylabel("S(t)")
plt.show()

Mathematical history

How the pieces came together

  • 1827. Botanist Robert Brown records the ceaseless jitter of pollen grains in water — the physical picture of random microscopic shocks.
  • 1905. Einstein (with Smoluchowski) explains that jitter as molecular bombardment, linking it to the diffusion equation.
  • 1923. Norbert Wiener constructs the Wiener process, giving Brownian motion a rigorous mathematical definition.
  • 1933. Kolmogorov puts probability on an axiomatic footing, making "random functions" precise.
  • 1944–51. Kiyosi Itô develops stochastic calculus and Itô's lemma — the chain-rule correction at the core of GBM.
  • 1960s. GBM becomes the standard textbook model for positive random growth and the canonical benchmark SDE.

Academic example I

Expected value and median

Problem

A GBM has \(S_0=100\), \(\mu=0.10\), \(\sigma=0.20\), and \(T=2\). Find the expected value and the median of \(S_T\).

Idea

Both come straight from the closed form. The mean uses the full drift \(\mu\); the median uses the drift after the volatility correction, \(\mu-\tfrac{\sigma^2}{2}\). Just substitute the numbers.

Compute

\[ \mathbb E[S_T]=100\,e^{0.10\cdot 2}\approx 122, \] \[ \operatorname{Median}(S_T)=100\,e^{(0.10-0.02)\cdot 2}\approx 117. \]

The mean lands above the median: a few large outcomes pull the average up.

Academic example II

A first probability

Problem

With \(S_0=100\), \(\mu=0.10\), \(\sigma=0.20\), and \(T=1\), what is the chance that \(S_1\) ends above its starting value of \(100\)?

Idea

Take logs. The event \(S_1>100\) is the same as \(\ln(S_1/100)>0\), and that log is normal with mean \(\mu-\tfrac{\sigma^2}{2}=0.08\) and standard deviation \(\sigma\sqrt T=0.20\).

Compute

\[ \mathbb P(S_1>100)=\mathbb P\!\left(Z>\frac{0-0.08}{0.20}\right)=\mathbb P(Z>-0.4). \]

So \(\Phi(0.4)\approx 0.66\) — about a two-in-three chance of finishing higher than it started.

Real-world application I · biology

Expected size of a colony

Problem

A bacterial colony starts at \(N_0=1000\) cells with mean growth rate \(\mu=0.5\,\mathrm{hr}^{-1}\) and random fluctuation \(\sigma=0.3\). Modeling \(N_t\) as GBM, what size do we expect after \(T=2\) hours?

Idea

This is the mean formula from before, now applied to a population. Because the model is an exponential, the cell count stays positive — exactly what a real colony requires.

Compute

\[ \mathbb E[N_T]=N_0e^{\mu T}=1000\,e^{0.5\cdot 2}\approx 2718\ \text{cells}. \]

On average the colony nearly triples in two hours, with individual runs scattered around that value.

Real-world application II · pharmacology

A drug clearing from the body

Problem

A drug starts at \(C_0=100\,\mathrm{mg/L}\) and is cleared at mean rate \(\mu=-0.2\,\mathrm{hr}^{-1}\) with random fluctuation \(\sigma=0.2\). Modeling \(C_t\) as GBM, what is the median concentration after \(T=3\) hours?

Idea

The same median formula works, only now \(\mu\) is negative, so the level decays instead of grows. Positivity still holds: a concentration approaches zero but never drops below it.

Compute

\[ \operatorname{Median}(C_T)=C_0e^{(\mu-\sigma^2/2)T}=100\,e^{-0.66}\approx 52\ \mathrm{mg/L}. \]

After three hours, half of patients sit below about \(52\,\mathrm{mg/L}\).

Conclusion

The core synthesis

  • Problem. Model a positive quantity whose random shocks scale with its current size.
  • Solution. Put Brownian noise into proportional growth: \(\mathrm dS_t=\mu S_t\,\mathrm dt+\sigma S_t\,\mathrm dW_t\).
  • Key result. Itô's lemma makes \(\ln S_T\) Gaussian, so \(S_T\) is log-normal — always positive and exactly simulatable.
  • Takeaway. One piece of calculus answered both textbook questions and applied biology and pharmacology problems. It assumes constant \(\mu,\sigma\) and no sudden jumps, so it is a transparent baseline, not the whole story.

Speaker notes

Open with the core promise: GBM is the simplest serious model for a positive quantity that grows under random, proportional shocks. Preview the arc — problem, solution, history, examples, applications, conclusion.