Interactive Lecture
A Nonlinear Dynamical Systems Perspective
by Dr Arnaldo Delli Carri
Thanks to the contribution of Dr Niranji Satanarachchi
Many of the systems we design, manage, or interact with — from ecosystems and climate to power grids and urban infrastructure — can undergo sudden, catastrophic transitions. A lake can flip from clear water to an algae-choked state. A power grid can collapse. A coral reef can bleach irreversibly. Understanding when and why such transitions happen, and how to prevent them, requires the mathematics of nonlinear dynamical systems.
Many engineering and environmental systems can exist in multiple stable states. A sudden switch between states — a tipping point — can be triggered by slow, incremental stress that erodes the system's resilience. Recognising and quantifying that resilience is what sustainable engineering design is built on.
The simplest meaningful model of a system evolving over time is a first-order autonomous ordinary differential equation:
\[\dot{x} = f(x)\]
Where:
"Autonomous" means \(f\) does not depend explicitly on time — the dynamics are driven entirely by the current state. This seemingly simple equation can produce surprisingly rich behaviour.
A fixed point (or equilibrium) \(x^*\) is a state where the system no longer changes:
Fixed point condition: \[f(x^*) = 0\]
Stability is determined by linearisation about the fixed point. Let \(x = x^* + \epsilon\) (a small perturbation). Then:
\[\dot{\epsilon} \approx f'(x^*)\,\epsilon\]
whose solution is \(\epsilon(t) = \epsilon_0\,e^{f'(x^*)\,t}\). Therefore:
On a phase portrait (\(\dot{x}\) vs \(x\)), stable fixed points occur where \(f(x)\) crosses zero from above (slope \(f' < 0\)), and unstable fixed points where it crosses from below (\(f' > 0\)). The direction of flow arrows shows which way the system moves from any initial condition.
For 1D systems, we can always construct a potential function \(V(x)\) that encapsulates all the dynamics in an intuitive geometric picture:
\[\dot{x} = -\frac{dV}{dx} \quad \Longleftrightarrow \quad V(x) = -\int f(x)\,dx\]
The system behaves exactly like a ball rolling under gravity on the landscape \(V(x)\):
This ball-on-landscape metaphor is powerful: you can immediately see basins of attraction, potential barriers, and tipping points without solving differential equations.
In structural and mechanical engineering, resilience traditionally measures how quickly a system returns to its design state after a disturbance. For a single-well potential \(V(x) = \tfrac{1}{2}(x-s)^2\), the system's dynamics are:
Engineering mode: \[\dot{x} = -x + s\]
This gives a single stable equilibrium at \(x^* = s\) with stability coefficient \(f'(x^*) = -1\).
The characteristic return time after a perturbation is:
\[\tau = \frac{1}{|f'(x^*)|} = 1 \text{ time unit}\]
A stress parameter \(s\) simply shifts the equilibrium — the system adapts to a new normal but remains stable and returns just as quickly. Engineering resilience is essentially asking: how stiff is the restoring force?
Holling (1973) introduced a richer concept of resilience applicable to complex systems: resilience measures the size of the basin of attraction — how large a perturbation the system can absorb before crossing a tipping point into a qualitatively different state. This requires a nonlinear, bistable model.
The canonical bistable model uses a double-well potential governed by two physically meaningful parameters:
Ecological/Viability mode: \[\dot{x} = ax - bx^3 - s\]
The two model parameters have distinct physical interpretations:
The corresponding potential function is:
\[V(x) = \frac{b}{4}x^4 - \frac{a}{2}x^2 + s\,x\]
With \(s = 0\), the three fixed points are found from \(f(x) = ax - bx^3 = x(a - bx^2) = 0\):
The basin of attraction of the sustainable state (a direct measure of ecological resilience) has size:
\[\Delta x = \sqrt{\frac{a}{b}}\]
Increasing \(a\) (stronger recovery) enlarges the basin; increasing \(b\) (stronger nonlinearity) shrinks it. The potential well depth — the energy barrier the system must overcome to tip — is:
\[\Delta V = \frac{a^2}{4b}\]
Both metrics depend on the ratio \(a/b\), reinforcing the same design principle: resilience is built by enhancing adaptive capacity relative to the intrinsic feedback strength of the system.
As environmental stress \(s\) increases, the landscape tilts: the sustainable well shrinks while the degraded well deepens. The tipping point moves progressively closer to the sustainable state, reducing the basin of attraction — and therefore the ecological resilience — of the system. Use the simulation below to see how changing \(a\) and \(b\) reshapes the landscape, and how stress erodes the remaining resilience.
At a critical stress level \(s_c\), the sustainable equilibrium and the tipping point collide and annihilate in a fold (saddle-node) bifurcation. Beyond this point, the sustainable state ceases to exist and the system abruptly collapses to the degraded state — even if the stress is subsequently reduced. This hysteresis makes recovery far harder than prevention.
Bifurcation condition: \(f(x^*) = 0\) and \(f'(x^*) = 0\) simultaneously.
For \(\dot{x} = ax - bx^3 - s\), the derivative is \(f'(x) = a - 3bx^2\).
From \(f'(x^*) = 0\):
\[x^*_c = \sqrt{\frac{a}{3b}}\]
Substituting into \(f(x^*_c) = 0\):
\[s_c = a\,x^*_c - b\,(x^*_c)^3 = x^*_c\!\left(a - \frac{a}{3}\right) = \frac{2a}{3}\sqrt{\frac{a}{3b}}\]
This can be written compactly as:
\[\boxed{s_c = \frac{2}{3}\sqrt{\frac{a^3}{3b}}}\]
For the default parameters \(a = b = 1\): \(s_c = \dfrac{2}{3\sqrt{3}} \approx 0.385\). Increasing \(a\) raises \(s_c\) (harder to tip), while increasing \(b\) lowers \(s_c\) (easier to tip). The simulation stress slider is scaled to \(1.1\,s_c\) so you can witness the bifurcation event regardless of the parameter values chosen.
A key implication for engineering: systems near a bifurcation exhibit critical slowing down — they recover more slowly from perturbations as the basin flattens. This can serve as an early warning signal that a tipping point is approaching.
The parameterised model \(\dot{x} = ax - bx^3 - s\) provides a direct engineering design framework. Since ecological resilience (basin size \(\sqrt{a/b}\)), well depth (\(a^2/4b\)), and critical stress (\(s_c \propto \sqrt{a^3/b}\)) all depend on the ratio \(a/b\), the design goal is clear: maximise \(a\) and/or minimise \(b\).
Three levers set a system's resilience: raise \(a\), lower \(b\), and keep watching how close \(s\) has crept to \(s_c\).
In the simulation below, switch to Ecological or Viability mode and use the \(a\) and \(b\) sliders to observe these design trade-offs directly: watch how increasing \(a\) deepens the sustainable well, and how increasing \(b\) sharpens the landscape and narrows the basin.
Viability theory (Aubin, 1991) provides a third perspective on resilience. Rather than asking about return time or basin size alone, it asks: given that we have some limited control over the system, from what initial system states — including present bio-physical, socio-ecological, or economic constraints — can we guarantee that the system stays within a predefined safe operating space (defined by one or more sustainable thresholds/boundaries) indefinitely? This set of initial states, together with their viable trajectories over time, defines the viability kernel.
For our model, the safe operating space is the region containing the sustainability state. The viability kernel is bounded by the tipping point: once the system crosses this threshold, no control action can prevent it from eventually reaching the degraded state. This is analogous to the concept of Planetary Boundaries (Rockström et al., 2009) — the safe operating space for humanity within the Earth system.
The time-dependence of the stress \(s\) is particularly important in the viability perspective. We can decompose the net stress on the system as:
\[s(t) = s_u(t) + s_a(t)\]
Where:
The full dynamical model thus becomes \(\dot{x} = ax - bx^3 - s(t)\), making explicit that both the external pressures and our capacity to respond evolve continuously over time.
When both constraints and actions are considered across time, the viability kernel may be interpreted as a dynamic sustainability space. The stake is concrete: keep the counter-action \(s_a(t)\) flowing — engineering design, management, pollution control — and the system stays inside its safe operating space; let it lapse and the accumulating stress \(s_u(t)\) eventually carries the system past the tipping point, after which no control can pull it back.
Resilience carries three distinct meanings, and a system can be strong in one yet weak in another. (1) Engineering resilience — how quickly a system returns to equilibrium (return time). (2) Ecological resilience — how much perturbation a system can absorb before tipping (basin of attraction size). (3) Viability — the set of states from which control can maintain safe operation (viability kernel), and the evolving human capacity to navigate the system towards sustainability.
Explore three complementary frameworks for resilience using a dynamical-systems ball-on-landscape model. Switch between modes to see how the same mathematical language describes fundamentally different engineering and ecological situations. Use the controls below to investigate stress, noise, shocks, and control interventions.
Top panel: Potential landscape \(V(x)\) — ball rolls downhill to equilibria. Bottom panel: Phase portrait \(\dot{x} = f(x)\) — flow arrows show direction of change. Gold ball = current system state.
The dynamical systems framework for resilience applies across an enormous range of engineering contexts wherever systems can exist in multiple states or undergo abrupt transitions.
| Concept | Equation | Description |
|---|---|---|
| Governing ODE | \(\dot{x} = f(x)\) | Rate of change driven by current state |
| Fixed point | \(f(x^*) = 0\) | State at which system is stationary |
| Stability criterion | \(f'(x^*) < 0\) (stable), \(f'(x^*) > 0\) (unstable) | Sign of the Jacobian at the fixed point |
| Return time | \(\tau = 1/|f'(x^*)|\) | Engineering resilience: time to recover from small shock |
| Potential function | \(V(x) = -\displaystyle\int f(x)\,dx\), so \(f = -dV/dx\) | Landscape whose minima are stable equilibria |
| Engineering mode | \(f(x) = -x + s\), \(\;V(x) = \tfrac{1}{2}(x-s)^2\) | Single-well; stress shifts equilibrium |
| Ecological / Viability mode | \(f(x) = ax - bx^3 - s\), \(\;V(x) = \tfrac{b}{4}x^4 - \tfrac{a}{2}x^2 + sx\) | Double-well; \(a\) = adaptive capacity, \(b\) = feedback strength |
| Sustainable equilibrium (s = 0) | \(x^* = +\sqrt{a/b}\) | Larger when adaptive capacity exceeds feedback strength |
| Basin of attraction size | \(\Delta x = \sqrt{a/b}\) | Distance from sustainable state to tipping point (at x = 0) |
| Potential well depth | \(\Delta V = a^2/(4b)\) | Energy barrier; larger means more resilient to noise |
| Fold bifurcation condition | \(f(x^*) = 0\) and \(f'(x^*) = 0\) | Stable and unstable fixed points annihilate |
| Critical stress | \(s_c = \dfrac{2}{3}\sqrt{\dfrac{a^3}{3b}}\) | Beyond this, the sustainable state disappears; \(s_c \approx 0.385\) for \(a=b=1\) |
Consider the engineering-mode system \(\dot{x} = -x + s\) with environmental stress parameter \(s = 1.5\).
► Show Solution
Solution:
(a) Fixed point: set \(f(x^*) = -x^* + s = 0 \Rightarrow x^* = s = 1.5\).
(b) \(f'(x) = -1\) for all \(x\). Since \(f'(x^*) = -1 < 0\), the fixed point is stable.
(c) Return time: \(\tau = 1/|f'(x^*)| = 1/1 = 1\) time unit.
(d) Near the fixed point, the deviation \(\epsilon = x - x^*\) satisfies \(\dot{\epsilon} = f'(x^*)\,\epsilon = -\epsilon\), so \(\epsilon(t) = 0.5\,e^{-t}\). For 10% decay: \(0.5\,e^{-t} = 0.05 \Rightarrow e^{-t} = 0.1 \Rightarrow t = \ln 10 \approx 2.30\) time units.
Answer: (a) \(x^* = 1.5\); (b) \(f'(x^*) = -1 < 0\), stable; (c) \(\tau = 1\) time unit; (d) \(x(t) = 1.5 + 0.5\,e^{-t}\), reaching 10% of the initial deviation at \(t = \ln 10 \approx 2.30\) time units.
For the ecological mode system \(\dot{x} = ax - bx^3 - s\) with default parameters \(a = b = 1\) and zero stress (\(s = 0\)):
► Show Solution
Solution:
(a) \(f(x) = x - x^3 = x(1 - x^2) = x(1-x)(1+x) = 0\) gives \(x^* = 0,\, +1,\, -1\).
(b) \(f'(x) = 1 - 3x^2\). At \(x^* = \pm 1\): \(f'(\pm 1) = 1 - 3 = -2 < 0\) → stable. At \(x^* = 0\): \(f'(0) = 1 > 0\) → unstable (tipping point).
(c) The sustainable basin extends from \(x = 0\) (tipping point) to \(x \to +\infty\). The ecological resilience is the distance from the sustainable state to the tipping point: \(\Delta x = x^*_\text{sustainable} - x^*_\text{tipping} = 1 - 0 = 1\).
(d) A maximum perturbation of \(\pm 0.8\) from \(x^* = 1\) gives a minimum state of \(x = 1 - 0.8 = 0.2\). Since \(0.2 > 0\) (the tipping point), the system remains in the sustainable basin. It is safe, but the margin is only \(0.2\). Any additional stress that moves the tipping point towards \(x = 0.2\) would make it unsafe.
Answer: (a) \(x^* = 0,\,+1,\,-1\); (b) \(\pm 1\) stable, \(0\) unstable; (c) basin size \(\Delta x = 1\); (d) safe — the worst-case state \(x = 0.2\) stays above the tipping point at \(x = 0\), but the margin is only \(0.2\).
With \(\dot{x} = ax - bx^3 - s\) and default parameters \(a = b = 1\), analyse how increasing stress \(s\) drives the system towards the fold bifurcation.
► Show Solution
Solution:
(a) From \(f'(x^*) = 1 - 3(x^*)^2 = 0\): \(x^*_c = 1/\sqrt{3} \approx 0.577\). Substituting into \(f(x^*_c) = 0\): \[s_c = x^*_c - (x^*_c)^3 = \frac{1}{\sqrt{3}} - \frac{1}{3\sqrt{3}} = \frac{2}{3\sqrt{3}} \approx 0.385\] At this stress, the tipping point and sustainable equilibrium merge. Beyond \(s_c\), the sustainable state disappears.
(b) Seek \(x\) where \(f(x) = x - x^3 - 0.2 = 0\) with \(0 < x < 0.577\). Try \(x = 0.25\): \(f(0.25) = 0.25 - 0.0156 - 0.2 = 0.034 > 0\). Try \(x = 0.30\): \(f(0.30) = 0.30 - 0.027 - 0.2 = 0.073 > 0\). Try \(x = 0.20\): \(f(0.20) = 0.20 - 0.008 - 0.2 = -0.008 < 0\). By interpolation, tipping point \(\approx x^*_\text{tip} \approx 0.21\). (The simulation shows approximately \(x \approx 0.22\) at 48% stress.)
(c) Original basin size = 1 (from \(x=0\) to \(x=+1\)). At \(s = 0.2\), the tipping point has moved to \(x \approx 0.21\) and the sustainable state has shifted left to the third root of \(x - x^3 - 0.2 = 0\), at \(x \approx 0.879\) (check: \(0.879 - 0.879^3 = 0.879 - 0.679 = 0.200\)). New basin size \(\approx 0.879 - 0.209 = 0.670\). Fraction lost \(\approx 1 - 0.670 = 0.330\), or about 33% of the original resilience has been eroded.
Answer: (a) \(x^*_c = 1/\sqrt{3} \approx 0.577\), \(s_c = \tfrac{2}{3\sqrt{3}} \approx 0.385\); (b) tipping point \(\approx 0.21\); (c) basin \(\approx 0.670\), so about 33% of the original resilience is lost.
A coastal wetland ecosystem is modelled by \(\dot{x} = ax - bx^3 - s\), where \(x\) is an ecosystem health index, \(s\) is pollution loading (stress), and the parameters are currently \(a = 1.0\), \(b = 2.0\).
► Show Solution
Solution:
(a) With \(a=1, b=2\), the sustainable equilibrium at \(s=0\) is \(x^* = \sqrt{a/b} = \sqrt{1/2} \approx 0.707\). The basin of attraction (distance from sustainable state to tipping point at \(x=0\)) is \(\Delta x = \sqrt{a/b} \approx 0.707\). This is already smaller than the default \(a=b=1\) case (\(\Delta x = 1\)), showing that stronger nonlinearity (\(b=2\)) reduces resilience.
(b) Critical stress: \(s_c = \dfrac{2}{3}\sqrt{\dfrac{a^3}{3b}} = \dfrac{2}{3}\sqrt{\dfrac{1}{6}} \approx \dfrac{2}{3} \times 0.408 \approx 0.272\). This is considerably lower than the default \(s_c \approx 0.385\) for \(a=b=1\), confirming that the high \(b\) has already degraded resilience.
(c) With restoration giving \(a=2, b=2\): \(\Delta x = \sqrt{2/2} = 1\). \(s_c = \dfrac{2}{3}\sqrt{\dfrac{8}{6}} = \dfrac{2}{3}\sqrt{\dfrac{4}{3}} \approx \dfrac{2}{3} \times 1.155 \approx 0.770\). Compared to the original \(s_c \approx 0.272\), resilience has improved by a factor of approximately \(0.770 / 0.272 \approx 2.8\times\).
(d) With \(a=1, b=0.5\):
\(\Delta x = \sqrt{1/0.5} = \sqrt{2} \approx 1.414\).
\(s_c = \dfrac{2}{3}\sqrt{\dfrac{1}{1.5}} \approx \dfrac{2}{3} \times 0.816
\approx 0.544\).
Improvement factor: \(0.544 / 0.272 \approx 2.0\times\).
Conclusion: Doubling \(a\) (restoration approach) improves
\(s_c\) by \(2.8\times\) whereas halving \(b\) improves it by \(2.0\times\).
In this case, increasing adaptive capacity is more effective than reducing
positive feedbacks. However, the optimal strategy depends on which intervention
is physically and economically achievable — and in practice both should be pursued.
Answer: (a) \(x^* = \Delta x = \sqrt{1/2} \approx 0.707\); (b) \(s_c \approx 0.272\), below the \(a=b=1\) value of \(0.385\); (c) with \(a=2,\,b=2\): \(\Delta x = 1\), \(s_c \approx 0.770\), a \(2.8\times\) gain; (d) with \(a=1,\,b=0.5\): \(\Delta x \approx 1.414\), \(s_c \approx 0.544\), a \(2.0\times\) gain — raising \(a\) is the more effective single intervention here.
In the 1D system \(\dot{x} = f(x)\), a fixed point \(x^*\) is defined by which condition?
A fixed point \(x^*\) is stable if:
In the potential landscape analogy, a stable equilibrium corresponds to:
Holling's ecological resilience is best described as:
A fold (saddle-node) bifurcation occurs when:
In the model \(\dot{x} = ax - bx^3 - s\), which of the following correctly describes the effect of increasing \(a\) while keeping \(b\) and \(s\) fixed?