Software

Open-source tools I develop for the numerical analysis of nonlinear dynamical systems.

A Python toolkit for the analysis of dynamical systems

PyPI version Python versions Documentation status License: GPL v3 DOI

pynamicalsys is an open-source Python package for the analysis of nonlinear dynamical systems. It provides a unified interface to discrete maps, continuous flows, and Hamiltonian systems, together with a broad set of chaos indicators and transport measures. The numerical core is compiled with Numba, which brings the performance close to that of a compiled language while keeping a high-level Python interface.

Installation

pip install pynamicalsys

pynamicalsys supports Python 3.10 to 3.13 and depends only on NumPy and Numba.

What it does

Maps and sections

Bifurcation diagrams, Poincaré sections, and stroboscopic maps for discrete systems.

Hamiltonian systems

Symplectic integrators for the time evolution of Hamiltonian flows.

Chaos indicators

Linear dependence index and indicators based on weighted Birkhoff averages.

Recurrence analysis

Recurrence plots and recurrence time statistics.

Transport and diffusion

Statistical measures of transport and diffusion in phase space.

Orbits, manifolds, and basins

Periodic orbit computation, stability analysis, manifolds, and basin quantification.

The package is organized around the classes DiscreteDynamicalSystem, ContinuousDynamicalSystem, HamiltonianSystem, TimeSeriesMetrics, BasinMetrics, and PlotStyler, and reaches speedups of up to 130x over pure-Python implementations.

Quick example

from pynamicalsys import DiscreteDynamicalSystem

# Logistic map in the chaotic regime
system = DiscreteDynamicalSystem(model="logistic map")
trajectory = system.trajectory(0.2, 100, parameters=[3.8])

A complete tour of the API, with tutorials for discrete, continuous, and Hamiltonian systems, is available in the documentation.

Citation

If pynamicalsys is useful in your research, please cite:

M. R. Sales, L. C. de Souza, D. Borin, M. Mugnaine, J. D. Szezech Jr., R. L. Viana, I. L. Caldas, E. D. Leonel, and C. G. Antonopoulos, pynamicalsys: A Python toolkit for the analysis of dynamical systems, Chaos, Solitons & Fractals 201, 117269 (2025).

@article{pynamicalsys,
  title={pynamicalsys: A Python toolkit for the analysis of dynamical systems},
  author={Matheus Rolim Sales and Leonardo Costa de Souza and Daniel Borin and Michele Mugnaine and José Danilo Szezech and Ricardo Luiz Viana and Iberê Luiz Caldas and Edson Denis Leonel and Chris G. Antonopoulos},
  journal={Chaos, Solitons & Fractals},
  volume={201},
  pages={117269},
  year={2025},
  doi={https://doi.org/10.1016/j.chaos.2025.117269},
  url={https://www.sciencedirect.com/science/article/pii/S0960077925012822},
}