# 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.

## 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

1. Orbit diagrams (aka bifurcation diagrams) of maps: orbitdiagram.
2. Poincaré surfaces of section for continuous systems: poincaresos.
3. Automated production of orbit diagrams for continuous systems: produce_orbitdiagram.

### Lyapunov Exponents

The following treat systems where the equations of motion are known:

1. Maximum Lyapunov exponent for both discrete and continuous systems: lyapunov.
2. Lyapunov spectrum for both discrete and continuous systems: lyapunovs.

### Detecting & Categorizing Chaos

1. The Generalized Alignment Index: $\text{GALI}_k$ : gali.
• Implemented for both discrete and continuous systems.
2. A test to categorize strong chaos, partially predictable chaos and regular behavior: predictability.
• Implemented for both discrete and continuous systems.
3. The 0-1 test for chaos: testchaos01
4. The expansion entropy: expansionentropy.

### Entropies and Dimensions

1. Generalized (Renyi) entropy: genentropy.
2. Permutation entropy: permentropy.
3. Fast and cheap (memory-wise) method for computing entropies of large datasets.
4. Generalized dimensions (e.g. capacity dimension, information dimension, etc.): generalized_dim.
5. 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

1. Broomhead-King coordinates: broomhead_king.
2. Numerically determining the maximum Lyapunov exponent of a (e.g. experimentally) measured timeseries: numericallyapunov.

### Periodicity & Ergodicity

1. 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.
2. Estimating the period of a timeseries: estimate_period.
3. 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