src/DiffEq/OrnsteinUhlenbeck.h file

System of Ornstein-Uhlenbeck SDEs.


This file implements the time integration of a system of stochastic differential equations (SDEs), with linear drift and constant diffusion, whose invariant is the joint normal distribution.

In a nutshell, the equation integrated governs a set of scalars, $Y_\alpha$ , $\alpha\!=\!1,\dots,N$ , as

\[ \mathrm{d}Y_\alpha(t) = \theta_\alpha\left(\mu_\alpha - Y_\alpha\right) \mathrm{d}t + \sum_{\beta=1}^N \sigma_{\alpha\beta}\mathrm{d}W_\beta(t), \qquad \alpha=1,\dots,N \]
\[ \begin{split} \mathrm{d}Y_\alpha(t) = \theta_\alpha\left(\mu_\alpha - Y_\alpha\right) \mathrm{d}t + \sum_{\beta=1}^N \sigma_{\alpha\beta}\mathrm{d}W_\beta(t), \\ \alpha=1,\dots,N \end{split} \]

with parameter vectors $\theta_\alpha > 0$ , $\mu_\alpha$ , and symmetric positive semi-definite diffusion matrix $\sigma_{\alpha\beta}$ . Here $\mathrm{d}W_\beta(t)$ is an isotropic vector-valued Wiener process with independent increments. The invariant distribution is the joint normal distribution. This system of SDEs consists of N coupled equations, each being a single-variate Ornstein-Uhlenbeck process.

From the Fokker-Planck equation, equivalent to the SDE above, the equations governing the means, $ \langle Y_\alpha \rangle$ , are

\[ \newcommand{\irmean}[1]{{\langle{#1}\rangle}} \frac{\partial\irmean{Y_\alpha}}{\partial t} = \theta_\alpha\left(\mu_\alpha - \irmean{Y_\alpha}\right) \]

while the equation governing the covariance matrix, $ \langle y_\alpha y_\beta \rangle \equiv \left\langle (Y_\alpha - \langle Y_\alpha \rangle) (Y_\beta - \langle Y_\beta\rangle) \right\rangle $ , is

\[ \newcommand{\irmean}[1]{{\langle{#1}\rangle}} \newcommand{\irv}[1]{\langle{#1^2}\rangle} \frac{\partial\irmean{y_\alpha y_\beta}}{\partial t} = -\left(\theta_\alpha+\theta_\beta\right)\irmean{y_\alpha y_\beta} +\sum_{\gamma=1}^N \sigma_{\alpha\gamma} \sigma_{\gamma\beta}. \]
\[ \begin{split} \newcommand{\irmean}[1]{{\langle{#1}\rangle}} \newcommand{\irv}[1]{\langle{#1^2}\rangle} \frac{\partial\irmean{y_\alpha y_\beta}}{\partial t} = -\left(\theta_\alpha+\theta_\beta\right)\irmean{y_\alpha y_\beta} \\ +\sum_{\gamma=1}^N \sigma_{\alpha\gamma} \sigma_{\gamma\beta}. \end{split} \]


namespace walker
Walker declarations and definitions.


template<class Init, class Coefficients>
class walker::OrnsteinUhlenbeck
Ornstein-Uhlenbeck SDE used polymorphically with DiffEq.