Stability Analysis For Odes
Stability Analysis For Odes
Marc R. Roussel
September 13, 2005
∂f
ẋ = f(x ) + (x − x∗ ) + . . .
∗
∂x x∗
∂f
= (x − x∗ ) + . . . (2)
∂x x∗
1
Now define δx = x − x∗ . Taking a derivative of this definition, we get δx˙ = ẋ. If
δx is small, then only the first term in equation 2 is significant since the higher
terms involve powers of our small displacement from equilibrium. If we want to
know how trajectories behave near the equilibrium point, e.g. whether they move
toward or away from the equilibrium point, it should therefore be good enough to
keep just this term.1 Then we have
δx
˙ = J∗ δx,
The complex part of the eigenvalue therefore only contributes an oscillatory com-
ponent to the solution. It’s the real part that matters: If µ j > 0 for any j, eµ j t
grows with time, which means that trajectories will tend to move away from the
equilibrium point. This leads us to a very important theorem:
Theorem 1 An equilibrium point x∗ of the differential equation 1 is stable if all
the eigenvalues of J∗ , the Jacobian evaluated at x∗ , have negative real parts. The
equilibrium point is unstable if at least one of the eigenvalues has a positive real
part.
Because we are only keeping a locally linear approximation to the vector field, an
analysis based on this theorem is called a linear stability analysis.
Note that the theorem is silent on the issue of what happens if some of the
eigenvalues have zero real parts while the others are all negative. This case can’t
be decided based on linear stability analysis. The nonlinear terms we left out
1 This assumes that the Jacobian evaluated at the equilibrium point isn’t, in a sense to be defined
later, zero.
2
of equation 2 in fact determine the stability in this case. Dealing with this case
requires a nonlinear theory which we discuss later.
Example 1.1 Let us return to the Lindemann mechanism, for which phase-plane
analysis has already shown us that the equilibrium point is stable. The di-
mensionless ODEs are
ȧ = −a2 + αab,
ḃ = a2 − αab − b.
|λI − J| = 0.
In this case,
λ
0 = λ(λ + 1) = 0.
0 λ+1
The solutions of this equation can be read by inspection: λ = 0 or λ = −1.
One of the eigenvalues is zero, so we can’t tell from the linear stability
analysis alone whether or not the equilibrium point is stable. Of course, we
already know from the phase-plane analysis that it is.
Example 1.2 The law of microscopic reversibility says that we can’t have truly
irreversible elementary chemical reactions, although this might be a good
3
approximation if the reaction is strongly product-favored. Consider there-
fore the fully reversible Lindemann mechanism:
k1
−
A+A )*− A + B,
k−1
k2
−*
B ) − P.
k−2
Recall that A + B + P = A0 is a constant in this mechanism. Defining
ȧ = −a2 + αab,
ḃ = a2 − αab − b + β(a0 − a − b).
−2a + αb αa
J= .
2a − αb − β −αa − 1 − β
αb†
† 0
J = .
αb† − β −1 − β
We could substitute the value of b† directly into J† , but I usually leave this
for a later step, and then only if it’s necessary to determine the sign of the
eigenvalues.
4
The eigenvalues satisfy the equation
λ − αb†
0
−(αb† − β) λ + 1 + β = (λ − αb )(λ + 1 + β) = 0.
†
λ1 = αb† ,
and λ2 = −(1 + β).
β a0
bstar :=
1 + β (1 + α)
α β a0
astar :=
1 + β (1 + α)
Verify:
> simplify(adot(astar,bstar));
5
0
> simplify(bdot(astar,bstar));
0
Calculate the Jacobian:
> with(linalg):
Warning, the protected names norm and trace have been
redefined and unprotected
> J := jacobian([adot(a,b),bdot(a,b)],[a,b]);
−2 a + α b αa
J :=
2 a − α b − β −α a − 1 − β
Substitute the steady state into the Jacobian:
α β a0 α2 β a0
− %1 %1
Jstar :=
α β a0 α2 β a0
−β − −1−β
%1 %1
%1 := 1 + β (1 + α)
Determine the characteristic polynomial (the polynomial whose roots are
the eigenvalues). Collect the result in powers of the eigenvalue λ:
> collect(charpoly(Jstar,lambda),lambda);
(α2 β a0 + α β a0 + β α + β2 α + β2 + 2 β + 1) λ
λ2 +
1+β+βα
α2 β2 a0 + α β2 a0 + α β a0
+
1+β+βα
This polynomial is in the form
λ2 + c 1 λ + c 0 .
6
Note that the coefficients c0 and c1 are both positive. The roots of this
polynomial are
1
q
λ= 2
−c1 ± c1 − 4c0 .
2
Since c0 is positive, the quantity under the square root is either smaller
than c21 , or it is negative. If negative, the solutions are complex with real
part −c1 , which is negative. Otherwise, the square root must be smaller in
absolute value than c1 , so that the two eigenvalues must still be negative.
Either way, we conclude that the steady state is stable since the real parts of
both eigenvalues must be negative.
Note that the possibility of a zero eigenvalue disappeared in the last ex-
ample when we considered the effect of the law of microscopic reversibil-
ity. The zero eigenvalue was therefore an artifact of having an incomplete
chemical model since this feature disappears when we include a nonzero
value for the rate constant k−2 , no matter how small this value is. This
feature of the irreversible Lindemann mechanism is not structurally sta-
ble since an arbitrarily small change to the model makes it disappear. This
is a minor structural instability since the qualitative behavior of the model
(approach to the equilibrium point) is pretty much the same, whether the
leading eigenvalue is zero or negative. However, there are models which
have severe structural instabilities, i.e. models in which the whole behavior
of the model is significantly different depending on whether one includes a
small term or not. Structurally unstable models are generally considered to
be bad models since we generally don’t know the exact evolution equations
for a model. If the model’s behavior changes when we make small changes
to the equations, then we probably can’t trust the model’s predictions very
well.
Note also that we have our first example of a model with two equilibrium
points, one of which is stable while the other is unstable. It is instructive
to look at the phase portrait, which we’ll draw using Maple this time since
we have it running anyway. We first have to pick some values for our pa-
rameters. Since our analysis indicates that the stability properties of the two
fixed points never change, it doesn’t much matter what we pick.
> alpha := 1;
α := 1
7
> beta := 1;
β := 1
> a0 := 1;
a0 := 1
The coordinates of the stable equilibrium point are
1
3
1
3
The unstable equilibrium sits on the b axis at coordinate
1
bdagger :=
2
We’re now ready to create the phase portrait.
> with(DEtools):
Warning, the name adjoint has been redefined
> with(plots):
Warning, the name changecoords has been redefined
> pp := phaseportrait([diff(a(t),t)=adot(a(t),b(t)),
diff(b(t),t)=bdot(a(t),b(t))], [a(t),b(t)], t=0..10,
[[a(0)=i/5,b(0)=0]$i=0..5, [a(0)=i/5,b(0)=1]$i=0..5,
[a(0)=0.02,b(0)=0], [a(0)=0.02,b(0)=1]], a(t)=0..a0,
b(t)=0..a0, arrows=NONE, stepsize=0.01,
linecolor=green):
We’re storing the plot in the variable pp. We’ll also plot the nullclines, and
store them temporarily:
8
> a_null1 := plot(a/alpha,a=0..1,color=red):
> a_null2 := plot([0,b,b=0..1],color=red,thickness=3):
> b_null := plot((aˆ2+beta*(a0-a))/(alpha*a+1+beta),
a=0..1):
The display() function puts all four pictures out on one graph:
0.8
0.6
b
0.4
0.2
9
When the eigenvalues of a fixed point are complex, the point is called a focus.
Fixed points of planar systems can be almost completely classified based on their
eigenvalues:
Eigenvalues Fixed point Flow
2 Liapunov functions
Linear stability analysis tells us how a system behaves near an equilibrium point.
It does not however tell us anything about what happens farther away from equilib-
rium. Phase-plane analysis combined with linear stability analysis can generally
give us a full picture of the dynamics, but things become much more difficult in
higher-dimensional spaces. In this section, we consider a technique due to Lia-
punov3 which can be used to determine the stability of an equilibrium point “in
the large”, i.e. both near and far from the equilibrium point.
Liapunov’s method is based on a simple idea. Suppose that V (x) is a function
of our state variables which has a minimum at an equilibrium point and which has
3 Also frequently spelled “Lyapunov”.
10
no local minima. (Think of a paraboloid.) Now suppose that we can show that
the dynamics of our system results in a steady decrease in V in some (possibly
large) neighborhood of the equilibrium point. This necessarily means that we are
tending toward the minimum of V , which is just the equilibrium point. Having
shown this, we can conclude that the equilibrium point is stable over the entire
neighborhood of x∗ over which V decreases. A function V with these properties
is called a Liapunov function.
Let us formalize this idea:
1. V (x∗ ) = 0, and
Example 2.1 A Hooke’s law spring is subject to a restoring force −kx, where
x is the displacement from equilibrium. If the spring is pulling around a
mass m on a lubricated surface, the damping (frictional) force is typically
proportional to the velocity and opposite in direction. Thus,
F = ma = −kx − µv.
4 The technical distinction being made here is
between stability, which just means that the solu-
tions don’t wander away from the point, and asymptotic stability, which means that they actually
tend toward the point with time.
11
By definition,
dx
v = ,
dt
dv
and a = .
dt
We therefore obtain the following planar system:5
dx
= v,
dt
dv 1
= (−kx − µv) .
dt m
The equilibrium point of this system is clearly (x∗ , v∗ ) = (0, 0). In mechan-
ical systems with friction, the total energy is often a Liapunov function.
Since the force and potential energy6 V are related by F = −dV /dx, the
potential energy associated with the Hooke’s law force is 12 kx2 . The kinetic
energy is 21 mv2 , so the total energy is
1 1
E = kx2 + mv2 .
2 2
The total energy is a positive definite function (zero at the equilibrium point,
and increasing away fromt this point). Now consider
∂E dx ∂E dv
Ė = +
∂x dt ∂v dt
1
= kxv + mv (−kx − µv)
m
2
= −µv < 0.
5
Noting that a = d 2 x/dt 2, this system can also be written as a single second-order ODE
d 2x dx
m = −kx − µ ,
dt 2 dt
and this is in fact the approach taken in many mechanics courses. What we are seeing here is
that second-order ODEs (and higher-order equations, for that matter) are equivalent to sets of
first-order ODEs, provided we use some of the derivatives (e.g. v = dx/dt) as variables.
6 The potential energy V should not be confused with the Liapunov function V . The traditional
12
Since E decreases everywhere except at the equilibrium point itself, the
equilibrium point is globally asymptotically stable. In order words, starting
from any initial conditions, we will eventually reach the equilibrium point.
13