I am currently working on an essay (overdue!) for which I created this figure. It’s a cusp manifold and a very useful heuristic device for demonstrating some of the concepts and applications of Catastrophe Theory. Following is an excerpt from the current draft of the essay where the figure is introduced. And for those of you who are interested, following the excerpt is a very brief explanation and code for plotting the manifold.

Excerpt: *Much of our theoretical understanding of tipping points is captured by Catastrophe Theory, a deep and somewhat ominously named mathematical theory. “Catastrophe” as used in the theory is generally understood to imply a dramatic change of state, with no necessary judgement as to whether the change is for the better or worse. Though mathematically complicated, the theory provides us with a very useful heuristic device, the catastrophe manifold, which can be used to visualize the manner in which a system will respond to external forces or controls. The manifold for a system controlled by two parameters is shown in Figure 1. The surface in the figure, known as a cusp catastrophe, illustrates the behaviour of a system, controlled by two factors, that is capable of a catastrophic state shift. For our case, the system is the global biosphere and the controlling factors are population size and resource consumption. The height of the surface is the condition of the biosphere’s state, with greater height corresponding to a healthier biosphere. It is easy to see that height, and hence biosphere condition, decreases as either population size or resource consumption increase.*

The manifold was plotted using Mathematica, with code adopted from the notebook available here. The catastrophe is an unfolding of the singularity for the function

The controlling equation is

So the planar axes of the figure are parameters *a* and *b*, and the vertical axis is *x*. The surface of the manifold are the equilibrium points, or minima of the function, i.e. the points at which the first derivative

Those points are the real roots of the above equation. The Mathematica code is

F[x_, u_, v_] := x^4 + u*x^2 + v*x

y = ContourPlot3D[

Evaluate[D[F[x, u, v], x]], {u, -2.5, 3}, {v, -2.5, 3}, {x, -1.4,

1.4}, PlotPoints -> 7, ViewPoint -> {-1.25, 1.6, 1.2},

Axes -> False, Boxed -> False,

ContourStyle -> Directive[Red, Yellow, Opacity[0.5]], Mesh -> 0,

Contours -> 1, MaxRecursion -> 15, PlotPoints -> 50]