# Tipping points, an hour with the applets > [!abstract] What this page is for > On Day 1 we took fish out of a pond and watched two equilibria slide toward each other. On Day 2 we found the threshold you have to start above. This page picks the pond back up and asks two questions we left on the table. What exactly happens when the harvest gets too big? And could you see it coming? > > Work through it in order with the applets on this page. The rule is the same as for the videos. **Predict first, then move the slider, then open the reveal.** Write your predictions down somewhere, because the follow-up quiz asks about them. Budget **about 50 minutes**, plus 10 more if you do the optional part at the end. > > The applets only run on **scottastrong.org**. If you see an empty box where an applet should be, you have landed on the publish.obsidian.md copy of the page, so switch to the scottastrong.org address. > > Related pages are [[MATH310F26(Day 1) - Instructor information and introduction to the course|Day 1]] · [[MATH310F26(Day 2) - Modeling in your own words, and two videos|Day 2]] · [[MATH310F26(Workbook 1 Companion) - The phase line and what f-prime tells you|Workbook 1 companion]] · the longer reference page [[Bifurcations and Hysteresis]] --- ## Part 0 · Back to the pond (5 min) The pond from the first week, with a constant harvest $H$ in fish per unit time, $ \frac{dP}{dt} = rP\left(1-\frac{P}{N}\right) - H, \qquad P^{*}_{\mp} = \frac{N}{2}\left(1 \mp \sqrt{1-\frac{4H}{rN}}\right). $ Throughout this page $r = N = 2$, the same pond as the Workbook 1 sheet. > [!question] Before you touch anything > Using the formula above, at what harvest $H$ do the two equilibria meet? Where do they meet? > [!success]- After you've predicted > They meet when the square root vanishes, $1 - \frac{4H}{rN} = 0$, so at > $H^{*} = \frac{rN}{4} = 1, \qquad P = \frac{N}{2} = 1 .$ > Day 1 called this the maximum sustainable harvest. Keep the number $1$ in your head; everything on this page is about what happens near it. Parts 0, 1 and 2 all use the applet below. Leave $r$ and $N$ at $2$. <div class="applet" data-applet="harvest-models"></div> ## Part 1 · Watching a bifurcation (12 min) The top row of the applet is the pond you know, **Model A**, with a constant quota. On the left is $f(P)$ with the phase line drawn on the $P$ axis (filled circle for a sink, open circle for a source). On the right are solutions from ten starting populations, green if they survive and red if they die out. > [!question] Count the circles > Predict how many equilibria the phase line will show at $H = 0$, $H = 0.5$, $H = 0.95$, $H = 1$ and $H = 1.1$. Then use the preset buttons and check. Write down $P_{-}$ and $P_{+}$ from the readout each time. > [!success]- After you've checked > | $H$ | circles | $P_{-}$ (source) | $P_{+}$ (sink) | > |---|---|---|---| > | $0$ | two | $0$ | $2$ | > | $0.5$ | two | $0.293$ | $1.707$ | > | $0.95$ | two | $0.776$ | $1.224$ | > | $1$ | one, half filled | $1$ | $1$ | > | $1.1$ | none | | | > > The open circle climbs and the filled circle sinks until they collide at $H = 1$ and disappear. Past that point $f(P) < 0$ for every $P$, so every population is on its way to zero. > [!question] The trapdoor > Set $H = 0.95$. The pond sits at $P_{+} \approx 1.22$, which is more than half the carrying capacity, so it looks healthy. Now suppose a bad winter knocks it down to $P = 0.6$. Predict what happens next, then compare the trajectories that start at $0.6$ and at $0.9$. > [!success]- After you've predicted > The source is at $P_{-} \approx 0.776$. A pond knocked to $0.9$ is above it and grows back, but $0.6$ is below it. Below the source $f < 0$ and there is nothing underneath to catch the population, so it hits zero at a definite time (the red ×). At $H = 0.5$ the same bad winter would have been harmless, because the trapdoor was down at $0.29$. As the quota rises the trapdoor rises to meet the pond, and **nothing about the pond's level tells you how close it is.** > [!question] Up and back down > Press **ramp Model A** in the bifurcation row. It raises $H$ slowly past $H^{*}$ and then brings it back down to where it started, while one population follows along. Predict where the population ends up once the quota is back to its original value. > [!success]- After you've watched > At zero, and it stays there. On the way up the population rides the stable branch down the curved diagram, falls off the nose at $H^{*}$, and crashes. On the way down the two equilibria come back, but the empty pond is now *below* the source, and $f(0) = -H < 0$, so nothing grows it back. The path up and the path down do not match. A system whose state depends on its history like this shows **hysteresis**. > [!important] The word for what you just saw > A **bifurcation** is a qualitative change in the equilibria (how many there are, or which ones are stable) as a parameter is turned. Here a sink and a source collide and annihilate, which is called a **saddle-node** or **fold** bifurcation. In the bifurcation diagram (equilibria plotted against $H$) it is the nose of the sideways parabola. ## Part 2 · A second way to harvest (8 min) Instead of a fixed quota, fish with a fixed effort, so the catch is proportional to how many fish there are. That is **Model B**, in the second row of the applet, $ \frac{dP}{dt} = rP\left(1-\frac{P}{N}\right) - HP . $ > [!question] Predict the equilibria > Every term has a factor of $P$. Factor it out and find the two equilibria and the value of $H$ at which something changes. Do this on paper before you move the Model B slider. > [!success]- After you've worked it out > $f(P) = P\left[(r - H) - \frac{r}{N}P\right] \quad\Longrightarrow\quad P = 0 \quad\text{and}\quad P^{*} = N\left(1 - \frac{H}{r}\right) = 2 - H .$ > The nonzero equilibrium slides down a straight line and reaches $0$ at $H = r = 2$. Past that it is negative, which is not a population, and $P = 0$ has become the sink. The two equilibria pass through each other and swap stability. That is a **transcritical** bifurcation. > [!question] Does this loop close? > Press **ramp Model B**. Before it finishes, predict whether the population comes back when the effort is lowered again. > [!success]- After you've watched > It does. The stock slides down the line and slides back up it. The structural reason is that $P = 0$ is an equilibrium of Model B for *every* $H$, so a trajectory can never cross it, extinction is only approached and never reached, and the decline is visible the whole way down. In Model A the constant $-H$ breaks that, and the result is a sudden, irreversible collapse. Same fish, same pond, and the outcome turned entirely on how the harvesting term was written down. ## Part 3 · Critical slowing down (15 min) The Workbook 1 companion made one more point about linear stability. Near an equilibrium a small displacement behaves like $\varepsilon_0 e^{f'(P^{*})\,t}$, so $|f'(P^{*})|$ is a **rate**, and its reciprocal $ \tau = \frac{1}{|f'(P^{*})|} $ is the **relaxation time**, roughly how long the pond takes to shrug off a disturbance. > [!question] Read the clock > Go back to Model A. Predict whether $\tau$ for the sink gets longer or shorter as $H$ rises toward $1$. Then read $\tau$ off the readout at $H = 0.5$, $0.9$, $0.95$ and $0.99$. (Click the slider and use the arrow keys to land on a value exactly.) > [!success]- After you've read them > | $H$ | $0.5$ | $0.9$ | $0.95$ | $0.99$ | $1$ | > |---|---|---|---|---|---| > | $\tau$ | $0.71$ | $1.58$ | $2.24$ | $5.0$ | $\infty$ | > > For this pond $f'(P_{+}) = -2\sqrt{1 - H}$, so $\tau = \dfrac{1}{2\sqrt{1-H}}$. Cut the distance to the threshold by a factor of four and the recovery time doubles, and that keeps happening all the way to $H = 1$, where $\tau$ is infinite. The pond recovers more and more slowly as it approaches the tipping point. That is **critical slowing down**. The next applet is the same pond written in a cleaner form. With $r = N = 2$, $ f(P) = 2P - P^{2} - H = (1 - H) - (P - 1)^{2}, $ so calling $a = 1 - H$ (the distance below the threshold) and $y = P$ gives $y' = a - (y - 1)^2$. The sink is at $y^{*} = 1 + \sqrt a$ and $a = 0$ is $H = H^{*}$. <div class="applet" data-applet="critical-slowing"></div> > [!question] How long to recover? > Leave $y(0)/y^{*}$ at $1.5$, so the pond starts 50% above its equilibrium. Predict how long it takes to get back within 1% of equilibrium for $a = 1$ (no harvest), $a = 0.01$ (a quota of $0.99$), and $a = 0$ (the threshold). Then press those buttons and read the time from the readout. > [!success]- After you've predicted > About $1.8$, about $13$, and $98$. At $a = 0$ the linearization says the pond never comes back at all, because $f' = 0$ there. It does come back, just slowly, because the quadratic term we threw away takes over and the distance from equilibrium shrinks like $1/t$ instead of exponentially. Switch the right panel to **log–log** at $a = 0$ to see that straight line. From no harvest to the threshold the recovery takes about fifty-five times longer, while the equilibrium itself only moved from $2$ to $1$. <div class="applet" data-applet="slowing-time"></div> > [!question] The slope > This plot puts recovery time against the distance $a$ from the threshold on log–log axes. Before you look closely, use $\tau = \frac{1}{2\sqrt a}$ to predict the slope of the $\tau$ line. > [!success]- After you've predicted > $\log \tau = -\tfrac12 \log a - \log 2$, a line of slope $-\tfrac12$. Halve the distance to the threshold and the recovery time grows by $\sqrt 2$, with no ceiling. The actual time to come within 1% follows $\tau$ until $a$ gets very small and then levels off at $98$, which is the $a = 0$ answer you found above. > [!important] What to take from Part 3 > As the quota approaches the threshold the pond's *level* barely changes, but its *recovery* slows down without bound. The warning is in how the pond responds to being disturbed, not in where it sits. ## Part 4 · The warning in a noisy pond (8 min) Nobody gets to kick a real fish population and time its recovery. But nature kicks it constantly, with weather, disease and luck. If each kick fades more slowly, then the counts should wander farther from the equilibrium (a bigger **spread**) and each year's count should look more like the last one (a bigger **lag-1 autocorrelation**). That second idea is exactly the time correlation from Day 17. The applet below counts a noisy version of our pond every half time unit and computes both statistics over a sliding window of recent counts. It never sees the equation or the threshold, only the counts. <div class="applet" data-applet="early-warning"></div> > [!question] A safe quota and a risky one > Switch to **hold the quota fixed**. Predict which will have the bigger spread and the bigger autocorrelation, $H = 0.3$ or $H = 0.9$. Then run each and read the "over the whole run" numbers in the readout. > [!success]- After you've run both > With the default noise, about $0.022$ and $0.43$ at $H = 0.3$, against about $0.035$ and $0.74$ at $H = 0.9$. The pond at $H = 0.9$ sits a little lower, but the bigger change is in how it wanders. Each knock takes longer to fade, so the knocks pile up (more spread) and linger (more autocorrelation). > [!question] Watch it tip > Switch back to **ramp the quota toward H\* = 1** and press **run**. Before the red dashed line (where $H$ reaches $H^{*}$), what do the two lower panels do? Press **new noise** a few times. Is the pattern a fluke of one run? > [!success]- After you've run it a few times > On the first run the spread climbs from about $0.018$ to $0.048$ and the autocorrelation from about $0.20$ to $0.80$, and then the pond collapses shortly after $H$ passes $1$. Every run is different and the middle of each run wiggles, but in twenty runs we tried, both statistics ended higher than they started every single time. That is the point. One noisy wiggle tells you nothing, while a sustained rise in both is a warning, and you can get it from the counts alone. > [!question] Why the counts alone fail > Look only at the top panel. If you had been the pond's manager at $t = 300$, could you have told from the level of the counts that a collapse was coming? > [!success]- After you've decided > Not really. At $t = 300$ the pond is still around $1.4$, well over half its carrying capacity, and the level has been drifting down slowly the whole time. The level gives no alarm. The fluctuations do. This idea, watching for rising variance and autocorrelation before a tipping point, is used for ecosystems, climate and financial markets (M. Scheffer et al., "Early-warning signals for critical transitions," *Nature* 461, 53–59, 2009). > [!note]- For the curious, where the dashed theory curves come from > Tick **show the linear-theory curves**. Near the sink the pond is a displacement $\varepsilon$ that decays at rate $\lambda = 2\sqrt{1-H}$ (Part 3) while the noise keeps adding to it. Balancing the two gives a typical spread of $\sigma/\sqrt{2\lambda}$, and a displacement that survives one census interval $\Delta t = 0.5$ is multiplied by $e^{-\lambda \Delta t}$, which is the lag-1 autocorrelation. Both grow as $\lambda \to 0$. A short window underestimates the spread a little, which is why the measured curves run a bit under the theory in ramp mode; in hold mode the whole-run numbers match it closely. ## Part 5 · If you have time (optional, 10 min) Two more pictures of the same ideas, from the longer [[Bifurcations and Hysteresis]] page. **A loop that does close, after a jump.** In the S-curve $y' = h + y - y^3$ there is a whole range of $h$ with two stable states. Press **ramp** and watch where the state jumps on the way up and where it jumps on the way down. <div class="applet" data-applet="bifurcation-explorer" data-model="s-curve" data-models="s-curve"></div> > [!question] Two jumps > Predict whether the jump up and the jump down happen at the same value of $h$. Then ramp it and compare with the two tick marks on the $h$ axis. > [!success]- After you've ramped it > They do not. The state jumps up near $h \approx 0.4$ and down near $h \approx -0.4$, close to the two folds at $h = \pm \frac{2}{3\sqrt3} \approx \pm 0.385$. In between, which state you find depends on which way you came from. Look at the relaxation-time panel too. Each branch shows the same critical slowing down as the pond, just before its own fold. **A bead on a spinning hoop.** Spin the hoop faster than a critical rate and the bottom stops being stable. <div class="applet" data-applet="bead-hoop"></div> > [!question] Which side? > Ramp the spin up several times. Predict whether the bead always rides up on the same side. > [!success]- After you've spun it > No, the side changes from run to run, and the noise decides. The model is symmetric, so both sides are equally good; any one experiment picks one. Nudge the bead at $\gamma = 1$ and you will see critical slowing down again. ## What to carry forward 1. In one sentence each, what makes the quota collapse (Model A) irreversible and the effort decline (Model B) reversible? 2. The relaxation time near the threshold grows like $(H^{*} - H)^{-1/2}$. In your own words, why does that make the *recovery* a better warning than the *level*? 3. If you were handed twenty years of fish counts from a real pond, what two numbers would you compute first, and what would worry you? > [!success]- Numbers on this page, checked > Every number quoted above was read off the applets as they ship, with $r = N = 2$. Model A has equilibria $0.293$ and $1.707$ at $H = 0.5$, $0.776$ and $1.224$ at $H = 0.95$, and $0.900$ and $1.100$ at $H = 0.99$, with $f'(P_{+}) = -1.414, -0.447, -0.200$ and so $\tau = 0.71, 2.24, 5.0$ (and $\tau = 1.58$ at $H = 0.9$). Model B at $H = 1$ has $P^{*} = 1$, $f'(0) = +1$ and $f'(P^{*}) = -1$. Recovery from 50% above to within 1% of $y^{*}$ takes $1.758$ at $a = 1$, $13.22$ at $a = 0.01$ and $98$ at $a = 0$ (exactly $1/0.01 - 1/0.5$). The noisy pond uses noise $\sigma = 0.04$, a census every $0.5$ and a window of 80 counts. In hold mode the first run gives whole-run spread and autocorrelation $0.022$ and $0.43$ at $H = 0.3$, and $0.035$ and $0.74$ at $H = 0.9$, against the linear theory values $0.022, 0.43$ and $0.036, 0.73$ (ten long runs average $0.0357$ and $0.729$ at $H = 0.9$). In ramp mode the first run takes the spread from $0.018$ to $0.048$ and the autocorrelation from $0.20$ to $0.80$, with the collapse at $H = 1.027$. Over twenty runs (seeds 1 to 20) the spread rose in all twenty, ending between $0.031$ and $0.055$, the autocorrelation rose in all twenty, ending between $0.62$ and $0.87$, and the collapse came between $H = 1.013$ and $H = 1.049$. The S-curve ramp jumps near $h = \pm 0.44$, a little past the folds at $\pm 0.385$, because the state lags behind the slowly moving parameter near a fold. > [!info] The follow-up > 🎯 **[MR] Tipping points quiz** (*link TK*). Five short questions drawn from the predictions above, plus one free response. Unlimited attempts.