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\).
More One-Dimensional Maps
A few more one-line maps with distinctive bifurcation behaviour are built in:
- Ricker \(x_{n+1}=x_n e^{r(1-x_n)}\): a population model with the standard period-doubling route to chaos; \(x^*=1\) destabilizes at \(r=2\).
- Exponential \(x_{n+1}=e^{-r x_n}\): exactly one period-doubling — being monotone decreasing it admits only periods 1 and 2 (bifurcation at \(r=e\)).
- Cosine \(x_{n+1}=r\cos x_n\): a full period-doubling cascade into chaos.
- Tangent \(x_{n+1}=r\tan x_n\): a messy structure — the poles of \(\tan\) fling orbits off to infinity.
- Cubic \(x_{n+1}=r x_n-x_n^3\): an odd map whose attractors come in symmetric pairs \(\pm x\).
Arbitrary Discrete Maps — the Custom Option
Beyond the built-ins, the Custom map accepts any one-dimensional map \(x_{n+1}=f(x_n,\,r)\) you type, in terms of x and the parameter r. Standard functions are available — sin, cos, tan, exp, log, sqrt, abs, floor, the constants pi and e, powers with ^, and mod(a,b) for true modular arithmetic (so the binary-shift map \(x_{n+1}=\operatorname{mod}(r x_n,1)\) works). You set the \(x\)-domain; the tool then iterates the map across the parameter range, colours each point by the numerically-estimated Lyapunov exponent \(\lambda=\langle\ln|f'(x)|\rangle\) (derivative by finite differences), and — unless you override the range by hand — auto-detects the parameter window where the interesting dynamics live (the period-doubling cascade and chaos) and zooms there. Deep-zoom arbitrary precision is not available for custom maps.
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.
Cite this tool
Kapita, S. (2026). Bifurcation Diagram. Math Tools. https://doi.org/10.5281/zenodo.20981155
Kapita, Shelvean. "Bifurcation Diagram." Math Tools, 2026, doi.org/10.5281/zenodo.20981155.
@online{kapita2026bifurcation,
author = {Shelvean Kapita},
title = {{Bifurcation Diagram}},
year = {2026},
organization = {Math Tools},
doi = {10.5281/zenodo.20981155},
url = {https://doi.org/10.5281/zenodo.20981155}
}