Synthetic coupled dynamical systems
Bivariate AR1 system
For this example, we'll consider a bivariate, order one autoregressive model consisting of variable $x$ and $y$, where $x \rightarrow y$, given by the difference equations:
where the parameter $c_1$ controls how strong the dynamical forcing from $x$ to $y$ is, and $\xi_1$ and $\xi_2$ are dynamical noise terms with zero mean and standard deviations $\sigma$.
Where has the system been used?
This system was investigated by Paluš et al. (2018).
Represent as a DiscreteDynamicalSystem
We first define the equations of motion.
function eom_ar1(x, p, n)
a₁, b₁, c₁, σ = (p...,)
x, y = (x...,)
ξ₁ = rand(Normal(0, σ))
ξ₂ = rand(Normal(0, σ))
dx = a₁*x + ξ₁
dy = b₁*y + c₁*x + ξ₂
return SVector{2}(dx, dy)
end
To make things easier to use, we create function that generates a DiscreteDynamicalSystem instance for any coupling strength c
and initial condition u₀
.
function ar1(;uᵢ = rand(2), a₁ = 0.90693, b₁ = 0.40693, c₁ = 0.5, σ = 0.40662)
p = [a₁, b₁, c₁, σ]
return DiscreteDynamicalSystem(eom_ar1, uᵢ, p)
end
By tuning the coupling strength c₁
, we may control the strength of the influence $x$ has on $y$. An example realization of the system when the coupling strength is c₁ = 0.5
is:
s = ar1(c₁ = 0.5)
orbit = trajectory(s, 100)
x, y = orbit[:, 1], orbit[:, 2]
plot(x, label = "x", lc = :black)
plot!(y, label = "y", lc = :red)
xlabel!("Time step"); ylabel!("Value")
Predefined system
This system is predefined in CausalityTools.Systems
, and can be initialized using the ar1
function.
References
Paluš, 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