Critical synchronization in coupled population cycles

*GPU Monte Carlo of a noisy Ricker lattice: locating the critical point where population cycles fall into step, and what shared shocks such as droughts do to it.*

**Summary:** I reproduced Noble, Machta and Hastings’ result that a lattice of oscillating populations synchronizes through a 2D Ising-class critical point, matching their critical noise to within 0.04%, then showed that shared environmental shocks act like an external field that rounds the transition off.

**Status:** Research notebook, April 2026. **Year:** 2024 to 2026. **Role:** Student researcher with Prof. Jon Machta, UMass Amherst. **Tags:** Statistical physics, Monte Carlo, Finite-size scaling, PyTorch, GPU computing

---

The question Many animal populations boom one year and crash the next. Neighbouring populations pull each other into step; local chance pulls them apart. Noble, Machta and Hastings (2015) showed that the switch between the two is a phase transition in the same universality class as the 2D Ising model, the textbook magnet.

The model ```math R(X) = X\,e^{\,r(1-X)} ``` *Ricker growth. At r = 2.3 every patch alternates between boom and bust years: a two-cycle.*

```math {X_{j,t+1} = \eta_{j,t}\Big[(1-\varepsilon)\,R(X_{j,t})} + {\tfrac{\varepsilon}{z}\!\sum_{k\in\partial j}\! R(X_{k,t})\Big] + g_t} ``` *Each patch keeps 1-\varepsilon of its offspring and receives the rest from its z = 4 neighbours. Local noise \eta_{j,t} = e^{\lambda \xi_{j,t}}, \xi \sim \mathcal N(0,1), is the temperature of the magnet analogy; g_t is a shock shared by every patch.*

```math {m_t = \frac{1}{N}\sum_{j}(-1)^t\,(X_{j,t}-X_{j,t-1})},\qquad{m_L = \langle |m_t| \rangle_t},\qquad{\chi_L = N\,\mathrm{Var}(m_t)} ``` *The magnetization: which phase of the cycle each patch is in, averaged over the lattice. Its mean measures order; its variance, the susceptibility, peaks at the transition.*

```math U_4 = 1 - \frac{\langle m_t^4\rangle}{3\,\langle m_t^2\rangle^2} ``` *The Binder cumulant. At the critical point it takes the same value at every lattice size, so curves for different L cross there.*

```math {\chi_L^{\max} \propto L^{\gamma/\nu}},\qquad{U_4(\lambda_c) \approx 0.61} \quad{(\text{2D Ising: } \gamma/\nu = 7/4)} ``` *Finite-size scaling: how the peaks grow with system size, and where the Binder curves cross, identify the universality class.*

What I did I built the simulations in C++ and Python, with the lattice updates running as GPU tensor operations, and ran more than 12 million Monte Carlo simulations as parameter sweeps on the university cluster: lattice sizes L = 24 to 96 and a dense grid of noise levels. The baseline alone is about 52 trillion lattice-site updates.

The Binder curves cross at \lambda_c = 0.14126, against Noble et al.’s 0.14131(4): within 0.04%.

*Interactive figure: Binder cumulant against local noise for five lattice sizes. The crossing pins down the critical point.*

Shared shocks ```math {g_t \sim \mathcal N(0, s_t^2)},\qquad{s_t = \begin{cases} 0.1\,\sigma_g & \text{with prob. } 1-p \\ M\,\sigma_g & \text{with prob. } p \end{cases}} ``` *A drought: most years see a weak common perturbation; with probability p a shock M times larger hits every patch at once.*

Because g_t is the same everywhere, it enters like an external magnetic field h. The sharp transition rounds off: the Binder curves stop crossing, and no new kind of transition appears.

  • [Research notebook with the full method and results (PDF)](/papers/ricker-research-notebook.pdf)
  • [Noble, Machta and Hastings (2015), Nature Communications](https://doi.org/10.1038/ncomms7664)