LyapunovExponents.jl --- A hackable Lyapunov exponents calculator
The aim of LyapunovExponents.jl is to provide an efficient research platform for computations related to Lyapunov exponents. This is (planned to be) achieved by exposing low-level APIs to Lyapunov exponents calculation.
At the moment, LyapunovExponents.jl is still at the very early stage of development and nowhere close to providing a stable API.
Features
Implemented:
- Lyapunov exponents calculation based on QR decomposition.
- Maximum Lyapunov exponent calculation.
- Covariant Lyapunov vectors calculation.
- Tangent space evolution based on the automatic differentiation tool ForwardDiff.jl.
- Testing utilities for tangent space evolution (Jacobian calculation) provided by users.
- Continuous dynamical systems support based on DifferentialEquations.jl. This means that the rich set of ODE solvers can be used.
- Random ordinary differential equation support.
- Various examples of continuous and discrete dynamical systems.
- OnlineStats.jl support: on-the-fly calculation of Lyapunov exponents, their variance, covariance, and any other statics it supports.
- (Experimental) Automatic termination.
Wanted list:
- Delay differential equations.
- Partial differential equations.
- Stochastic dynamical systems.
- Poincaré map.
Related works
- ChaosTools.jl from the DynamicalSystems.jl ecosystem is another Julia library which provides easy-to-use, clearly written, well-tested, and well-documented Lyapunov exponents calculation.
- eom is a Rust library which provides Lyapunov exponents and Covariant Lyapunov vectors calculation, on top of configurable ODE/PDE solvers.
- (I'm sure there are more...)
License
The LyapunovExponents.jl package is licensed under the MIT "Expat" License. See LICENSE.md file.