# Contents

The *module* `DynamicalSystems`

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