src/DiffEq/SkewNormal/SkewNormal.hpp file

System of skew-normal SDEs.


This file implements the time integration of a system of stochastic differential equations (SDEs), whose invariant is the joint skew-normal distribution.

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

\[ \mathrm{d}x_\alpha(t) = -\frac{1}{T_\alpha}\left[x_\alpha - \lambda_\alpha\sigma^2_\alpha\sqrt{\frac{2}{\pi}} \cdot \frac{\exp{\left(-\lambda_\alpha^2x^2_\alpha/2\right)}}{1+\mathrm{erf} \left( \lambda_\alpha x_\alpha/\sqrt{2}\right)} \right] \mathrm{d}t + \sqrt{\frac{2\sigma^2_\alpha}{T_\alpha}}\mathrm{d}W_\alpha(t). \]
\[ \begin{split} \mathrm{d}x_\alpha(t) = -\frac{1}{T_\alpha}\left[x_\alpha - \lambda_\alpha\sigma^2_\alpha\sqrt{\frac{2}{\pi}} \cdot \frac{\exp{\left(-\lambda_\alpha^2x^2_\alpha/2\right)}}{1+\mathrm{erf} \left( \lambda_\alpha x_\alpha/\sqrt{2}\right)} \right] \mathrm{d}t \\ + \sqrt{\frac{2\sigma^2_\alpha}{T_\alpha}}\mathrm{d}W_\alpha(t). \end{split} \]

The invariant distribution is the joint skew-normal distribution

\[ p(x_\alpha) = \frac{1}{\sigma_\alpha\sqrt{2\pi}} \exp\left( -\frac{x^2_\alpha}{2\sigma^2_\alpha} \right) \left[1 + \mathrm{erf}\left( \frac{\lambda_\alpha x_\alpha}{\sqrt{2}}\right) \right]. \]
\[ \begin{split} p(x_\alpha) = \frac{1}{\sigma_\alpha\sqrt{2\pi}} \exp\left( -\frac{x^2_\alpha}{2\sigma^2_\alpha} \right) \\ \times \left[1 + \mathrm{erf}\left( \frac{\lambda_\alpha x_\alpha}{\sqrt{2}}\right) \right]. \end{split} \]

Here $\mathrm{erf}(y) = 2/\sqrt{\pi} \int_0^y \exp(-u^2) \mathrm{d}u$ , $T_\alpha$ are time scales, $\sigma_\alpha$ are variance parameters, $\mathrm{d}W_\alpha(t)$ is an isotropic Wiener process with independent increments, and $\lambda_\alpha$ are the parameters that control the asymmetry and skewness for variable $x_\alpha$ : $\lambda_\alpha<0$ and $\lambda_\alpha>0$ give negative and positive skewness, respectively, while $\lambda_\alpha=0$ reduces the system to a set of independent Ornstein-Uhlenbeck processes. See also DiffEq/DiagOrnsteinUhlenbeck.h. For more details on the skew-normal distribution, see


namespace walker
Walker declarations and definitions.


template<class Init, class Coefficients>
class walker::SkewNormal
Skew-normal SDE used polymorphically with DiffEq.