Predefined coupled systems

Systems definition API

The systems definition API is defined by

CausalityTools.systemFunction
system(definition::DiscreteDefinition) → s::DiscreteDynamicalSystem
system(definition::ContinuousDefinition) → s::ContinuousDynamicalSystem

Initialize a dynamical system from definition.

source

Discrete systems

CausalityTools.AnishchenkoType
Anishchenko <: DiscreteDefinition
Anishchenko(;u₀ = rand(2), α =3.277, s=0.1, ω=0.5*(sqrt(5)-1)) → DiscreteDynamicalSystem

Initialise the system defined by eq. 13 in (Anishchenko et al., 1998), which can give strange, nonchaotic attractors.

Equations of motion

\[\begin{aligned} dx &= \alpha (1-s \cos (2 \pi \phi )) \cdot x(1-x) \\ dϕ &= (\phi + \omega ) \mod{1} \end{aligned}\]

source
CausalityTools.AR1UnidirType
AR1Unidir <: DiscreteDefinition
AR1Unidir(; ui = [0.2, 0.3], a₁ = 0.90693, b₁ = 0.40693, c_xy = 0.5,
    nx = Normal(0, 0.40662), ny = Normal(0, 0.40662),
    rng::R = Random.default_rng())

A bivariate, order one autoregressive model, where $x \to y$ (Paluš et al, 2018)[Paluš2018].

Equations of motion

\[\begin{aligned} x(t+1) &= a_1 x(t) + \xi_{1} \\ y(t+1) &= b_1 y(t) - c_{xy} x + \xi_{2}, \end{aligned}\]

where $\xi_{1}$ and $\xi_{2}$ are drawn from normal distributions nx and ny at each iteration.

source
CausalityTools.AR1BidirType
AR1Bidir <: DiscreteDefinition
AR1Bidir(;xi = [0.2, 0.3], a₁ = 0.5, b₁ = 0.7, c_xy = 0.1, c_yx = 0.2,
    nx = Normal(0, 0.3), ny = Normal(0, 0.3),
    rng::R = Random.default_rng())

A system consisting of two mutually coupled first order autoregressive processes.

Equations of motion

\[\begin{aligned} x(t+1) &= a_{1}x + c_{yx}y + \epsilon_{x} \\ y(t+1) &= b_{1}y + c_{xy}x + \epsilon_{y} \end{aligned}\]

where at each time step, $\epsilon_{x}$ and $\epsilon_{y}$ are drawn from independent normal distributions nx and ny, respectively.

source
CausalityTools.ChaoticMaps3Type
ChaoticMaps3() <: DiscreteDefinition
ChaoticMaps3(; ui = [0.2, 0.1, 0.3], r = 3.4, c_xy = 0.5, c_xz = 0.5, c_yz = 0.3)

A model consisting of three coupled 1D maps, where $x \to y$ and $x \to z$ (Chen et al., 2004).

Equations of motion

\[\begin{aligned} x(t) &= r x(t-1)( 1 - x(t-1)^2 ) e^{-x(t-1)^2} \\ y(t) &= r y(t-1)( 1 - y(t-1)^2 ) e^{-y(t-1)^2} + c_{xy} x(t-1) \\ z(t) &= r z(t-1)( 1 - z(t-1)^2 ) e^{-z(t-1)^2} + c_{xz} x(t-1) + c_{yz} y(t-1) \end{aligned}\]

The parameters r, c_xy and c_yz do not appear in the original paper, but are added here for explorative purposes.

source
CausalityTools.Henon2Type
Henon2() <: DiscreteDefinition
Henon2(;u₀ = [0.1, 0.2, 0.2, 0.3], c_xy = 2.0)

A bivariate system consisting of two identical 1D Henon maps with unidirectional forcing $X \to Y$ (Krakovská et al., 2018)[Krakovská2018].

Equations of motion

The equations of motion are

\[\begin{align*} x_1(t+1) &= 1.4 - x_1^2(t) + 0.3x_2(t) \\ x_2(t+1) &= x_1(t) \\ y_1(t+1) &= 1.4 - [c_{xy} x_1(t) y_1(t) + (1-c_{xy}) y_1^2(t)] + 0.3 y_2(t) \\ y_2(t+1) &= y_1(t) \end{align*}\]

source
CausalityTools.Henon3Type
Henon3() <: DiscreteDefinition
Henon3(; a = 0.1, b = 0.3, c = 0.1, xi = [0.1, 0.2, 0.3])

Henon3 is a DiscreteDefinition definition for a lagged discrete dynamical system consisting of three coupled 1D Henon maps (Papana et al., 2013).

Equations of motion

\[\begin{align*} x_1(t+1) &= a - x_1(t)^2 + b x_1(t-2) \\ x_2(t+1) &= a - c x_1(t) x_2(t)- (1 - c) x_2(t)^2 + b x_2(t-1) \\ x_3(t+1) &= c x_2(t) x_3(t) - (1 - c) x_3(t)^2 + b x_3(t-1) \end{align*}\]

Here $c$ is the coupling constant. The system becomes completely synchronized for $c >= 0.7$. The initial condition xi is repeated over the first two time steps before iteration starts.

source
CausalityTools.Ikeda2Type
Ikeda2 <: DiscreteDefinition
Ikeda2(; xi = [0.19, 0.21], c_xy = 1.0, c_yx = 1.0, a = 0.8, b = 12, c = 0.9,
    r₁ = 0.2, r₂ = 0.15, σ = 0.05, rng = Random.default_rng())

Initialise a discrete two-dimensional Ikeda map system, adapted from Cao et al. (1997), by adding a noise term and allowing the influences from $x \to y$ ($c_{xy}$) and from $y \to x$ ($c_{yx}$) to be adjusted.

The difference equations are

\[\begin{align*} x(t+1) &= 1 + \mu(x \cos{(\theta)} - c_{yx} y \sin{(\theta)}) - min( \dfrac{\sigma \xi_{t}^{(1)}}{(1-x)}, \xi_{t}^{(2)}) \\ y(t+1) &= \mu(y \cos{(\theta)} - c_{xy} x \sin{(\theta)}) - min(\dfrac{\sigma \zeta_{t}^{(1)}}{(1-y)}, \zeta_{t}^{(2)}) \end{align*}\]

source
CausalityTools.ChaoticNoisyLinear2Type
ChaoticNoisyLinear2 <: DiscreteDefinition
ChaoticNoisyLinear2(; xi = [0.1, 0.2], c = 0.5,
    nx = Normal(0, 0.05), ny = Normal(0, 0.05),
    rng = Random.default_rng())

A bivariate system of two chaotic maps that are linearly coupled from x → y with coupling strength c.

Definition

\[\begin{align*} x(t+1) &= 3.4 x(t) (1 - x(t)^2) e^{-x(t)^2} + 0.8x(t-1) + \xi_x \\ y(t+1) &= 3.4 y(t) (1 - y(t)^2) e^{-y(t)^2} + 0.8y(t-1) + \xi_y + c x(t-2) \end{align*}\]

Process noise $\xi_x$ and $\xi_y$ is drawn at each iteration from nx and ny.

source
CausalityTools.Logistic2UnidirType
Logistic2Unidir <: DiscreteDefinition
Logistic2Unidir(; xi = [0.5, 0.5], c_xy = 0.1, σ_xy = 0.05, r₁ = 3.78, r₂ = 3.66,
    rng = Random.default_rng())

A bivariate system consisting of two 1D noisy logistic maps which are undirectionally coupled x → y (Diego et al., 2019).

Equations of motion

The equations of motion are

\[\begin{align*} x(t+1) &= r_1 x(t)(1 - x(t)) \\ y(t+1) &= r_2 f(x,y)(1 - f(x,y)), \end{align*}\]

with

\[\begin{aligned} f(x,y) = \dfrac{y + \frac{c_{xy}(x \xi )}{2}}{1 + \frac{c_{xy}}{2}(1+ \sigma_{xy} )} \end{aligned}\]

The parameter c_xy controls how strong the dynamical forcing is. If σ > 0, dynamical noise masking the influence of x on y equivalent to $\sigma_{xy} \cdot \xi$ is added at each iteration. Here,$\xi$ is a draw from a flat distribution on $[0, 1]$. Thus, setting σ_xy = 0.05 is equivalent to add dynamical noise corresponding to a maximum of $5 \%$ of the possible range of values of the logistic map.

source
CausalityTools.Logistic2BidirType
Logistic2Bidir() <: DiscreteDefinition
Logistic2Bidir(; ui = [0.5, 0.5], c_xy = 0.1, c_yx = 0.1, r₁ = 3.78, r₂ = 3.66,
    σ_xy = 0.05, σ_yx = 0.05,
    rng = Random.default_rng())

A bivariate system consisting of two 1D noisy logistic maps which are bidirectionally interacting (Diego et al., 2019).

Equations of motion

\[\begin{align*} x(t+1) &= r_1 f_{yx}^{t}(1 - f_{yx}^{t}) \\ y(t+1) &= r_2 f_{xy}^{t}(1 - f_{xy}^{t}) \\ f_{xy}^t &= \dfrac{y(t) + c_{xy}(x(t) + \sigma_{xy} \xi_{xy}^t )}{1 + c_{xy} (1 + \sigma_{xy} )} \\ f_{yx}^t &= \dfrac{x(t) + c_{yx}(y(t) + \sigma_{yx} \xi_{yx}^t )}{1 + c_{yx} (1 + \sigma_{yx} )}, \end{align*}\]

Here, the coupling strength $c_{xy}$ controls how strongly species $x$ influences species $y$, and vice versa for $c_{yx}$. To simulate time-varying influence of unobserved processes, we use the dynamical noise terms $\xi_{xy}^t$ and $\xi_{yx}^t$, drawn from a uniform distribution with support on $[0, 1]$. If $\sigma_{xy} > 0$, then the influence of $x$ on $y$ is masked by dynamical noise equivalent to $\sigma_{xy} \xi_{xy}^{t}$ at the $t$-th iteration of the map, and vice versa for $\sigma_{yx}$.

source
CausalityTools.Logistic3CommonDriverType
Logistic3CommonDriver() <: DiscreteDefinition
Logistic3CommonDriver(; u₀ = [0.1, 0.2, 0.3],
    r = 4.0, σx = 0.05, σy = 0.05, σz = 0.05,
    rng = Random.default_rng())

A discrete dynamical system consisting of three coupled 1D logistic maps representing the response of two independent dynamical variables to the forcing from a common driver (Runge, 2018). The dynamical influence goes in the directions $Z \to X$ and $Z \to Y$.

Equations of motion

The equations of motion are

\[\begin{align*} x(t+1) &= (x(t)(r - r x(t) - z(t) + \sigma_x \eta_x)) \mod 1 \\ y(t+1) &= (y(t)(r - r y(t) - z(t) + \sigma_y \eta_y)) \mod 1 \\ z(t+1) &= (z(t)(r - r z(t) + \sigma_z \eta_z)) \mod 1 \end{align*}\]

Dynamical noise may be added to each of the dynamical variables by tuning the parameters σz, σx and σz. Default values for the parameters r₁, r₂ and r₃ are set such that the system exhibits chaotic behaviour, with r₁ = r₂ = r₃ = 4.

source
CausalityTools.Logistic4ChainType
Logistic4Chain <: DiscreteDefinition
Logistic4Chain(; xi = rand(4),
    rx = 3.9, ry = 3.6, rz = 3.6, rw = 3.8,
    cxy = 0.4, cyz = 0.4, cyw = 0.35,
    rng = Random.default_rng())

A variant of Logistic2Bidir where four variables X, Y, Z, W are coupled in a chain X → Y → Z → W with dynamical noise.

Description

The equations of motion are

\[\begin{align*} x(t+1) &= r_x x(t)(1 - x(t)) \\ y(t+1) &= r_y f_{xy}^{t}(1 - f_{xy}^{t}) \\ z(t+1) &= r_z f_{yz}^{t}(1 - f_{yz}^{t}) \\ w(t+1) &= r_w f_{zw}^{t}(1 - f_{zw}^{t}) \\ f_{xy}^t &= \dfrac{y(t) + c_{xy}(x(t) + \sigma_{xy} \xi_{xy}^t )}{1 + c_{xy} (1 + \sigma_{xy} )} \\ f_{yz}^t &= \dfrac{z(t) + c_{yz}(y(t) + \sigma_{yz} \xi_{yz}^t )}{1 + c_{yz} (1 + \sigma_{yz} )}, \\ f_{zw}^t &= \dfrac{w(t) + c_{zw}(z(t) + \sigma_{zw} \xi_{zw}^t )}{1 + c_{zw} (1 + \sigma_{zw} )}, \end{align*}\]

where c_{xy}, c_{yz}, c_{zw} controls the coupling strength from x to y, y to z, and z to w, respectively. The magnitude of dynamical noise in these couplings are controlled by $\sigma_{xy}$, $\sigma_{yz}$, and $\sigma_{zw}$, respectively. $\xi_{xy}$, $\xi_{yz}$, and $\xi_{zw}$ are noise terms that each iteration are drawn from independent uniform distributions over the unit interval.

With default parameters and all dynamical noise terms set to zero, this is the system from (Ye et al., 2015) (but note that for some initial conditions, this system wanders off to $\pm \infty$ for some of the variables).

source
CausalityTools.Nonlinear3Type
Nonlinear3 <: DiscreteDefinition
Nonlinear3(; xi = rand(3),
    σ₁ = 1.0, σ₂ = 1.0, σ₃ = 1.0,
    a₁ = 3.4, a₂ = 3.4, a₃ = 3.4,
    b₁ = 0.4, b₂ = 0.4, b₃ = 0.4,
    c₁₂ = 0.5, c₂₃ = 0.3, c₁₃ = 0.5,
    rng = Random.default_rng())

A 3d nonlinear system with nonlinear couplings $x_1 \to x_2$, $x_2 \to x_3$ and $x_1 \to x_3$. Modified from Gourévitch et al. (2006)[Gourévitch2006].

Equations of motion

\[\begin{aligned} x_1(t+1) &= a_1 x_1 (1-x_1(t))^2 e^{-x_2(t)^2} + 0.4 \xi_{1}(t) \\ x_2(t+1) &= a_1 x_2 (1-x_2(t))^2 e^{-x_2(t)^2} + 0.4 \xi_{2}(t) + b x_1 x_2 \\ x_3(t+1) &= a_3 x_3 (1-x_3(t))^2 e^{-x_3(t)^2} + 0.4 \xi_{3}(t) + c x_{2}(t) + d x_{1}(t)^2. \end{aligned}\]

[Gourévitch2006]: Gourévitch, B., Le Bouquin-Jeannès, R., & Faucon, G. (2006). Linear and nonlinear causality between signals: methods, examples and neurophysiological applications. Biological Cybernetics, 95(4), 349–369.

source
CausalityTools.Peguin2Type
Peguin2 <: DiscreteDefinition
Peguin2(; xi = [0.5, 0.4], σ₁ = 0.1, σ₂ = 0.1,
    p₁ = 0.7, p₂ = 0.1, p₃ = 0.4, p₄ = 2.4, p₅ = 0.9, p₆ = 4)

A 2D discrete autoregressive system with nonlinear, nontrivial coupling from [1] . This system is from Péguin-Feissolle & Teräsvirta (1999)[^Péguin-Feissolle1999], and was also studied in Chávez et al. (2003)[Chávez2003].

Description

The system is defined by the equations

\[\begin{align*} x(t+1) &= p_2 + p_3 x(t-2) + c_{yx}\dfrac{p_4 - p_5 y(t-3)}{1 + e^{-p_6 y(t-3)}} + \xi_1(t) \\ y(t+1) &= p_1 y(t) + \xi_2(t). \end{align*}\]

Here, $\xi_{1,2}(t)$ are two independent normally distributed noise processes with zero mean and standard deviations $\sigma_1$ and $\sigma_2$. The $\xi_{1,2}(t)$ terms represent dynamical noise. The parameters of the original system are here tweakable.

[^Péguin-Feissolle1999]: Péguin-Feissolle, A., & Teräsvirta, T. (1999). A General Framework for Testing the Granger Noncausaality Hypothesis. Universites d’Aix-Marseille II et III. https://www.amse-aixmarseille.fr/sites/default/files/_dt/greqam/99a42.pdf

source
CausalityTools.UlamLatticeType
UlamLattice <: DiscreteDefinition
UlamLattice(; D::Int = 10; ui = sin.(1:10), ε::Real = 0.10)

A lattice of D unidirectionally coupled ulam maps (Schreiber, 2000) defined as

\[x^{m}_{t+1} = f(\epsilon x^{m-1}_{t} + (1 - \epsilon) x_{t}^{m}),\]

where $m = 1, 2, \ldots, D$ and $f(x) = 2 - x^2$. In this system, information transfer happens only in the direction of increasing $m$.

source
CausalityTools.Var1Type
Var1 <: DiscreteDefinition
Var1(; xi = [0.5, 0.5, 0.5],
    a = 0.5, θ = Normal(0, 1.0), η = Normal(0, 0.2), ϵ = Normal(0, 0.3),
    rng = Random.default_rng())

A discrete vector autoregressive system where X₁ → X₂ → X₃.

source
CausalityTools.Verdes3Type
Verdes3 <: DiscreteDefinition
Verdes3(; ui = [0.1, 0.15, 0.2], ωy = 315, ωz = 80, σx = 0.0, σy = 0.0, σz = 0.0)

A 3D system where the response X is a highly nonlinear combination of Y and Z (Verdes, 2005). The forcings Y and Z involve sines and cosines, and have different periods, which controlled by ωy and ωz.

\[\begin{align*} x(t+1) &= \dfrac{y(t)(18y(t) - 27y(t)^2 + 10)}{2} + z(t)(1-z(t)) + ηx \\ y(t+1) &= \dfrac{(1 - \dfrac{\cos(2\pi)}{\omega y}t)}{2} + ηy \\ z(t+1) &= \dfrac{(1 - \dfrac{\sin(2\pi)}{\omega z}t)}{2} + ηz \end{align*}\]

where ηx, ηy, ηz is gaussian noise with mean 0 and standard deviation σx, σy and σz.

source

Continuous systems

CausalityTools.ChuaCircuitsBidir6Type
ChuaCircuitsBidir6 <: ContinuousDefinition
ChuaCircuitsBidir6(;u₀ = [0.1, 0.1, 0.2, 0.15, 0.15, 0.22],
    α₁ = 7.0, α₂ = 7.0, β₁ = 14.286, β₂ = 14.286,
    F₁ = 1.5, F₂ = 1.5, ω₁ = 3.0, ω₂ = 3.0,
    n1 = Normal(0, 0.1),
    n2 = Normal(0, 0.1),
    c12 = 0.1, c21 = 0.1, m₀ = -1/7, m₁ = 2/7)

Initialize a bidirectionally coupled system consisting of two driven Chua circuits, X₁ and X₂ Murali and Lakshmanan (1993).

Description

The subsystems are mutually coupled by a linear resistor, where ϵ12 controls the influence of X₁ on X₂, and c21 controls the influence of X₂ on X₁. The parameters for the subsystems are set equal to each other, as in the original paper, but can here be tuned individually for each subsystem.

\[\begin{align*} \dfrac{dx_1}{dt} &= \alpha_1(y_1, h(x_1)) - \alpha_1 \epsilon(x_1 - x_2) \\ \dfrac{dy_1}{dt} &= x_1 - y_1 + z_1 \\ \dfrac{dz_1}{dt} &= -\beta_1 y_1 + F_1 sin(\omega_1 t) + \epsilon_1 \\ \dfrac{dx_2}{dt} &= \alpha_2 (y_2, h(x_2)) - \alpha_2 c_{12}(x_1 - x_2) \\ \dfrac{dy_2}{dt} &= x_2 - y_2 + z_2 \\ \dfrac{dz_2}{dt} &= -\beta_2 y_2 + F_2 sin(\omega_2 t) + \epsilon_2, \end{align*}\]

where $h(x) = M_1x + 0.5(M_0 - M_1)(|x+1| - |x - 1|)$ and $\epsilon_1, \epsilon_2$ are noise terms that at each integration step is drawn independently from the normal distributions n1 and n2, respectively.

source
CausalityTools.ChuaScrollSine3Type
ChuaScrollSine3 <: ContinuousDefinition
ChuaScrollSine3(; xi = [0.1, 0.2, 0.3],
    α = 10.814, β = 14, γ = 0, a = 1.3, b = 0.11, c = 2,
    nx = Normal(0.0, 0.01),
    ny = Normal(0.0, 0.01)
    nz = Normal(0.0, 0.01))

An adjusted Chua system giving rise to n-scroll attractors (Tang et al., 2001).

Description

The dynamics is generated by the following vector field

\[\begin{align*} \dot{x} &= \alpha (y - fx) + \eta x \\ \dot{y} &= x - y + z + \eta y \\ \dot{z} &= -\beta y - \gamma z + \eta z \end{align*}\]

where $\eta x$, $\eta z$, and $\eta z$ are drawn independently from normal distributions nx, ny and nz each iteration.

$fx$ is given by the following conditions:

n::Int = c + 1

if x >= 2*a*c
    fx = (b*pi/2*a)*(x - 2*a*c)
elseif -2*a*c < x < 2*a*c
    d = ifelse(isodd(n), pi, 0)
    fx = -b*sin((pi*x/2*a) + d)
elseif x <= -2*a*c
    fx = (b*pi/2*a)*(x + 2*a*c)
end
source
CausalityTools.HindmarshRose3Type
HindmarshRose3 <: ContinuousDefinition
HindmarshRose3(; xi = [0.1, 0.2, 0.3, p)

Initialise a Hindmarsh-Rose system, which is a model of neuronal spiking.

Description

\[\begin{align*} \dfrac{dx}{dt} &= y + \phi(x) - z + I \\ \dfrac{dy}{dt} &= \psi(x) - y \\ \dfrac{dz}{dt} &= r[s(x - x_R) - z], \end{align*}\]

where

\[\begin{aligned} \phi(x) &= -ax^3+bx^2 \psi(x) &= c - dx^2 \end{aligned}\]

If parameters other than the defaults are to be used, they must be provided as a vector [a, b, c, d, r, s, xᵣ, I].

source
CausalityTools.LorenzBidir6Type
LorenzBidir6 <: ContinuousDefinition
LorenzBidir6(; xi = [0.1, 0.05, 0.2, 0.2, 0.25, 0.3],
    c_xy = 0.2, c_yx = 0.2,
    a₁ = 10, a₂ = 28, a₃ = 8/3,
    b₁ = 10, b₂ = 28, b₃ = 9/3)

A bidirectionally coupled Lorenz-Lorenz system, where each subsystem is a 3D Lorenz system (Amigo & Hirata, 2018)[Amigó2018].

Description

The dynamics is generated by the following vector field

\[\begin{align*} \dot{x_1} &= -a_1 (x_1 - x_2) + c_{yx}(y_1 - x_1) \\ \dot{x_2} &= -x_1 x_3 + a_2 x_1 - x_2 \\ \dot{x_3} &= x_1 x_2 - a_3 x_3 \\ \dot{y_1} &= -b_1 (y_1 - y_2) + c_{xy} (x_1 - y_1) \\ \dot{y_2} &= -y_1 y_3 + b_2 y_1 - y_2 \\ \dot{y_3} &= y_1 y_2 - b_3 y_3 \end{align*}\]

Default values for the parameters a₁, a₂, a₃, b₁, b₂, b₃ are as in [Amigó2018].

source
CausalityTools.LorenzForced9Type
LorenzForced9{V} <: ContinuousDefinition
LorenzForced9(; xi = [0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9],
    c_xy = 0.1, c_yx = 0.1,
    c_zx = 0.05, c_zy = 0.05,
    a₁ = 10, a₂ = 28, a₃ = 8/3,
    b₁ = 10, b₂ = 28, b₃ = 8/3,
    c₁ = 10, c₂ = 28, c₃ = 8/3)

A system consisting of two bidirectionally coupled 3D Lorenz systems forced by an external 3D Lorenz system (Amigó & Hirata, 2018).

Description

The dynamics is generated by the following vector field

\[\begin{align*} \dot{x_1} &= - a_1 (x_1 - x_2) + c_{yx}(y_1 - x_1) + c_{zx}(z_1 - x_1) \\ \dot{x_2} &= - x_1 x_3 + a_2 x_1 - x_2 \\ \dot{x_3} &= x_1 x_2 - a_3 x_3 \\ \dot{y_1} &= -b_1 (y_1 - y_2) + c_{xy} (x_1 - y_1) + c_{zy}(z_1 - y_1) \\ \dot{y_2} &= - y_1 y_3 + b_2 y_1 - y_2 \\ \dot{y_3} &= y_1 y_2 - b_3 y_3 \\ \dot{z_1} &= - c_1 (z_1 - z_2) \\ \dot{z_2} &= - z_1 z_3 + c_2 z_1 - z_2 \\ \dot{z_3} &= z_1 z_2 - c_3 z_3 \end{align*}\]

source
CausalityTools.MediatedLink9Type
MediatedLink9 <: ContinuousDefinition
MediatedLink9(; xi = [0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9],
    ωx = 1.0, ωy = 1.015, ωz = 0.985,
    k = 0.15, l = 0.2, m = 10.0,
    c = 0.06) → ContinuousDynamicalSystem

A three-subsystem dynamical system where X and Y are driven by Z (Krakovská, 2018)[Krakovská2018].

Description

The dynamics is generated by the following vector field

\[\begin{aligned} dx_1 &= -\omega_x x_2 - x_3 + c*(z_1 - x_1) \\ dx_2 &= \omega_x x_1 + k*x_2 \\ dx_3 &= l + x_3(x_1 - m) \\ dy_1 &= -\omega_y y_2 - y_3 + c*(z_1 - y_1) \\ dy_2 &= \omega_y y_1 + k*y_2 \\ dy_3 &= l + y_3(y_1 - m) \\ dz_1 &= -\omega_z z_2 - z_3 \\ dz_2 &= \omega_z z_1 + k*z_2 \\ dz_3 &= l + z_3(z_1 - m) \end{aligned}\]

At the default value of the coupling constant c = 0.06, the responses X and Y are already synchronized to the driver Z.

source
CausalityTools.Repressilator6Type
Repressilator6 <: ContinuousDefinition
Repressilator6(; xi = [0.1, 0.2, 0.3, 0.4, 0.5, 0.6], α = 10.0, α₀ = 0.0, β = 100.0,
    n = 2) → ContinuousDynamicalSystem

A six-dimensional repressilator (or repression-driven oscillator) from Elowitz and Leibler (2000).

Used in Sun et al. (2014) to study the performance of the causation entropy algorithm.

Description

\[\begin{align*} \dfrac{dm_1}{dt} &= -m1 + \dfrac{\alpha}{1 + p_3^n} + \alpha_0 \\ \dfrac{dm_2}{dt} &= -m2 + \dfrac{\alpha}{1 + p_1^n} + \alpha_0 \\ \dfrac{dm_3}{dt} &= -m3 + \dfrac{\alpha}{1 + p_2^n} + \alpha_0 \\ \dfrac{dp_1}{dt} &= -\beta(p_1 - m_1) \\ \dfrac{dp_2}{dt} &= -\beta(p_2 - m_2) \\ \dfrac{dp_3}{dt} &= -\beta(p_3 - m_3) \\ \end{align*}\]

source
CausalityTools.RosslerBidir6Type
RosslerBidir6 <: ContinuousDefinition
RosslerBidir6(; xi = [0.1, 0.1, 0.2, 0.3, 0.3, 0.4],
    a = 0.1, b = 0.1, c = 14.0, ϵ₁ = 0.0, ϵ₂ = 0.0,
    ω₁ = 1 + 0.015, ω₂ = 1 - 0.015)

A bidirectionally coupled 6D Rossler system from Krakovská et al. (2018)[Krakovská2018].

Description

The system consists of two separate subsystems, each being a 3D Rossler attractor. The subsystems are bidirectionally coupled, influencing each other through variables $x_1$ and `x_2.

\[\begin{align*} \dfrac{dx_1}{dt} &= \omega_1 (-y_1) - z_1 + c_{21}*(x_1 - x_2) \\ \dfrac{dy_1}{dt} &= \omega_1 x_1 + a y_1 \\ \dfrac{dz_1}{dt} &= b + z_1 (x_1 - c) \\ \dfrac{dx_2}{dt} &= \omega_2 (-y_2) - z_2 + c_{12} (x_2 - x_1) \\ \dfrac{dy_2}{dt} &= \omega_2*x_2 + a*y_2 \\ \dfrac{dz_2}{dt} &= b + z_2 (x_2 - c) \\ \end{align*}\]

with $c_{12} \geq 0$ and $c_{21} \geq 0$.

source
CausalityTools.RosslerForced9Type
RosslerForced9 <: ContinuousDefinition
RosslerForced9(; xi = [0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9],
    ω₁ = 1.015, ω₂ = 0.985, ω₃ = 0.95,
    c_xy = 0.1, c_yx = 0.1,
    c_zx = 0.05, c_zy = 0.05,
    a₁ = 0.15, a₂ = 0.2, a₃ = 10,
    b₁ = 0.15, b₂ = 0.2, b₃ = 10,
    c₁ = 0.15, c₂ = 0.2, c₃ = 10)

Equations of motion for a system consisting of three coupled 3D Rössler systems ($X$, $Y$, $Z$), giving a 9D system (Amigó & Hirata, 2018)[Amigó2018].

Description

The dynamics is generated by the following vector field

\[\begin{aligned} \dot{x_1} &= -\omega_1 (x_2 + x_3) + c_{yx}(y_1 - x_1) + c_{zx}(z_1 - x_1) \\ \dot{x_2} &= \omega_1 x_1 + a_1 x_2 \\ \dot{x_3} &= a_2 + x_3 (x_1 - a_3) \\ \dot{y_1} &= -\omega_1 (y_2 + y_3) + c_{xy}(x_1 - y_1) + c_{zy}(z_1 - y_1) \\ \dot{x_2} &= \omega_2 y_1 + b_1 y_2 \\ \dot{x_3} &= b_2 + x_3 (y_1 - b_3) \\ \dot{y_1} &= -\omega_2 (z_2 + z_3) \\ \dot{x_2} &= \omega_2 z_1 + c_1 z_2 \\ \dot{x_3} &= c_2 + z_3 (z_1 - c_3). \end{aligned}\]

The external system $Z$ influences both $X$ and $Y$ (controlled by c_zx and c_zy). Simultaneously, the subsystems $X$ and $Y$ bidirectionally influences each other (controlled by c_xy and c_yx). The $X$ and $Y$ subsystems are mostly synchronized for c_xy > 0.1 or c_yx > 0.1.

source
CausalityTools.RosslerLorenzUnidir6Type
RosslerLorenzUnidir6 <: ContinuousDefinition
RosslerLorenzUnidir6(; xi = [0.1, 0.2, 0.3, 0.05, 0.1, 0.15],
    a₁ = 6, a₂ = 6, a₃ = 2.0, b₁ = 10, b₂ = 28, b₃ = 8/3, c_xy = 1.0)

Initialise a Rössler-Lorenz system consisting of two independent 3D subsystems: one Rössler system and one Lorenz system. They are coupled such that the second component (x₂) of the Rössler system unidirectionally forces the second component (y₂) of the Lorenz system.

The parameter c_xy controls the coupling strength. The implementation here also allows for tuning the parameters of each subsystem by introducing the constants a₁, a₂, a₃, b₁, b₂, b₃. Default values for these parameters are as in [1].

Equations of motion

The dynamics is generated by the following vector field

Description

\[\begin{align*} \dot x_1 &= -a_1(x_2 + x_3) \\ \dot x_2 &= a_2(x_1 + a_2x_2) \\ \dot x_3 &= a_1(a_2 + x_3(x_1 - a_3)) \\ \dot y_1 &= b_1(y_2 - y_1) \\ \dot y_2 &= y_1(b_2 - y_3) - y_2 +c_{xy}(x_2)^2 \\ \dot y_3 &= y_1 y_2 - b_3y_3 \end{align*}\]

with the coupling constant $c_{xy} \geq 0$.

source
CausalityTools.Thomas3Type
Thomas3 <: ContinuousDefinition
Thomas3(; xi = [0.11, 0.09, 0.10], b = 0.20)

Thomas' cyclically symmetric attractor is a continuous dynamical system with three variables. It has a single free parameter b, for which interesting behaviour occurs when b ∈ (0, 1). In particular, the system is chaotic whenever b < 0.20.

Definition

\[\begin{align*} \dfrac{dx}{dt} &= sin(y) - bx \\ \dfrac{dy}{dt} &= sin(z) - by \\ \dfrac{dz}{dt} &= sin(x) - bz \end{align*}\]

source
  • Paluš2018Paluš, M., Krakovská, A., Jakubík, J., & Chvosteková, M. (2018). Causality, dynamical systems and the arrow of time. Chaos: An Interdisciplinary Journal of Nonlinear Science, 28(7), 075307. http://doi.org/10.1063/1.5019944
  • Krakovská2018Krakovská, A., Jakubík, J., Chvosteková, M., Coufal, D., Jajcay, N., & Paluš, M. (2018). Comparison of six methods for the detection of causality in a bivariate time series. Physical Review E, 97(4), 042207.
  • Chávez2003Chávez, M., Martinerie, J., & Le Van Quyen, M. (2003). Statistical assessment of nonlinear causality: application to epileptic EEG signals. Journal of Neuroscience Methods, 124(2), 113–128. doi:10.1016/s0165-0270(02)00367-9 https://www.sciencedirect.com/science/article/pii/S0165027002003679
  • Amigó2018Amigó, José M., and Yoshito Hirata. "Detecting directional couplings from multivariate flows by the joint distance distribution." Chaos: An Interdisciplinary Journal of Nonlinear Science 28.7 (2018): 075302.
  • Amigó2018Amigó, José M., and Yoshito Hirata. "Detecting directional couplings from multivariate flows by the joint distance distribution." Chaos: An Interdisciplinary Journal of Nonlinear Science 28.7 (2018): 075302.
  • Krakovská2018Krakovská, Anna, et al. "Comparison of six methods for the detection of causality in a bivariate time series." Physical Review E 97.4 (2018): 042207
  • Krakovská2018Krakovská, A., Jakubík, J., Chvosteková, M., Coufal, D., Jajcay, N., & Paluš, M. (2018). Comparison of six methods for the detection of causality in a bivariate time series. Physical Review E, 97(4), 042207.
  • Amigó2018Amigó, José M., and Yoshito Hirata. "Detecting directional couplings from multivariate flows by the joint distance distribution." Chaos: An Interdisciplinary Journal of Nonlinear Science 28.7 (2018): 075302.