</ >_
Fyskode
0
Chaos Science Hidden Attractors

Hidden Attractors Fractional Order: an auditable library for Chua workflows

Xerkkun
Xerkkun
May 17, 2026 14 min read

This page introduces hidden-attractors-fo, a Python research library organized to reproduce, audit, and extend numerical experiments involving hidden-attractor candidates in integer- and fractional-order Chua/Lur’e systems.

The origin of each method remains visible in the code and documentation: Leonov—Kuznetsov for the hidden versus self-excited distinction, Danca for the non-smooth fractional Chua example, Matignon for fractional local stability, Benettin for Lyapunov exponents, Caputo for the causal fractional derivative, and Guan—Xie for the recent review of localization methods.

What The Library Does

The library separates the work into auditable tasks:

  • define Chua systems and manually supplied Lur’e decompositions;
  • generate describing-function/Nyquist seeds and continue them numerically;
  • load real trajectories produced by workflows;
  • plot phase spaces, projections, time series, spectra, and bifurcation views;
  • record which diagnostics provide numerical evidence and which do not prove hiddenness.

The trajectory contract used by the examples is simple:

t,x,y,z

A project trajectory can then be loaded and plotted directly:

from hidden_attractors.io import load_trajectory_csv
from hidden_attractors.plotting import plot_phase_space

trajectory = load_trajectory_csv("outputs/.../reference_attractor.csv")
plot_phase_space(trajectory, "outputs/my_case/phase_space_3d.png")

The Integer Chua q=1 Baseline

Before extending the workflow to fractional memory, the non-smooth Chua system was verified as an order-one reference case. The stored model uses:

ParameterValue
alpha8.4562
beta12.0732
gamma0.0052
m0-0.1768
m1-1.1468
dynamic orderq=1.0

Its Lur’e/Nyquist describing-function closure selects omega0 = 2.03918694, k = 0.20986735, and a0 = 5.85614509, with an absolute complex closure residual of 9.93e-16.

Real and imaginary transfer-component closure for integer Chua

The Python workflow now generates this two-panel transfer-function check, matching the representation in the supplied MATLAB verification script: Re(W(i omega0))=-1/k and Im(W(i omega0))=0.

Published Numerical Comparison

Guan and Xie (2025), Example 6 on PDF page 14, publish the same parameter set and display the seed quantities below. The relative differences use the rounded values printed in the paper:

QuantityPython resultGuan—Xie displayed valueRelative difference
omega02.0391869399590012.03920.000640%
k0.2098673545150840.20980.032104%
a05.8561450862573565.85760.024838%
y(0)0.3693315782467820.36940.018522%
z(0)-8.366536168331880-8.36860.024662%

These percentages include publication rounding and are not errors against unrounded reference data.

The harmonic seed is carried to the original nonlinear system by epsilon continuation. The regenerated run evaluates the EFORK-3 numerical route at q=1, keeping the order-one baseline directly comparable with the fractional workflow and its native validation stages.

The EFORK-3 stage order was checked against Ghoreishi, Ghaffari, and Saad (2023) and the validation implementation supplied by Dr. Luis Gerardo de la Fraga of CINVESTAV Unidad Zacatenco. The earlier integration-dependent outputs were deleted and the integer run was regenerated with K3 = a31*K1 + a32*K2.

Integer Chua epsilon continuation

The stored final trajectory also records frequency comparisons against the describing-function seed:

EstimateFrequency (rad/s)Difference from omega0
Nyquist/DF seed2.039186939959001-
FFT of x(t)2.30357865944818012.9655%
Welch PSD of x(t)2.30097118182851112.8377%

FFT frequency comparison for integer Chua

PSD frequency comparison for integer Chua

FFT and PSD are spectral diagnostics for the continued trajectory, not a hiddenness proof.

The regenerated final candidate has native Benettin Lyapunov estimates (0.20824618, 0.01373270, -1.36693009), including a positive leading exponent. Hiddenness controls launched 504 trajectories from neighborhoods of the three equilibria and recorded TARGET=0.

Integer Chua hiddenness controls

This evidence supports the wording numerical hidden-attractor candidate under the recorded finite sampling and integration horizons. It is not a global proof of hiddenness.

Fractional Non-Smooth Chua: Algebra Stage

The Danca non-smooth case at q=0.9998 is now separated from the integer baseline as its own validation target. With alpha=8.4562, beta=12.0732, gamma=0.0052, m0=-0.1768, and m1=-1.1468, MATLAB and Python reproduce the three equilibria and their regional Matignon classification: the origin is stable and the two external equilibria are unstable.

The two centered harmonic branches are:

Branchomega0ka0
12.0402860510790.2100227929625.851767785486
23.2449267309750.9569454049281.053016610257

The comparison required a documented sign normalization: the Python API stores W_code = -W_report, so its residual 1 + k W_code is the same algebraic closure as the report/MATLAB residual 1 - k W_report. The supplied Wolfram source verifies the symbolic identities after renaming its protected variable Tr.

Danca (2017) is the direct publication for this exact case. Petras (2008) provides independent support for the fractional PWL Chua model family but uses other numerical parameters. Sene (2021) concerns a related fractional Chua system without the -gamma*z damping term, so it informs reporting practice rather than serving as direct numerical confirmation.

See the complete algebra audit.

Fractional-Order Outputs

The fractional workflows retain the same evidence-first policy. The following phase portrait was generated from a real project trajectory, not from a decorative illustration.

Fractional Chua phase space

The xy, xz, and yz projections allow geometric comparisons without depending on a single three-dimensional view.

Phase-space projections

Time series help determine whether a trajectory remains bounded, collapses to an equilibrium, or requires a revised numerical contract.

System time series

A bifurcation view extracted from previously calculated trajectories is useful post-processing evidence; it is not a substitute for full numerical continuation.

Post-processed bifurcation diagram

Verification Sources

The integer reference package separates each source by its evidentiary role:

SourceCurrent statusRole
Library artifacts in chua_integer_runs/balancedregeneratedJSON, CSV, and figures from the corrected q=1 workflow
Theoretical report dated 17 May 2026registered copyInteger Chua derivation and harmonic seed; earlier integration-dependent numbers are superseded
MATLAB verifica_chua_entero.mlocally reproducedIndependent Lur’e, Nyquist/DF, canonical transform, and ODE run
Guan and Xie (2025)published comparisonExample 6 values for omega0, k, a0, and the initial point
Wolfram Language symbolic derivationlocally executedAlgebraic verification source; intentionally performs no numerical parameter evaluation
Ghoreishi, Ghaffari, and Saad (2023) plus supplied EFORK scriptsreproduced benchmarkTables 3, 4, 9, and 10 validate the corrected EFORK-3 stage order

Guan and Xie, A review on methods for localization of hidden attractors, published in Nonlinear Dynamics in 2025, identifies Chua’s circuit as a central historical example and reviews numerical continuation among the available localization strategies. Example 6 also supplies the rounded seed values compared above; higher-precision and spectral results come from the registered library run.

References Visible From The Code

The repository documents its calculation sources through:

  • docs/references.bib;
  • docs/code_reference_map.md;
  • docs/integer_chua_reference.md;
  • docs/reporte_unificado_chua_fraccionario.tex;
  • validation/reference_cases/chua_integer_q1/.
  • validation/reference_cases/efork3_ghoreishi_ghaffari/.

The rule is straightforward: a calculation must identify whether it derives from a published article, a local numerical contract, or an external reproduction tool.

Conservative Scientific Reading

A convincing trajectory is not enough to declare a hidden attractor. The documented sequence is:

harmonic seed
-> observed attractor
-> target comparison
-> numerical robustness
-> equilibrium-neighborhood probes
-> hiddenness interpretation

If a TARGET trajectory appears from an equilibrium neighborhood, the candidate must not be called hidden under that contract. This separation is what makes the library useful as scientific infrastructure rather than only a figure generator.

Tags: #chaos #chua #dynamical systems #python #fractional order
Compartir articulo
Xerkkun

Sobre el autor

Xerkkun

Creador de Fyskode. Escribo sobre ciencia, tecnología, electrónica, matemáticas y esas ideas que aparecen cuando uno intenta entender cómo funciona el mundo.

Comentarios 0

Puedes comentar como invitado. Los comentarios nuevos pasan por validacion anti-spam, rate limiting y moderacion antes de publicarse.

El sitio registra la IP que llega desde Cloudflare, la cadena de proxies y, si Cloudflare la envia al origen, la ubicacion aproximada del visitante para fines de abuso y moderacion.

Cloudflare Turnstile protege este formulario contra bots. La verificacion se valida del lado del servidor antes de guardar tu comentario.

Cargando comentarios...