ISEGORIA / MATH ENCYCLOPEDIA
Fractal geometry: dimension between the integers
Sets that look the same at every scale, and the number that measures how much of the plane they fill. Iterated function systems and the Moran equation for the similarity dimension, box counting as the practical estimate, the Mandelbrot set as the map of which Julia sets hold together, rewriting rules that grow curves and plants, and the basins of Newton’s method, whose common boundary is a fractal.
Before you begin: Measure theory and dynamical systems
Predict, manipulate, then check your reasoning against the example and question. Graphs illustrate the mathematics; they do not replace a proof.
1. Iterated function systems
A finite family of contractions S₁, …, Sₘ has exactly one non-empty compact set F with F = ⋃ Sᵢ(F), its attractor. The chaos game finds it without ever writing F down: start anywhere, apply a randomly chosen map, and keep the points after the first few. Press Play to watch the gold start converge onto F and the raster fill in. When the maps are similarities of ratios rᵢ and their images barely touch, the dimension is the root of the Moran equation Σ rᵢᵈ = 1, plotted on the right. In the custom system, drag the three fixed points: the shape changes but the root does not, until the ratio r passes 1/2 and the pieces overlap.
Worked example. The Sierpinski triangle is three similarities of ratio \(1/2\): \(3\cdot(1/2)^d=1\) gives \(d=\log3/\log2=1.585\). The Koch curve is four maps of ratio \(1/3\): \(d=\log4/\log3=1.262\). In the custom system with \(r=0.4\), \(d=\log3/\log2.5=1.199\), and the readout confirms \(\sum r_i^d=1.000\).
Watch out. The Moran formula needs the open set condition: the images \(S_i(F)\) may touch but not overlap. For \(r>1/2\) in the custom system they overlap, the root exceeds the true dimension, and past \(r=1/\sqrt3\) it even exceeds 2. The fern is built from affine maps that squeeze differently in different directions, so it is not self-similar, no ratio \(r_i\) exists, and the lab quotes a box-count estimate instead. The chaos game also draws the invariant measure, not the set: with unequal probabilities some parts of \(F\) are visited rarely and look faint even though they belong to \(F\).
Why does the chaos game reach the attractor from any starting point, and why are the first points discarded?
Each map shrinks distances by at most \(r_{\max}<1\), and \(F\) is invariant, so the distance from the current point to \(F\) is multiplied by at most \(r_{\max}\) at every step: after \(n\) steps it is at most \(r_{\max}^{\,n}\) times the starting distance. The first points are therefore near \(F\) but not on it, which is why they are dropped; after twenty steps with \(r=1/2\) the error is below one part in a million, invisible in the raster.
2. Box counting
Cover the plane with a grid of boxes of side ε and count the boxes N(ε) that meet the set. For a smooth curve N(ε) grows like 1/ε, for a filled region like 1/ε², and for a fractal like ε⁻ᵈ with d in between: the box-counting dimension is the slope of log N(ε) against log(1/ε). Choose a set and drag the gold point along the right-hand plot to change ε; the shaded boxes on the left are the ones being counted. Compare the fitted slope with the theoretical dimension, and switch the fit between all scales and the fine scales to see how much the coarse boxes distort it.
Worked example. For the Koch curve the lab counts \(N(2^{-4})=32\) and \(N(2^{-7})=461\) boxes. The least-squares slope over \(k=4,\dots,7\) is \(1.260\), against the exact \(\log4/\log3=1.2619\). Over all seven scales the slope is \(1.291\): the two coarsest grids see the curve as little more than a segment.
Watch out. A slope from seven grids is an estimate, not a limit. Every set here is a finite object: the Koch polyline has level 6, the Brownian trace 4096 steps, the triangle 40,000 points, so below their own resolution they have dimension 1 or 0 and the slope drifts if \(\varepsilon\) is pushed further. The count also depends on where the grid sits; the definition takes a limit over which this dependence disappears. Box dimension is not Hausdorff dimension: the set \(\{1,1/2,1/3,\dots\}\) has box dimension \(1/2\) and Hausdorff dimension 0.
Why does the countable set {1, 1/2, 1/3, …} have box-counting dimension 1/2?
The gap between \(1/n\) and \(1/(n+1)\) is about \(1/n^2\). Once \(1/n^2<\varepsilon\), that is \(n>\varepsilon^{-1/2}\), the points are closer than a box and the whole tail \([0,\varepsilon^{1/2}]\) costs about \(\varepsilon^{-1/2}\) boxes; the \(\varepsilon^{-1/2}\) larger points need one box each. So \(N(\varepsilon)\approx2\varepsilon^{-1/2}\) and the slope is \(1/2\). Hausdorff dimension is 0 because a countable set has zero \(s\)-dimensional Hausdorff measure for every \(s>0\).
3. Julia sets from the Mandelbrot set
For each c the map z ↦ z² + c has a filled Julia set K(c), the points whose orbits stay bounded, and its boundary, the Julia set, is where the dynamics is chaotic. The Mandelbrot set M is the set of c for which the orbit of the critical point 0 stays bounded, and that single orbit decides the topology of K(c): connected when c ∈ M, a Cantor dust when not. Drag c across the parameter plane on the left and watch K(c) recompute on the right. Inside a bulb of M the orbit of 0 falls into an attracting cycle; the readout finds its period p and the multiplier λ = 2z₀ · 2z₁ ⋯ 2zₚ₋₁, whose modulus is below 1 exactly when the cycle attracts. Cross the boundary of M and K(c) shatters.
Worked example. At \(c=-1\) the orbit of 0 is \(0\to-1\to0\), a cycle of period 2 with multiplier \(\lambda=2\cdot0\cdot2\cdot(-1)=0\): superattracting, and \(K_{-1}\) is the connected basilica. At \(c=1\) the orbit is \(0\to1\to2\to5\), so \(|z_3|>2\) after three steps, \(1\notin M\), and \(K_1\) is a Cantor set. At the Douady rabbit \(c=-0.123+0.745i\) the readout finds period 3 with \(|\lambda|\approx0.005\).
Watch out. Leaving the disc \(|z|\le2\) proves escape, but staying inside for 80 or 500 steps does not prove membership: near the boundary of \(M\) and of \(K_c\) orbits linger for thousands of steps, so both rasters slightly overestimate the sets and the fine filaments of \(M\) are thicker than they are. The period finder only detects cycles that the orbit of 0 actually reaches within tolerance; at a Misiurewicz point such as \(c=i\) the orbit lands exactly on a repelling cycle, which the readout reports with \(|\lambda|>1\), while for \(c\) on the boundary of a bulb the convergence is too slow and nothing is found.
Why does the orbit of the single point 0 decide whether K(c) is connected?
Because 0 is the only critical point of \(z^2+c\). Far from the origin \(f_c\) is conjugate to \(z\mapsto z^2\), so the outside of \(K_c\) is foliated by equipotential curves that are simple closed loops as long as \(f_c\) is a covering there. Pulling a loop back through the critical value \(c\) produces a figure eight through 0. If 0 never escapes, every equipotential is a loop and their intersection, \(K_c\), is connected; if 0 escapes, some equipotential pinches at 0 and every further preimage doubles the number of pieces, leaving a Cantor set.
4. L-systems: curves grown by rewriting
Lindenmayer’s idea was to grow a shape by rewriting a string. Start from an axiom, replace every symbol at once by the rule for that symbol, and repeat; then read the result as turtle commands: F draws a unit step forward, + and − turn by a fixed angle, and brackets save and restore the turtle’s position, which is how a plant branches. The Koch curve is the single rule F → F+F−−F+F with 60° turns: each step is replaced by the generator, exactly as in the iterated function system of the first experiment, so the dimension is again log 4 / log 3. The dragon curve doubles its length at every level and fills a region of the plane, dimension 2. Press Play to watch the turtle draw, and change the angle to see the same string give a different shape.
Worked example. After \(n\) levels the Koch string has \(4^n\) drawing steps and spans \(3^n\) unit lengths end to end, so the curve fits a fixed segment only after scaling by \(3^{-n}\), and \(d=\log4^n/\log3^n=1.2619\). The dragon of level \(n\) has \(2^n\) steps and its endpoints are \(\sqrt2^{\,n}\) apart: \(d=\log2^n/\log\sqrt2^{\,n}=2\). The arrowhead curve has \(3^n\) steps across a span of \(2^n\), giving the Sierpinski dimension \(\log3/\log2\).
Watch out. The dimension quoted is the similarity dimension, which is the box dimension only when the pieces do not overlap. The dragon’s pieces touch along whole curves, which is why it can fill area, and the plant is not self-similar at all: its rule F → FF stretches old branches while new ones sprout, so no single scaling factor exists and the readout gives only the segment count. Changing the angle away from the value the rule was designed for breaks self-similarity, and the curve may cross itself; the string is the same, only its reading changed. Levels are capped so that the drawing stays under about twenty thousand segments.
Why does the dragon curve, made of straight unit steps, have dimension 2 while the Koch curve has dimension less than 2?
Both are unions of two or four scaled copies of themselves, and the dimension is fixed by how many copies and by how much they are scaled: the dragon is two copies scaled by \(1/\sqrt2\), so \(2\cdot(1/\sqrt2)^d=1\) gives \(d=2\); the Koch curve is four copies scaled by \(1/3\), \(4\cdot3^{-d}=1\), \(d=\log4/\log3\). A curve of dimension 2 must fill area, and the dragon does: its limit is a compact set with non-empty interior, tiled by copies of itself, while the Koch curve has zero area and finite dimension strictly between 1 and 2.
5. Newton’s method and its basins
Newton’s method for a polynomial p is the iteration z ↦ z − p(z)/p′(z). Started near a root it converges to that root quadratically, and one might expect the plane to be divided into three tidy regions, one per root of a cubic. It is not: the boundary between any two basins is also the boundary of the third, and it is a Julia set, a fractal along which all three colours meet at every point. Drag the roots to reshape the basins; drag the white start point and follow its orbit, which is drawn as a polyline. For p(z) = z³ − 2z + 2 something worse happens: the orbit 0 → 1 → 0 is a superattracting cycle of Newton’s map, so an open set of starting points never reaches any root: small black islands around 0 and 1 and around all their preimages.
Worked example. For \(z^3-1\) from \(z_0=1.5\): \(z_1=1.5-2.375/6.75=1.148\), \(z_2=1.018\), \(z_3=1.0003\), \(z_4=1.0000001\): the number of correct digits doubles each step. From \(z_0=-0.2\), just left of the origin, the orbit is thrown out to \(8.2\) and then walks back to 1: the real axis, apart from the preimages of 0, belongs entirely to the basin of 1, a spike between the other two basins along which their fractal fingers alternate. For \(z^3-2z+2\), \(N(0)=1\) and \(N(1)=0\) exactly.
Watch out. A point is coloured by the root its orbit approaches within the iteration budget; near the Julia set orbits wander for many steps before settling, so the boundary is drawn slightly thick and a larger budget sharpens it. The black region of \(z^3-2z+2\) is not a rendering artefact but the basin of an attracting cycle; Newton’s method fails there for every starting point, however many iterations are allowed. Hubbard, Schleicher and Sutherland showed how to choose a fixed set of about \(1.11\,d\log^2d\) starting points, on a circle around all the roots, from which every root of every degree-\(d\) polynomial is found.
Why must the boundary of one basin be the boundary of all three?
The Julia set of \(N\) is the closure of the repelling periodic points, and on any neighbourhood of a Julia point the iterates of \(N\) take every value in the plane except at most two (Montel’s theorem), so that neighbourhood contains points that go to each of the three roots. Every basin boundary point is a Julia point, because on one side orbits go to one root and on the other to a different root, so no neighbourhood behaves uniformly. Put together: near any boundary point of any basin, all three basins are present. This is the Wada property, impossible for three regions with smooth boundaries.