6. Data Library¶
The orc.data module provides a collection of ODE and PDE benchmark systems commonly used to evaluate reservoir computing methods. Each function returns a solution array U and time vector t.
import functools
import time
import jax
jax.config.update("jax_enable_x64", True)
import jax.numpy as jnp
import jax.random
import diffrax
import numpy as np
import matplotlib.pyplot as plt
import orc.data
import orc.utils.visualization as vis
ODE Systems¶
Lorenz63 — 3D chaotic attractor and the canonical RC benchmark. Lyapunov time $\approx$ 1.1 time units.
u,t = orc.data.lorenz63(tN = 20, dt = 0.01)
vis.plot_time_series(u,t, title="Lorenz63 Time Series")
Rössler — 3D chaotic system with simpler attractor geometry than Lorenz.
u,t = orc.data.rossler(tN = 100, dt = 0.01)
vis.plot_time_series(u,t, title="Rossler Time Series")
Sakaraya — 3D chaotic system from ecological modeling (predator-prey dynamics).
u,t = orc.data.sakaraya(tN = 20, dt = 0.01)
vis.plot_time_series(u,t, title="Sakaraya Time Series")
Colpitts — 3D chaotic oscillator originating from electronic circuit theory.
u,t = orc.data.colpitts(tN = 100, dt = 0.01)
vis.plot_time_series(u,t, title="Colpitts Time Series")
Hyper Lorenz63 — 4D hyperchaotic extension of the Lorenz system (two positive Lyapunov exponents).
u,t = orc.data.hyper_lorenz63(tN = 20, dt = 0.01)
vis.plot_time_series(u,t, title="Hyper Lorenz63 Time Series")
Hyper Xu — 4D hyperchaotic system with complex attractor structure.
u,t = orc.data.hyper_xu(tN = 20, dt = 0.01)
vis.plot_time_series(u,t, title="Hyper Xu Time Series")
Double Pendulum — 4D Hamiltonian system exhibiting chaos. Supports optional damping.
u,t = orc.data.double_pendulum(tN = 40, dt = 0.01, damping=0.0)
vis.plot_time_series(u,t, title="Double Pendulum Time Series")
Spatiotemporal Systems¶
Lorenz96 — $N$-dimensional spatiotemporal chaos with adjustable dimension. Commonly used for testing high-dimensional forecasting methods.
u,t = orc.data.lorenz96(tN = 40, dt = 0.05, N=200)
vis.imshow_1D_spatiotemp(u,t[-1], title="Lorenz96 Time Series", interpolation='bicubic')
Kuramoto-Sivashinsky (1D) — Spatiotemporally chaotic PDE integrated with a spectral method. A standard benchmark for high-dimensional RC forecasting (see ks.ipynb).
u,t = orc.data.KS_1D(tN=1000)
vis.imshow_1D_spatiotemp(u,t[-1], title="Kuramoto-Sivashinsky 1D Time Series", interpolation='bicubic')