Linear Stability Analysis
An ODE system is a collection of ordinary differential equations — one per variable being modeled — coupled together by allowing each variable’s rate to depend on all the others. This page restricts to the 2D case: two equations governing two variables and ,
The pair — the values of both variables at time — is called the system’s state. The dot notation marks the time derivative as usual, and the rate functions each take a state and return the speed at which that variable is changing there. The two-species model is one instance, with playing the role of the two populations . The chapter writes that model in factored form, and , where and are per-capita growth rates. To match the shape used on this page, the rate functions are the full products: and .
A stationary point (also called a steady state) of such a system is a state at which both rate functions vanish,
equivalently at . The name records what happens: the system started exactly at this state stays there for all time, because every variable has zero speed.
Why this isn’t the calculus stationary point
This is not the calculus stationary point, even though the name is identical. The confusion is fair — both conditions end with “something equals zero” — but the something is different.
In calculus, the thing set to zero is the derivative of a scalar field: . The field itself can take any value at that point — at a peak of height , the gradient vanishes while equals . “Stationary” there means the field is locally flat.
In an ODE system, the thing set to zero is the value of each rate function: . The rate functions are not derivatives of anything; they are simply functions that say how the state changes. “Stationary” here means the state does not move. That follows is a consequence of the ODE , not the definition: when is zero, so is .
A concrete contrast makes the gap visible. Take the function .
- As a scalar field, has a calculus stationary point at , since , even though is positive.
- As the rate function of an ODE , has no stationary point at all, since never equals zero.
Same function, different role, different verdict — because the two notions test different conditions on it.
The natural next question, once a system has a stationary point, is how it behaves nearby. Some stationary points pull nearby states toward themselves; others push them away; others have mixed character. This is the question of stability: a stationary point is stable when every state that starts close enough stays close for all later time, and unstable when at least one nearby start is carried far away. One escape route is enough — a saddle that draws states in along one direction but expels them along another still counts as unstable.
A finer distinction sits inside the stable case. A stable point that also pulls nearby states all the way in, so they converge onto it, is attractive; a stable point whose nearby states stay close without converging — circling it forever, say — is stable but not attractive. The classification below resolves this finer picture, and the verdict for each case is noted alongside it.
Linear stability analysis is the standard tool for telling these cases apart, and the verdict depends on a single piece of data: the eigenvalues of the system’s Jacobian evaluated at the stationary point.
This page is the lookup table. It applies to 2D ODE systems, and the six rows cover every generic behavior a stationary point can have. The same classification can be reached geometrically rather than algebraically, by sketching the system’s directional field and reading the behavior straight off the arrows — the two routes are complementary and land on the same verdict.
Setup
Fix a stationary point of the system. As runs forward, the state traces a curve through the -plane — the system’s trajectory — and the question of stability concerns the trajectories that start near .
The Jacobian of at the stationary point is the matrix
Its two eigenvalues and are the data linear stability analysis depends on. They are roots of ‘s characteristic polynomial, a quadratic, so they are either both real or a complex-conjugate pair.
The Jacobian of a linear function is just the matrix the function is built from — so for a linear ODE system , the Jacobian is at every point of the state plane, regardless of which stationary point we evaluate at. The implication for stability analysis: the linearization is exact rather than a local approximation, and the eigenvalue classification below holds globally for every trajectory of the system, not just for ones started near a stationary point.
The classification below assumes both eigenvalues are nonzero. If one of them is zero, the determinant is zero too (a matrix’s determinant equals the product of its eigenvalues, so a single zero factor zeroes the whole product), and the Jacobian is non-invertible. In that case the stationary point is no longer a single point at all: a whole line of states satisfies . This degenerate case falls outside the lookup.
Classification
The six cases split first by whether the eigenvalues are real or complex, then by sign (for real) or sign of real part (for complex).
Real eigenvalues
When both eigenvalues of are real, nearby trajectories move without rotating around the stationary point. The signs of the two eigenvalues set the three cases below.
Attractive node
Both eigenvalues are negative. Every nearby trajectory flows straight in to the stationary point — no rotation, no detours. The point is stable, and in the strongest way: nearby states are not just kept close, they are pulled all the way in (attractive).
Saddle node
One eigenvalue is negative, one positive. The two eigendirections of (drawn dashed) split the picture: along the negative-eigenvalue direction trajectories rush straight in to the stationary point; along the positive-eigenvalue one they shoot straight out. Off these two lines, a typical trajectory follows a hyperbolic path — it slides in close to the stationary point along the negative-eigenvalue direction, then bends away along the positive-eigenvalue one. The point is unstable: the single outward direction is enough to carry some nearby states away, however strongly the other direction pulls in.
Repulsive node
Both eigenvalues are positive. Every nearby trajectory flows straight out from the stationary point — mirror image of the attractive case. The point is unstable: every direction drives nearby states away.
Complex eigenvalues
The Jacobian itself has only real entries: it is built from partial derivatives of real-valued rate functions, so no complex numbers appear in . Complex numbers enter only when we compute the eigenvalues, and when they do, they come as a complex-conjugate pair , because a real-coefficient quadratic forces any non-real roots to be conjugates of each other. The radial picture from the real-eigenvalue cases still holds — the real part pulls trajectories in if negative, pushes them out if positive, and does nothing if zero — but now the imaginary part wraps that radial motion around the stationary point as rotation. The three cases are the same three real cases plus rotation on top.
Attractive spiral node
Every nearby trajectory spirals in toward the stationary point — the same inward pull as the attractive node, with rotation added by the imaginary part. The point is stable and attractive: the spiral still ends at the center.
Neutral center
The real part is exactly zero, so there’s no pull or push along the radius — only rotation. Every nearby trajectory orbits the stationary point in a closed loop at a fixed distance, going around forever. The point is stable but not attractive — the orbits stay close and never escape, yet never settle onto the center either — which makes it the borderline between stable and unstable. (This row alone isn’t the final word: the nonlinear corrections the linear test ignores can quietly spiral the trajectories inward or outward, as Why the classification works explains.)
Repulsive spiral node
Every nearby trajectory spirals outward from the stationary point — the same outward push as the repulsive node, with rotation added. The point is unstable: the spiral flings nearby states ever further out.
Why the classification works
Collect the two variables into a state vector and the two rate functions into , so the whole system reads and the stationary point satisfies . Now nudge the system slightly off that point,
where is a small perturbation (the displacement from the stationary point). Stability is entirely a question about : does it shrink back to , or grow?
Step 1 — Linearization
Take the first-order Taylor expansion of around :
with the Jacobian evaluated at . The first term is , because is a stationary point. And , because is constant and contributes nothing to the time derivative. So the system collapses to
Near a stationary point, every smooth nonlinear system behaves like a linear system governed by the Jacobian.
Step 2 — Why eigenvalues matter
Let be an eigenvector of with eigenvalue , so . A perturbation lying along , written , reduces the matrix equation to a single scalar one:
That is the Malthus model, and its sign rule is the entire classification:
- : , the perturbation shrinks. Attractive direction.
- : , the perturbation grows. Repulsive direction.
has two eigendirections, each with its own eigenvalue and its own independent scalar equation, and the 2D motion is those two 1D motions running at once. The three real rows of the table are just the three sign combinations: both negative (attractive node), both positive (repulsive node), one of each (saddle node).
Step 3 — Complex eigenvalues
For a complex pair the solution factors as . The first factor is the same growth-or-decay term as before, driven by . The second has constant magnitude and only turns, at angular speed . So the three complex rows are the three real rows with rotation wrapped on top: spirals in, spirals out, neither, leaving pure rotation on closed orbits.
Does the linear approximation really predict the nonlinear system?
The two steps above classify the linearized system. Whether that verdict transfers back to the nonlinear original is a separate question, and the Hartman–Grobman theorem answers it: as long as every eigenvalue of has nonzero real part, the nonlinear system near the stationary point qualitatively matches its linear approximation. For five of the six rows, the lookup table is therefore an honest statement about the nonlinear system, not just about its linearization.
The exception is the neutral center row, where the real part is exactly zero. There the linear approximation predicts closed orbits, but the small nonlinear corrections the linearization threw away can pull the system gently inward, push it gently outward, or leave the orbits as they are. The table includes the row for completeness but cannot promise the nonlinear system matches.
Connection to the broad categories
The six rows collapse onto the three umbrella categories used in two-species population systems:
- Attractive covers attractive node and attractive spiral node.
- Repulsive covers repulsive node and repulsive spiral node. The neutral center sits on the boundary — trajectories neither leave nor settle.
- Saddle is its own case, saddle node.
So when a population model classifies an equilibrium as attractive, the underlying picture is one of the two attractive cases above; the spiral-versus-monotone distinction is finer information the chapter doesn’t need.
Summary
The whole lookup table on one line per case — eigenvalues to classification to stability verdict:
| Eigenvalues | Condition | Classification | Stability |
|---|---|---|---|
| Real | attractive node | stable (attractive) | |
| Real | repulsive node | unstable | |
| Real | saddle node | unstable | |
| Complex | attractive spiral node | stable (attractive) | |
| Complex | neutral center | stable, not attractive | |
| Complex | repulsive spiral node | unstable |
The split runs straight down the Stability column: any eigenvalue with positive real part makes the point unstable, all-negative real parts make it stable and attractive, and the purely imaginary row is the lone borderline — stable but never settling.