Sphere Controls
Probe equilibrium-neighborhood initial conditions on spheres and record whether they enter target-attractor basins.
The Sphere Controls workflow is designed to probe initial conditions in the immediate neighborhood of a system’s equilibria. By sampling initial seeds on concentric spheres of decreasing radii around each equilibrium point, the workflow checks if trajectories converge to a known attractor (self-excited) or if they diverge or converge elsewhere, helping mathematically classify the attractor’s hiddenness.
Concept & Methodology
For each equilibrium point of a system:
- Define concentric spheres of radius .
- Uniformly or directionally sample initial conditions on these spheres.
- Integrate each starting coordinate using the selected solver (e.g.,
EFORKSolverorABMSolver). - Monitor whether trajectories escape the neighborhood or fall back into the stable/unstable manifolds. If all trajectories from the neighborhood of all equilibria converge to separate target attractors (or infinity) rather than the candidate attractor, the candidate qualifies as a hidden attractor.
Usage via CLI
You can run the sphere controls workflow directly from the command line:
# Get help and options
hidden-attractors-sphere-controls --help
# Execute sphere controls on the non-smooth Chua model
python tools/cli/lure_top3_sphere_robustness.py --system chua-nonsmooth --radii 1e-3,1e-4 --samples 10
Python API Usage
You can also use this workflow directly inside your Python research scripts:
from hidden_attractors import get_system
from hidden_attractors.workflows.sphere_controls import run_integer_lure_hiddenness_controls
system = get_system("chua-nonsmooth")
# Run controls on a given reference trajectory
probes = run_integer_lure_hiddenness_controls(
system,
trajectory,
radii=(1.0e-4, 1.0e-5),
samples_per_radius=10,
t_final=50.0,
h=0.01
)