Quick Start
Reproduce the first algebra checks for the fractional Chua case.
Step 1 - Install The Library
pip install -e . # from the version_2 directory
Step 2 - Check Equilibria
import numpy as np
from hidden_attractors import chua_nonsmooth_parameters
from hidden_attractors.models import equilibria_nonsmooth, rhs_nonsmooth
params = chua_nonsmooth_parameters()
eq = equilibria_nonsmooth(params)
for name, point in eq.items():
print(name, point, np.linalg.norm(rhs_nonsmooth(point, params)))
For the default Danca parameters, the output contains E0, E+, and E-;
the outer coordinates start at +/-6.588307886539 and the residual norms
are at floating-point zero.
Step 3 - Check Fractional Local Stability
import numpy as np
from hidden_attractors.models import jacobian_nonsmooth
q = 0.9998
threshold = q * np.pi / 2.0
for name in ("E0", "E+"):
eigenvalues = np.linalg.eigvals(jacobian_nonsmooth(eq[name], params))
margins = np.abs(np.angle(eigenvalues)) - threshold
print(name, eigenvalues, np.all(margins > 0.0))
This reports the origin as locally stable and the outer equilibria as unstable under Matignon’s criterion.
Step 4 - Reproduce Harmonic Seeds
from hidden_attractors.seed_generation import find_harmonic_seed
for branch in (0, 1):
seed = find_harmonic_seed(q=0.9998, branch_index=branch)
print(branch + 1, seed.omega, seed.gain, seed.amplitude, seed.seed)
The two branches match the MATLAB validation after applying the documented
transfer convention W_code = -W_report.
Step 5 - Generate Evidence Files
From version_2, generate the CSV, JSON, and Matignon figure for the
completed algebra/Lur’e stages:
python tools/validation/validate_chua_fractional_nonsmooth_algebra.py
This command populates validation/01_algebra/,
validation/02_lure_df/, and the partial validation manifest. It does not
claim that integration, chaotic dynamics, or hiddenness have passed.
See Chua Non-Smooth for the recorded cross-tool results.