The stationary distribution is the fixed point of the update d ← dP, so simply iterating converges (the power method of Lesson 11). Starting from sunny, [1, 0, 0]:
t = 0: [1.0000, 0.0000, 0.0000]
t = 1: [0.7000, 0.1000, 0.2000]
t = 2: [0.6000, 0.1500, 0.2500]
t = 3: [0.5650, 0.1700, 0.2650]
t = 10: [0.5455, 0.1818, 0.2727] (exact: 6/11, 2/11, 3/11)
column-1 arithmetic at t = 2:
0.7·0.7 + 0.1·0.3 + 0.2·0.4 = 0.49 + 0.03 + 0.08 = 0.60 ✓
The eigenvalues of the weather matrix are exactly 1, (5 ± √5)/20 ≈ 1, 0.3618, 0.1382. Check the trace: 1 + 0.3618 + 0.1382 = 1.5 = 0.7 + 0.4 + 0.4 ✓. The second eigenvalue is 0.3618, so the spectral gap is 0.6382 and the mixing time is about 1/0.6382 ≈ 1.6 steps — this chain forgets yesterday almost immediately.
The slow preset has a clean exact answer. P = 0.97·I + 0.01·J (where J is all ones) has rows (0.98, 0.01, 0.01) and so on. Its eigenvalues are 1 (on the all-ones direction) and 0.97 twice (on every zero-sum direction). The gap is 0.03, so mixing takes about 33 steps — 20× slower than the weather chain, by construction. The power-iteration readout in the lab recovers |λ₂| ≈ 0.970.
The periodic preset has π but no convergence. For P = [[0, 1], [1, 0]], π = [½, ½] satisfies πP = π, yet a chain started Sunny alternates forever: [1, 0], [0, 1], [1, 0], … and the distance to π never shrinks. The eigenvalue −1 sits on the unit circle; the chain is irreducible but period 2, so it fails the aperiodicity test.