Skip to main content

Simple JAX-based tool to compute Lyapunov spectra and exponents of dynamical systems.

Project description

chaotax logo

🚨 This is a pre-release for me to cite in my dissertation. It is based on software I once wrote for APEBench (but did not yet have the time to release) slightly rewritten and enhanced. Please check back end of May 2026 for a full release with extended features, documentation, and examples.

chaotax

Simple JAX-based tool to compute Lyapunov spectra and exponents of dynamical systems using autodiff.

PyPI Tests docs-latest License

InstallationQuickstartDocumentationRelated

Chaotax estimates Lyapunov exponents and spectra of dynamical systems using JAX's automatic differentiation (JVP-based linearisation). It works with any one-step state transition function, is JIT-compilable, and GPU/TPU-ready.

Installation

pip install chaotax

Requires Python 3.10+ and JAX 0.4.13+. See the JAX install guide.

Quickstart

Estimate the largest Lyapunov exponent of a system given a one-step transition function:

import jax
import jax.numpy as jnp
import chaotax

# Define a one-step stepper (e.g., Lorenz via RK4)
def lorenz_stepper(u):
    ...
    return u_next

u_0 = jnp.array([1.0, 0.0, 0.0])
eps_0 = jax.random.normal(jax.random.PRNGKey(0), u_0.shape)

estimate_le = chaotax.lyapunov(lorenz_stepper, rollout_steps=20_000, dt=0.01)
le = estimate_le(u_0, eps_0)

Compute the full Lyapunov spectrum:

estimate_spectrum = chaotax.lyapunov_spectrum(lorenz_stepper, rollout_steps=20_000, dt=0.01)
spectrum = estimate_spectrum(u_0, eps_0=jnp.eye(3))
# Returns exponents in descending order, e.g. [+, 0, -] for Lorenz

Documentation

Documentation is available at fkoehler.site/chaotax.

Related

  • Exponax — Exponential and explicit time steppers for PDEs in JAX
  • Picardax — Time-implicit differentiable PDE solvers in JAX

License

MIT, see here.


fkoehler.site  ·  GitHub @ceyron  ·  X @felix_m_koehler  ·  LinkedIn Felix Koehler

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

chaotax-0.0.1.tar.gz (80.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

chaotax-0.0.1-py3-none-any.whl (6.3 kB view details)

Uploaded Python 3

File details

Details for the file chaotax-0.0.1.tar.gz.

File metadata

  • Download URL: chaotax-0.0.1.tar.gz
  • Upload date:
  • Size: 80.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for chaotax-0.0.1.tar.gz
Algorithm Hash digest
SHA256 6950530940e4059162d4a1869737a15a40c7368bd86c2309c84f82fb5e57db0f
MD5 76c96212fc81acf2ab8a8c8ea093768e
BLAKE2b-256 5ccf64dafb81b343015da2a9be5b14688d710aa1909d5817778c3c24b850c844

See more details on using hashes here.

Provenance

The following attestation bundles were made for chaotax-0.0.1.tar.gz:

Publisher: publish.yml on Ceyron/chaotax

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file chaotax-0.0.1-py3-none-any.whl.

File metadata

  • Download URL: chaotax-0.0.1-py3-none-any.whl
  • Upload date:
  • Size: 6.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for chaotax-0.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 5f439dd20581736b25f3b1748948b684c4acf9ec888d1398dd0cf07da98a3bbb
MD5 2afc721999e7263e9d49180e00802594
BLAKE2b-256 3a5f811a7f5a048da701eaa1834d0f1e35b5273b3cdf8608e05b465b10d41ed1

See more details on using hashes here.

Provenance

The following attestation bundles were made for chaotax-0.0.1-py3-none-any.whl:

Publisher: publish.yml on Ceyron/chaotax

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page