ornstein_uhlenbeck


ornstein_uhlenbeck, a Python code which approximates solutions of the Ornstein-Uhlenbeck stochastic differential equation (SDE) using the Euler method and the Euler-Maruyama method.

The Ornstein-Uhlenbeck stochastic differential equation has the form:

        dx(t) = theta * ( mu - x(t) ) dt + sigma dW,   
        x(0) = x0.
      
where and the equation is to be integrated over the interval [0,tmax].

The starting value x0 represents a deviation from the mean value mu. The decay rate theta determines how fast x(t) will move back towards its mean value. The coefficient sigma determines the relative magnitude of stochastic perturbations.

In general, the solution starts at x0 and over time moves towards the value mu, but experiences random "wobbles" whose size is determined by sigma. Increasing theta makes the solution move towards the mean faster.

Licensing:

The computer code and data files described and made available on this web page are distributed under the MIT license

Languages:

ornstein_uhlenbeck is available in a C version and a C++ version and a Fortran90 version and a MATLAB version and an Octave version and a Python version.

Related Data and Programs:

black_scholes, a Python code which implements some simple approaches to the Black-Scholes option valuation theory, by Desmond Higham.

brownian_motion_simulation, a Python code which simulates Brownian motion in an M-dimensional region.

colored_noise, a Python code which generates samples of noise obeying a 1/f^alpha power law.

pink_noise, a Python code which computes a "pink noise" signal obeying a 1/f power law.

stochastic_diffusion, a Python code which implements several versions of a stochastic diffusivity coefficient.

Reference:

  1. Desmond Higham,
    An Algorithmic Introduction to Numerical Simulation of Stochastic Differential Equations,
    SIAM Review,
    Volume 43, Number 3, September 2001, pages 525-546.

Source Code:


Last revised on 06 October 2022.