Math Detours · Grade 10 · Around the corner · 24

The logistic map and chaos

x → r x (1 − x). Steady, then periodic, then chaos, and a constant that shows up everywhere.

Name ____________________Date ____________

Tonight's idea

Let \(x_n\) be this year's population as a fraction of the most the habitat can hold, so \(0 \le x_n \le 1\). Next year's is

\(x_{n+1} = r\,x_n\,(1 - x_n)\). The \(r x_n\) part is growth; the \((1 - x_n)\) part is crowding.

Fixed points. A population that stays put satisfies \(x = r x (1 - x)\): either \(x = 0\) or \(x^* = 1 - \tfrac1r\).

Attract or repel? Fixed points are where the parabola \(f(x) = rx(1-x)\) crosses the line \(y = x\). Near \(x^*\) it is nearly straight, with slope \(m = f'(x^*)\). Start a small distance \(\varepsilon\) from \(x^*\) and one step later you are about \(m\varepsilon\) away. So \(x^*\) attracts when \(|m| \lt 1\) and repels when \(|m| \gt 1\); at \(|m| = 1\) the test says nothing. Here \(f'(x) = r(1 - 2x)\), so \(m = 2 - r\): the fixed point attracts for \(1 \lt r \lt 3\) and repels past 3. Negative \(m\) means overshooting: the sequence alternates sides of \(x^*\).

x₀ = 0.21x* = 0.6y = 2.5x(1 − x)y = x
Cobweb for \(r = 2.5\): from \(x_0\) go up to the curve, across to the line, repeat. The staircase climbs to the crossing \(x^*\).

Past 3: period doubling. At \(r = 3.2\) the population approaches a 2-cycle, \(0.513\) and \(0.799\). At \(r = 3.5\) a 4-cycle takes over; then 8, 16, 32, piling up at \(r_\infty \approx 3.5699\). Beyond that, chaos: at \(r = 3.9\) a typical start never settles and nearby starts drift apart. Prediction: bigger \(r\) means more chaotic? Exercise 2 tests it.

The universal constant. Successive gaps between doublings shrink by a factor tending to Feigenbaum's \(\delta = 4.6692\ldots\), the same for dripping taps and lasers. Demo: mathdetours.com/demos/logistic.html.

Watch one: \(r = 3.2\) by hand, and the 2-cycle exactly

Start at \(x_0 = 0.2\): \(x_1 = 3.2 \times 0.2 \times 0.8 = 0.512\), \(x_2 = 0.7995\), \(x_3 = 0.5129\), \(x_4 = 0.7995\), \(x_5 = 0.5130\), \(\ldots\) The rounded values settle fast, but the sequence only ever approaches the 2-cycle.

Exactly: the two values are fixed points of the double step \(f(f(x)) = x\). Dividing out the roots \(0\) and \(x^*\) leaves a quadratic with roots \(x = \frac{(r + 1) \pm \sqrt{(r + 1)(r - 3)}}{2r}\). For \(r = 3.2\): \((4.2 \pm 0.9165)/6.4\), giving \(0.7995\) and \(0.5130\).

Your turn

Carry full calculator precision between steps; round only what you write down.

  1. Take \(r = 2.5\) and \(x_0 = 0.2\). Compute \(x_1\) to \(x_5\) (three decimals). Where is the population heading? Check against \(1 - 1/r\). Then for \(r = 3.2, 3.5, 3.9\) find \(x^*\) and \(m = 2 - r\): attract or repel?
  2. Calm island? Take \(r = 3.83\), well past \(r_\infty\), and \(x_0 = 0.5\). Compute \(x_1\) to \(x_6\) (four decimals). What happens?
  3. Sensitive dependence. With \(r = 3.9\), run two sequences from \(x_0 = 0.2\) and \(x_0 = 0.201\) (show three decimals). Fill in the gaps. At which step does the difference first exceed 0.1?
    \(n\)012345678
    from 0.20.2000.6240.915
    from 0.2010.2010.6260.913
  4. Feigenbaum. The first three doublings are at \(r_1 = 3\), \(r_2 = 3.4495\), \(r_3 = 3.5441\). Compute \((r_2 - r_1)/(r_3 - r_2)\). Using \(\delta = 4.669\), predict \(r_4\).

Stretch: \(r = 4\) is just doubling

Write \(x = \sin^2\theta\). Show that \(4x(1 - x) = \sin^2(2\theta)\), so the map is \(\theta \to 2\theta\). Take \(\theta = \pi/7\): doubling gives \(2\pi/7\), \(4\pi/7\), then \(8\pi/7\), which is \(\pi/7\) again under \(\sin^2\). Compute the three \(x\) values and check that \(4x(1-x)\) cycles through them.

Answers

  1. \(0.400, 0.600, 0.600, 0.600, 0.600\): it lands on \(0.6 = 1 - 1/2.5\) in two steps and stays (there \(m = -0.5\) attracts). \(x^* = 0.6875, 0.7143, 0.7436\) with \(m = -1.2, -1.5, -1.9\): all three repel.
  2. \(0.9575, 0.1559, 0.5039, 0.9574, 0.1561, 0.5044\): it is settling onto a 3-cycle, \(0.1561, 0.5047, 0.9574\). Bigger \(r\) is not simply more chaotic. Past \(r_\infty\) chaotic stretches are interrupted by periodic windows, and 3.83 sits in one. (Even inside chaos a few special starts repeat: at \(r = 3.9\), \(x_0 = 29/39\) is an exact fixed point, but a repelling one, so any rounding throws you off it.)
  3. From 0.2: \(0.303, 0.824, 0.566, 0.958, 0.156, 0.514\). From 0.201: \(0.311, 0.835, 0.537, 0.970, 0.115, 0.397\). The difference first exceeds 0.1 at step 8. A 0.5% error in the start becomes a 100% error within ten generations.
  4. Gaps \(0.4495\) and \(0.0946\); ratio \(4.75\), approaching \(4.669\) from above. \(r_4 \approx 3.5441 + 0.0946/4.669 = 3.5644\); the true value is \(3.5644\). ✓

Stretch. \(4\sin^2\theta\cos^2\theta = (2\sin\theta\cos\theta)^2 = \sin^2 2\theta\). Values: \(\sin^2(\pi/7) = 0.1883\), \(\sin^2(2\pi/7) = 0.6113\), \(\sin^2(4\pi/7) = 0.9505\). Check: \(4(0.1883)(0.8117) = 0.6113\), then \(0.9505\), then back to \(0.1883\): a 3-cycle. (\(8\pi/7\) gives \(\pi/7\) again because \(\sin(\pi + \theta) = -\sin\theta\).) Doubling an angle shifts its binary digits one place, so after 50 steps the 50th digit of the start is in charge: chaos is reading out the initial condition, one digit per step. The same \(r = 4\) holds both: special starts that cycle forever and typical starts that never settle.

← PreviousNext: Information and entropy →