# 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: Available integrators.
• Library of Predefined Dynamical Systems that have been used extensively in scientific research.
• Unified & dedicated interface for numerical data: Dataset.

## Delay Coordinates Embedding

Performing delay coordinate embeddings and finding optimal parameters for doing so.

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

1. Maximum Lyapunov exponent: lyapunov.
2. Lyapunov spectrum: lyapunovspectrum.
3. Finite-time, finite-size Lyapunov exponent (a.k.a. nonlinear Lyapunov exponent): local_growth_rates.
4. Numerically determining the maximum Lyapunov exponent of a (e.g. experimentally) measured timeseries or dataset: lyapunov_from_data.

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

## Fractal Dimension

1. Dozens of methods to calculate a fractal dimension
2. Entropy-based
3. Correlation-sum-based
4. 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. DyCA coordinates: dyca.
3. Nearest Neighbor Prediction.
4. Timeseries Surrogates.

## 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: mean_return_times, exit_entry_times.

## Recurrence Analysis

RecurrenceAnalysis.jl offers tools to compute and analyze Recurrence Plots, a field called Recurrence Quantification Analysis.

## Other NLD-relevant packages

Besides DynamicalSystems.jl, the Julia programming language has a thriving ecosystem with plenty of functionality that is relevant for nonlinear dynamics. We list some useful references below: