JuliaDynamics / ChaosTools.jl

Tools for the exploration of chaos and nonlinear dynamics
https://juliadynamics.github.io/DynamicalSystemsDocs.jl/chaostools/stable/
MIT License
188 stars 36 forks source link

feature proposal: adding Lyapunov exponent(s) for random dynamical systems #32

Open RainerEngelken opened 6 years ago

RainerEngelken commented 6 years ago

Currently, only ODEs are supported, it would be great to be able to calculate Lyapunov exponents of random dynamical systems (RDS). (https://www.springer.com/de/book/9783540637585). RDS studies how an ensemble of initial conditions evolves in time under the influence of a frozen noise realization. This allows extending concepts from the ergodic theory of dynamical systems like Lyapunov spectra, Kolmogorov-Sinai entropy and attractor dimensionality to systems with a stochastic external input.

Consider a stochastic differential equation of the form:

$$dx{t}=a(x{t})+\sum{i=1}^{N}b{i}(x{t})\circ dW{t}^{i}$$

where $$dW{t}^{i}$$ represent independent Brownian motions. An associated stochastic flow map is a solution for the dynamics, i.e. $$F{t{1},\,t{2};\zeta}(x{t{1}})=x{t{2}}$$. Instead of studying the temporal evolution of some initial measure \mu, where each initial condition receives private noise, as it is usually done in a Fokker-Planck ansatz, the theory of random dynamical systems studies the evolution of a sample measure $$\mu{\zeta}^{t}$$, defined as $$\mu{\zeta}^{t}=\lim{s\rightarrow\infty}(F{-s,\,t;\zeta}){*}\mu$$ where the push-forward ($$F{-s,\,t;\zeta}){*}$$ transports the initial measure $$\mu$$ for some fixed white noise realization $$\zeta(t)$$ defined for all $$t\in(-\infty,\infty)$$ along the flow $$F{-s,\,t;\zeta}$$. In other words, the sample measure $$\mu{\zeta}^{t}$$ is the conditional measure at time t given the infinite past history of $$\zeta(t)$$. Note that in general, while $$\mu{\zeta}^{t}$$ depends both on time t and the noise realization $$\zeta$$, it possesses invariant properties, characterizing its structure. For example, the Lyapunov exponents $$\lambda{1}\geqslant\lambda{2}\geqslant\ldots\geqslant\lambda_{N}$$ are independent of the input realization $$\zeta$$.

--- Want to back this issue? **[Post a bounty on it!](https://www.bountysource.com/issues/54893360-feature-proposal-adding-lyapunov-exponent-s-for-random-dynamical-systems?utm_campaign=plugin&utm_content=tracker%2F81670622&utm_medium=issues&utm_source=github)** We accept bounties via [Bountysource](https://www.bountysource.com/?utm_campaign=plugin&utm_content=tracker%2F81670622&utm_medium=issues&utm_source=github).
Datseris commented 6 years ago

@ChrisRackauckas may be interested here, this is for stochastic systems!

ChrisRackauckas commented 6 years ago

Random dynamical systems or stochastic dynamical systems? This seems to be used interchangably here, but I only see equations for SDEs.

RainerEngelken commented 6 years ago

Random dynamical systems. For a practical purpose, it doesn't make a difference here, but they have a different mathematical footing. Briefly, for RDS, you consider a single frozen noise realization that started at $-\infty$ and some distribution of initial conditions that are propagated from the distant past. These initial conditions will converge onto some invariant measure $\mu^xi_t$, for which a Lyapunov spectrum (and a time-dependent attractor) is well-defined.

ChrisRackauckas commented 6 years ago

Kloeden makes a clear distinction between noise applied linearly vs in a nonlinear function because it matters for the numerical integrators. This is then what DiffEq uses

Datseris commented 6 years ago

Chris was kind to share this chrome extention: https://chrome.google.com/webstore/detail/github-with-mathjax/ioemnmodlmafdkllaclgeombjnmnbima

that allows you to see the issue with rendered latex equations!

Datseris commented 6 years ago

Update: https://github.com/tkf/LyapunovExponents.jl claims to have Lyapunov exponents for random systems.