Synthetic coupled dynamical systems
Three coupled logistic maps
For this example, we'll consider a system of three coupled logistic maps ($x$, $y$ and $z$), where the dynamical influence goes in the directions $z \rightarrow x$ and $z \rightarrow y$.
The system is given by the following difference equations:
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
.
Where has the system been used?
This system was used in Runge (2018), where he discusses the theoretical assumptions behind causal network reconstructions and practical estimators of such networks.
Represent as a DiscreteDynamicalSystem
We first define the equations of motion.
function eom_logistic3(u, p, t)
r₁, r₂, r₃, σx, σy, σz = (p...,)
x, y, z = (u...,)
# Independent dynamical noise for each variable.
ηx = rand()
ηy = rand()
ηz = rand()
dx = (x*(r₁ - r₁*x - z + σx*ηx)) % 1
dy = (y*(r₂ - r₂*y - z + σy*ηy)) % 1
dz = (z*(r₃ - r₃*z + σz*ηz)) % 1
return SVector{3}(dx, dy, dz)
end
To make things easier to use, we create function that generates a DiscreteDynamicalSystem instance for any set of parameters r₁
, r₂
and r₃
, initial condition u₀
, and dynamical noise levels σx
, σy
and σz
.
function logistic3(;u₀ = rand(3), r₁ = 4, r₂ = 4, r₃ = 4,
σx = 0.05, σy = 0.05, σz = 0.05)
p = [r₁, r₂, r₃, σx, σy, σz]
DiscreteDynamicalSystem(eom_logistic3, u₀, p)
end
An example realization of the system is:
s = logistic3()
orbit = trajectory(s, 100)
x, y, z = orbit[:, 1], orbit[:, 2], orbit[:, 3]
plot(x, label = "x", lc = :black)
plot!(y, label = "y", lc = :red)
plot!(z, label = "z", lc = :blue)
xlabel!("Time step"); ylabel!("Value")
Predefined system
This system is predefined in CausalityTools.Systems
, and can be initialized using the logistic3
function.
References
Runge, Jakob. Causal network reconstruction from time series: From theoretical assumptions to practical estimation, Chaos 28, 075310 (2018); doi: 10.1063/1.5025050. https://aip.scitation.org/doi/abs/10.1063/1.5025050