Contents
The module DynamicalSystems
re-exports all following functionality.
Core types
- 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.
- Unified & dedicated interface for numerical data:
Dataset
.
Entropies
- An interface to estimate Entropies & Probabilities from trajectories or state space sets.
- Fast and cheap (memory-wise) method for computing histograms of large datasets:
binhist
. - Dozens of Probabilities Estimators for doing so, including standard binning, counting, permutations, nearest neighbor based, time-scale based, among others.
Delay Coordinates Embedding
Performing delay coordinate embeddings and finding optimal parameters for doing so.
- Flexible, super-efficient and abstracted Delay Coordinates Embedding interface.
- Supports multiple dimensions and multiple timescales.
- Methods that estimate optimal embedding parameters: Traditional Optimal Embedding.
- Unified Optimal Embedding approach (advanced algorithms).
- Fast calculation of mutual information:
selfmutualinfo
. - Unified neighborhood interface.
ChaosTools
ChaosTools.jl is a collection of many algorithms for (chaotic or not) 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:
lyapunovspectrum
.
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
.
Fractal Dimension
- Dozens of methods to calculate a fractal dimension
- Entropy-based
- Correlation-sum-based
- 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:
mean_return_times
,exit_entry_times
.
Basins of Attraction
- Efficient algorithms for calculating basins of attraction on a planar projection.
Recurrence Analysis
RecurrenceAnalysis.jl 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