Contents
The moduleDynamicalSystems
re-exports all following functionality, grouped into different packages.
DynamicalSystemsBase
- Intuitive, consistent APIs for the definition of general dynamical systems under a unified struct
DynamicalSystem
. The following combinations are possible:- Continuous or Discrete systems. Continuous systems use DifferentialEquations.jl for solving the ODE problem.
- In-place or out-of-place (large versus small systems).
- Auto-differentiated or not (for the Jacobian function).
- Automatic "completion" of the dynamics of the system with numerically computed Jacobians, in case they are not provided by the user.
- Robust implementations of all kinds of integrators, that evolve the system, many states of the system, or even deviation vectors. See the Advanced documentation for this.
- Library of Predefined Dynamical Systems that have been used extensively in scientific research.
DelayEmbeddings
Is a package for performing delay coordinate embeddings and finding optimal parameters for doing so.
- Unified & dedicated interface for numerical data:
Dataset
. - Flexible, super-efficient and abstracted Delay Coordinates Embedding interface.
- Supports multiple dimensions and multiple timescales.
- Methods that estimate optimal embedding parameters: the delay time (
estimate_delay
) and the number of temporal neighbors (estimate_dimension
). - Unified approach of finding optimal embeddings (advanced algorithms).
- Fast calculation of mutual information:
mutualinformation
.
ChaosTools
Is a package that has many algorithms for chaotic dynamical systems. All algorithms are independent of each other but they are also not expansive enough to be a standalone package.
Orbit Diagrams & PSOS
- Orbit diagrams (aka bifurcation diagrams) of maps:
orbitdiagram
. - Poincaré surfaces of section for continuous systems:
poincaresos
. - Automated production of orbit diagrams for continuous systems:
produce_orbitdiagram
.
Lyapunov Exponents
The following treat systems where the equations of motion are known:
- Maximum Lyapunov exponent for both discrete and continuous systems:
lyapunov
. - Lyapunov spectrum for both discrete and continuous systems:
lyapunovs
.
Detecting & Categorizing Chaos
- The Generalized Alignment Index: $\text{GALI}_k$ :
gali
.- Implemented for both discrete and continuous systems.
- A test to categorize strong chaos, partially predictable chaos and regular behavior:
predictability
.- Implemented for both discrete and continuous systems.
- The 0-1 test for chaos:
testchaos01
- The expansion entropy:
expansionentropy
.
Entropies and Dimensions
- Generalized (Renyi) entropy:
genentropy
. - Permutation entropy:
permentropy
. - Fast and cheap (memory-wise) method for computing entropies of large datasets.
- Generalized dimensions (e.g. capacity dimension, information dimension, etc.):
generalized_dim
. - Kaplan-Yorke dimension:
kaplanyorke_dim
.
And, in order to automatically deduce dimensions, we also offer methods for:
- Partitioning a function $y(x)$ vs. $x$ into regions where it is approximated by a straight line, using a flexible algorithm with a lot of control over the outcome. See
linear_regions
. - Detection of largest linear region of a function $y(x)$ vs. $x$ and extraction of the slope of this region.
Nonlinear Timeseries Analysis
- Broomhead-King coordinates:
broomhead_king
. - Numerically determining the maximum Lyapunov exponent of a (e.g. experimentally) measured timeseries:
numericallyapunov
.
Periodicity & Ergodicity
- Numerical method to find unstable and stable fixed points of any order$n$ of a discrete map (of any dimensionality):
periodicorbits
.- Convenience functions for defining and realizing all possible combinations of $\mathbf{\Lambda}_k$ matrices required in the above method.
- Estimating the period of a timeseries:
estimate_period
. - Return and transit time statistics for a subset of the state space:
transit_time_statistics
.
RecurrenceAnalysis
RecurrenceAnalysis
offers tools to compute and analyze Recurrence Plots, a field called Recurrence Quantification Analysis.
- Recurrence Plots, with cross-recurrence and joint-recurrence.
- Recurrence Quantification Analysis (RQA):
- Recurrence rate, determinism, average/maximum diagonal length, divergence, laminarity, trend, entropy, trapping time, average/maximum vertical length.
- Fine-tuning of the algorithms that compute the above (e.g. Theiler window and many more)
- Windowed RQA of the above