ORC 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
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
jax.config.update("jax_enable_x64", True)
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')