Bifurcation Diagram
Sweep the parameter and watch period-doubling cascades emerge. Dots are coloured by Lyapunov exponent — blue for stable, red for chaotic.
What is a Bifurcation Diagram?
A bifurcation diagram shows how the long-run behaviour of a map \(f_r(x)\) changes as the parameter \(r\) is varied. For each value of \(r\):
- The map is iterated from \(x_0\) for a long transient (discarded).
- The subsequent iterates \(x_n\) are plotted as dots above that value of \(r\).
- A stable fixed point produces one dot; a period-2 orbit produces two; chaos produces a cloud.
Period-Doubling Cascade (Logistic Map)
For the logistic map \(f_r(x)=rx(1-x)\), increasing \(r\) from 1 to 4 reveals:
- \(r \in (1,3)\): unique stable fixed point \(x^*=(r-1)/r\).
- \(r \approx 3\): first bifurcation — fixed point loses stability, period-2 orbit born.
- \(r \approx 3.449\): period-4 born. Then period-8 at \(r\approx3.544\), period-16 at \(r\approx3.564\), \(\ldots\)
- \(r \approx 3.5699\) (Feigenbaum point \(r_\infty\)): onset of chaos.
- \(r=4\): fully chaotic; orbit is dense in \([0,1]\); Lyapunov exponent \(\lambda=\ln 2\).
The Feigenbaum Constant \(\delta\)
The bifurcation values \(r_1, r_2, r_3, \ldots\) at which the period doubles converge at a universal rate:
This constant \(\delta\) is universal — it appears in the period-doubling cascade of any smooth unimodal map, not just the logistic map. The tent and sine maps share the same \(\delta\).
Lyapunov Exponent Colouring
Dots are coloured by the Lyapunov exponent \(\lambda(r)=\lim_{N\to\infty}\frac{1}{N}\sum_{i=0}^{N-1}\ln|f'(x_i)|\):
- Blue (\(\lambda<0\)): stable — orbits converge. Stable fixed points and periodic windows.
- Amber (\(\lambda\approx 0\)): neutral — bifurcation boundary.
- Red (\(\lambda>0\)): chaotic — exponential divergence of nearby orbits.
The Lyapunov exponent is also plotted separately below the bifurcation diagram, showing exactly where chaos begins.
The Palette picker beneath the diagram swaps the colour mapping without recomputing. Choices are grouped into:
- Default — Classic spectrum: the navy → blue → teal → amber → crimson scheme used in the figures here.
- Monochrome (1–10) — single-hue gradients (ink wash, indigo, wine, sepia, forest, cobalt, plum, rust, teal noir, charcoal). Stable and chaotic regions read in the same hue, so structure shows through density alone.
- Multi-colour (11–18) — two-hue gradients (aurora, sunset bay, honey field, pacific, dragonfruit, cantaloupe, lagoon, midnight garden) that still encode \(\lambda\) along the gradient. All stops are dark enough to remain crisp on deep zoom.
Periodic Windows Inside Chaos
Even within the chaotic regime (\(r>r_\infty\)) there are infinitely many periodic windows — narrow ranges of \(r\) where the orbit becomes periodic again. The most visible is the period-3 window near \(r\approx3.8284\). By Li–Yorke's theorem, period-3 implies all periods.
Other Maps
- Tent map \(f_\mu(x)=\mu\min(x,1-x)\): piecewise linear, same Feigenbaum constant, chaos at \(\mu=2\).
- Sine map \(f_r(x)=r\sin(\pi x)\): smooth, same universal behaviour, fully chaotic at \(r=1\).
- Quadratic \(f_\mu(x)=1-\mu x^2\) on \([-1,1]\): Feigenbaum form, period-doubling at \(\mu=\tfrac34,\tfrac54,\ldots\to\mu_\infty\approx 1.40115\); fully chaotic at \(\mu=2\), conjugate to logistic \(r=4\) and to \(x^2+c\) at \(c=-2\).
Hénon Map — A 2D Discrete Strange Attractor
The Hénon map \(x_{n+1}=1-ax_n^2+y_n,\;y_{n+1}=bx_n\) is a two-dimensional invertible map introduced by Michel Hénon in 1976 as a simplified model of a Poincaré section of the Lorenz flow. Fixing \(b=0.3\) and varying \(a\), the orbit undergoes a period-doubling cascade to chaos — culminating in the famous Hénon strange attractor at \((a,b)=(1.4,0.3)\).
- \(a\lesssim 0.3675\): a stable fixed point at \(x^*=\tfrac{-(1-b)+\sqrt{(1-b)^2+4a}}{2a}\).
- \(a\approx 0.3675\): period-2 born (where \(a_1=\tfrac{3(1-b)^2}{4}\)).
- \(a\approx 0.9125\): period-4.
- \(a\approx 1.026\): period-8; cascade accumulates.
- \(a\approx 1.058\): onset of chaos (the Feigenbaum point).
- \(a=1.4\): the classical chaotic Hénon attractor — fractal dimension \(\approx 1.26\), largest Lyapunov exponent \(\lambda\approx 0.42\).
Because the dynamics live on a 2D plane, the diagram plots the \(x\)-coordinate of the orbit against \(a\) — a projection of the attractor. The largest Lyapunov exponent is computed from the Jacobian \(J=\bigl(\begin{smallmatrix}-2ax&1\\b&0\end{smallmatrix}\bigr)\): a tangent vector is iterated under \(J\) and renormalized periodically (Benettin's method), accumulating \(\log\|J\mathbf{v}\|\). The Hénon cascade obeys the same Feigenbaum universality (\(\delta\approx 4.669\)) as 1D unimodal maps.
How to Interact — Exploring Self-Similarity
- Scroll or pinch on either canvas to zoom.
- Drag to pan both axes simultaneously.
- Shift+drag on the bifurcation diagram to draw a zoom box around a feature.
- Refine (or Auto-refine, on by default) re-runs the computation at the current zoom window, revealing fresh detail. Each refine exposes another level of the period-doubling cascade — you'll see miniature copies of the full diagram inside periodic windows (e.g. inside the period-3 window near \(r\approx3.83\)).
- Back undoes the last refine; Reset view returns to the full map.
- Click on either canvas to set a parameter crosshair — the readout shows the exact value.
- Double-click to reset the view.
- Compute runs the full calculation and displays the diagram at once.
- Toggle Feigenbaum lines to show/hide the annotated bifurcation points. Use High or Ultra quality for deep zooms.
- Tick Deep zoom to arm arbitrary-precision arithmetic (decimal.js, 30–200 digits, scaled to the window) when the parameter range drops below \(10^{-9}\). Supported on logistic, quadratic, tent, and Hénon. Compute is sharded across up to six Web Workers so the precision overhead is parallelized rather than serialized — sub-attometer zooms remain interactive.
- Use the Palette picker (below the diagram, next to the Stable–Chaotic legend) to switch between the classic spectrum, ten monochrome themes, and eight multi-colour themes — the diagram recolours instantly without recomputing.
Interactive bifurcation diagram showing the long-run orbit of the selected map as a function of the parameter. Blue dots indicate stable periodic orbits, red dots indicate chaos. Feigenbaum bifurcation points are marked with dashed vertical lines when the annotation option is enabled.
Lyapunov exponent as a function of parameter, sharing the same horizontal axis as the bifurcation diagram. Values below zero correspond to stable or periodic behaviour; values above zero indicate chaos. A horizontal dashed line marks lambda equals zero.