KaplanYorke¶
Systems / Maps / Polynomial maps
The Kaplan–Yorke map — a skew product whose fractal dimension is known in closed form.
Definition¶
@staticmethod
def _step(X, alpha):
x, y = X
# Doubling map on the unit circle. The canonical wrap is mod 1, but the
# pure doubling map x -> frac(2x) drains a float mantissa one bit per
# step (2x is an exact shift) and collapses to the x=0 fixed point in
# ~52 iterations, killing the chaos. Wrapping just below 1 injects a
# ~5e-8 offset at each fold that keeps the orbit non-degenerate; the
# dynamics (and Lyapunov exponent ln 2) are unchanged to that tolerance.
xp = (2 * x) % 0.99999995
yp = alpha * y + np.cos(4 * np.pi * x)
return xp, yp
Parameters¶
| Symbol | Default | Role |
|---|---|---|
alpha |
0.2 |
contraction rate of the y coordinate (0<alpha<1) |
Properties¶
Lyapunov spectrum
$+0.6933,\; -1.61$
computed at build
computed at build
Kaplan–Yorke dimension
$D_{KY} = 1.431$
Divergence ∇·f
n/a — discrete map — flow divergence undefined (per-step contraction is |det J|)
Equilibria
1 fixed points
0 stable · 1 unstable
0 stable · 1 unstable
Define it in TSDynamics¶
import tsdynamics as ts
sys = ts.systems.KaplanYorke()
traj = sys.iterate(steps=10_000)
exps = sys.lyapunov_spectrum()
ts.kaplan_yorke_dimension(exps)
Reference¶
Kaplan & Yorke (1979), Functional Differential Equations and Approximation of Fixed Points, Lecture Notes in Mathematics 730, 204-227
