A containerized, interactive CLI toolset for the rigorous numerical analysis of chaotic attractors.
This project maps periodic windows within the Rössler system. To mitigate the compounding floating-point errors inherent in standard chaotic simulations, the environment utilizes the Interval Newton Method to rigorously prove the exact lower bounds of these windows, paired with Maximum Lyapunov Exponents to numerically estimate their upper limits.
- Rigorous Numerics (Interval Arithmetic): Utilizes the CAPD (Computer Assisted Proofs in Dynamics) library. All state variables and operations are represented as strict intervals, ensuring that true mathematical trajectories remain strictly bounded and immune to floating-point approximation errors.
-
Dimensionality Reduction: Defines a Poincaré section on the half-plane
$\Pi={x=0, y<0}$ to reduce the 3D continuous differential equations into a 2D discrete map. This optimizes the computational tracking of periodic orbits and structures. -
Computer-Assisted Proofs (Lower Bounds): Rigorously proves the existence and uniqueness of stable
$p$ -periodic orbits by implementing the Interval Newton Method.-
The Mathematical Operator: For a given candidate root
$x_0$ and a surrounding interval bounding box$X$ , the system computes the Interval Newton Operator:$N(x_0, X) = -[Df(X)]^{-1}f(x_0) + x_0$ , where$[Df(X)]$ is the interval enclosure of the Jacobian matrix of the displacement function$f(x) = P^{p}(x) - x$ (computed as$[DP^{p}(X)] - I$ ). -
Topological Verification: The algorithm evaluates this operator against the initial bounding box. If the condition
$N(x_0, X) \subset X$ is satisfied, it provides a strict mathematical guarantee that exactly one unique root$x^{*}$ exists within that box ($f(x^{*}) = 0$ ). -
Algorithmic Implementation: The C++ engine first uses a standard while-loop to numerically approximate the fixed point of
$p$ -th iterate of the Poincaré map. It then defines a strict interval box around this guess and applies the Interval Newton Operator. If the resulting interval is strictly contained within the interior of the initial box, the algorithm successfully proves the existence of the periodic orbit without any numerical ambiguity.
-
The Mathematical Operator: For a given candidate root
- Docker (Handles g++ 15, OpenMP, GMP, MPFR, and compiles the CAPD 6.0.0 library from source. It also provides a fully containerized Python3 environment with
numpy,scipy,pandas, andmatplotlibpre-installed for visualization).
In the root directory of the project run:
docker build -t roessler-app .The volume mount (-v) ensures any CSV data generated by the C++ programs is saved directly to your local output/ folder
docker run -it --rm -v $(pwd):/app roessler-appmakeAll core programs feature dynamic, interactive CLI menus that allow you to tweak initial conditions, precision tolerances, and scan resolutions without changing code by hand.
./poincare-bifurcation-diagram
./lower-bound
./upper-boundRun the visualization scripts inside the running Docker terminal. The resulting plots will be saved and accessible in your local /images/ directory.
cd py
python3 file_name.pyNote: Preview images can be found under
/images-preview/.
/src/utils.cpp
Core implementation of functions related to the Poincaré map and the Rössler system integration.
/src/lower-bound.cpp
Interactive CLI tool for calculating the rigorous lower bound of periodic windows using interval arithmetic (bisection method).
/src/upper-bound.cpp
Interactive CLI tool for calculating the upper bound of periodic windows by tracking Lyapunov exponents.
/src/poincare-bifurcation-diagram.cpp
Interactive CLI generator for Poincare map data. Allows custom resolution overrides and point targeting.
All procedures were tested on a machine running Arch Linux (kernel 6.15.2), equipped with an AMD Ryzen 5 5600 processor (6 cores / 12 threads, clock speed up to 4.47 GHz) and 32 GB of RAM.