Trading Dev AcademyFree quant education

Free lesson · Differential equations

Ordinary differential equations: growth and mean reversion

Open interactive lessonPractice calculationsExplore labs

Start with the idea

  • An ordinary differential equation specifies a relationship between a function and its derivatives in one independent variable.
  • An initial condition selects a particular solution from a family.
  • The equation supplies a rule for change; solving it supplies a path.
Symbols, units & horizon
  • t: time
  • y₀,x₀: initial values at t=0
  • k: constant growth/decay rate in inverse time
  • κ: positive adjustment speed in inverse time
  • θ: fixed equilibrium in x-units
  • y′ or dy/dt: rate of y with respect to t
  • e: exponential base
  • z=x−θ: deviation from equilibrium

When and why to use this

Use ODEs to translate a rate hypothesis into a trajectory and distinguish parameters from initial conditions. Verify solutions by substitution before coding a solver.

  • The growth equation y′=ky says the rate is proportional to the current level.
  • It describes idealised growth or decay depending on the sign of k.
  • The mean-reversion equation x′=κ(θ−x) says change is proportional to distance from an equilibrium.
  • These are deterministic equations: fixed parameters and an initial value determine the entire solution.
  • They are useful baseline models in population dynamics, cooling and adjustment processes.
  • Random disturbances require an additional stochastic model, not merely a different initial condition.
dydt=ky,y(t)=y0ekt;dxdt=κ(θ−x),x(t)=θ+(x0−θ)e−κt
Calculus: derivation and arithmetic

Ordinary differential equations: growth and mean reversion

  1. For nonzero y, separate dy/y=k dt and integrate: ln|y|=kt+C. The initial condition gives y(t)=y₀exp(kt). The zero initial value has the separate solution y=0, also captured by the final formula.
  2. For mean reversion, set z=x−θ with θ constant. Then z′=−κz. Apply the growth solution with rate −κ to obtain z(t)=(x₀−θ)exp(−κt).
  3. Add θ back. Differentiate the result to verify the ODE and substitute t=0 to verify the initial condition.
Work it by hand

Starting at 20 with equilibrium 10 and κ=.5 per hour, x(2)=10+10exp(−1)≈13.6788. The deviation shrinks to half after ln(2)/.5≈1.3863 hours.

An analogy to remember

Newton’s cooling model makes temperature move quickly when far from room temperature and slowly when near it. The equilibrium is approached rather than reached at a fixed deadline.

How this becomes a building block

The deterministic growth solution underlies continuous compounding. The mean-reversion ODE is the drift component of an Ornstein–Uhlenbeck stochastic model and can describe an expected path under its assumptions. The same equation is a building block, while adding noise changes the path distribution.

Python implementation

Self-contained teaching example. Python 3.10+; dependencies and input conventions are shown in the code and notation. Run in your own Python environment.

from math import exp,log

def exponential_growth(initial,rate,time):
    return initial*exp(rate*time)

def deterministic_reversion(initial,equilibrium,speed,time):
    if speed<=0 or time<0: raise ValueError("Positive speed and nonnegative time required")
    return equilibrium+(initial-equilibrium)*exp(-speed*time)

def reversion_half_life(speed):
    if speed<=0: raise ValueError("Positive speed required")
    return log(2)/speed

print(deterministic_reversion(20,10,.5,2),reversion_half_life(.5))

Continue learning

Differential Equations & Numerical Models — all lessons
  1. Start with a rate rule and an initial value
  2. Ordinary differential equations: growth and mean reversion
  3. Euler stepping, convergence and stability
  4. Partial differential equations and the bridge to current research

Quantitative finance and development glossary · Python resources and libraries · Research sources and limitations