Classification of Isolated Equilibria of 2X2 Linear Systems

Here are a variety of some simple linear, autonomous, homogeneous 2X2 systems of ordinary differential equations.

This notebook was created by T. Shelton, Southwestern University to supplement a handout for  Differential Equations II, updated for Mathematica 7.0.

reference  Differential Equations: Theory, Technique, and Practice, Simmons & Krantz, McGraw-Hill Co, Inc. 2007

Clear[xmin,xmax,ymin,ymax]
xmin=-3.0;
xmax=3.0;
ymin=-5.0;
ymax=5.0;
Clear[axPlot];
axPlot=Plot[0,{x,xmin,xmax},PlotRange->{ymin,ymax}];

(dx/dt)= 1, (dy/dt)= 1

VectorPlot[{1,1},{x,xmin,xmax},{y,ymin,ymax},Axes->True,VectorScale->{Tiny}]

There is no x-nullcline so there can be no equilibria to classify.  (There is no y-nullcline, either.)

(dx/dt)= 0, (dy/dt)= y

VectorPlot[{0,y},{x,xmin,xmax},{y,ymin,ymax},Axes->True,VectorScale->{Tiny}]

(dx/dt)is always zero, so there can be no isolated critical point to classify.

More specifically, (dy/dt) = 0 when y=0, i.e. the x-axis.  Thus, every point of the x-axis is a critical point.

(dx/dt)= 2x, (dy/dt)= -y

The equilibrium occurs when (dx/dt)= 0 AND (dy/dt)= 0, i.e. at the origin.  We have an isolated critical point to classify.  There are multiple ways to classify it.

Classification of the equilibrium using the direction field and nullclines.

(dx/dt)= 0 when x=0, so the y-axis is an x-nullcline.  Here the direction field arrows are vertical.  
(dx/dt)> 0 (so all direction field vectors point to the right) when 2x>0, i.e. in the right half plane.
(dx/dt)< 0 (so all direction field vectors point to the left) when 2x<0, i.e. in the left half plane.

(dy/dt) = 0 when y=0, so the x-axis is a y-nullcline.  Here the direction field arrows are horizontal.  
(dy/dt) > 0  (so all direction field vectors point up) when -y>0, i.e. in the lower half plane.
(dy/dt) > 0  (so all direction field vectors point down) when -y<0, i.e. in the upper half plane.

We combine all of this. Our regions are the four quadrants of the x-y plane. In the first quadrant our direction arrows are down and to the right.  In quadrant II, they are down and to the left.  In quadrant III, they are up and to the left.  In IV, they are up and to the right.  

Suppose we are on one of the nullcines.  On the positive x-axis direction arrows point straight to the right; on the negative x-axis to the left.  On the positive y-axis, direction arrows point straight down.  On the negative y-axis, they point straight up.  

We see there are four half lines near the equilibirum where the direction changes.  We can say all of this without seeing the direction field, but ...

Clear[vecPlot];
vecPlot = VectorPlot[{2x,-y},{x,xmin,xmax},{y,ymin,ymax},Axes->True,VectorScale->{Tiny}]

(There seems to be a stray  incorrect arrow near (0.1, -0.1).) 
From the direction field, the origin is a saddle point.  On the x-nullcline, (the y-axis) the direction field arrows approach the equilibrium.  On one nullcline (here it is the y-nullcline  or the x-axis), the direction field arrows move away from the equilibrium.  Away from the nullclines but near sometimes we get somewhat closer to the equilibrium, but we soon move away.  The saddle point is unstable; if we begin near but not at the equilibirum in most directions, we move from it.

Clear[xnull,ynull,equilGraphics]
xnull=ParametricPlot[{0,t},{t, ymin, ymax},PlotStyle->{Red,Dashed,Thick}];
ynull = Plot[0,{x, xmin, xmax},PlotStyle->{Blue,Dashed,Thick}];
equilGraphics = Graphics[{PointSize[Large],Point[{0,0}]}];
Show[{xnull, ynull, equilGraphics,vecPlot},PlotRange->{{xmin,xmax},{ymin,ymax}}]

Classification of the equilibrium using the eigensystem.

The coefficient matrix A for the linear system is (({{2, 0}, {0, -1}})).

Det[(({{2, 0}, {0, -1}}))]

Our matrix has nonzero determinant, so we may use eigensystem analysis.

Eigensystem[ (({{2, 0}, {0, -1}}))]

Our matrix with nonzero determinant has eigenvalues of 2 and -1, which are real and distinct with opposite algebraic signs.  
Using mathematical notation, we let (Subscript[r, 1]) be the larger eigenvalue, i.e., (Subscript[r, 1]) = 2 and (Subscript[r, 2]) = -1.   (Subscript[r, 2]) < 0 <  (Subscript[r, 1]) .  
Thus we have a SADDLE POINT at the equilibrium (0,0); it is UNSTABLE.
This is consistent with the direction field.

Classification of the equilibrium using the trace and determinant of the coefficient matrix.

q is the negative of the trace of A; p is Det(A).

Clear[p,q]
p = -Tr[(({{2, 0}, {0, -1}}))]
q = Det[(({{2, 0}, {0, -1}}))]

p = - tr(A) is the coefficient of m in Det(A - m I); q = Det(A) is the constant term in Det(A - m I).

Det[ (({{2-m, 0}, {0, -1-m}}))]

p < 0, q < 0

In the p-q plane, we are in the third quadrant.  Quadrants III and IV indicate saddle points, which are unstable.

Solutions: analysis and visualization.

From the eigensystem we see that the solutions are

(({{x(t)}, {y(t)}}))= c1 (({{1}, {0}}))(e^(2t)) + c2 (({{0}, {1}}))(e^(- t)) = (({{c1 (e^(2t)) }, { c2 (e^(- t)) }}))

If  c1 > 0 and  c2 > 0 , then for t > 0, x increases without bound and is positive, and y decreases towards 0 but is always positive.  This means we approach the positive x-axis as x tends to infinity as t increases. 

If c1 > 0 and c2 = 0, then for t > 0, x increases without bound and is positive, and y is always 0.  This means if we begin on the positive x-axis, we stay on the positive x-axis and move to the right as t increases. 

We can consider other cases individually, but let's not.  Note that at t=0 we have {c1, c2}.

Clear[initialPts,initPtsGraphics,trajectories,trajPlot];
initialPts = {{-1,-1},{-1,1},{1,-1},{1,1}};
initPtsGraphics = Graphics[{PointSize[Large],Point[initialPts]}]; 
trajectories = Table[{initialPts[[i,1]]  (E^(2t)), initialPts[[i,2]]  (E^(- t))},{i,1,4}]

trajPlot = ParametricPlot[trajectories,{t,0,2},PlotStyle->Thick];
Show[{xnull, ynull, equilGraphics,vecPlot,initPtsGraphics,trajPlot},PlotRange->{{xmin,xmax},{ymin,ymax}}]

Either from the algebraic or graphical solutions, we see that we approach the equilibrium from some directions but move away from the equilibrium from all others.  Thus, we have an unstable saddle point.

(dx/dt)= 2 x - y, (dy/dt)= x + 2 y

The equilibrium occurs when (dx/dt)= 0 AND (dy/dt)= 0, i.e. at the origin.  We have an isolated critical point to classify.  There are multiple ways to classify it.

Classification of the equilibrium using the direction field and nullclines.

(dx/dt)= 0 when y = 2x,  an x-nullcline.  Here the direction field arrows are vertical.  
For y > 2x, that is above the line, 0 > 2x - y, so (dx/dt)< 0.  All direction field vectors point to the left. 
Similarly, below the x-nulcline, (dx/dt)> 0 so all direction field vectors point to the right.

(dy/dt) = 0 when y = -x/2, a y-nullcline.  Here the direction field arrows are horizontal.  
Above this line, y > - x/2, so 2y > -x and x + 2y > 0, so (dy/dt) > 0. All direction field vectors point up.
Similarly, below the y-nullcline, (dy/dt) > 0  so all direction field vectors point down.

We combine all of this.  Our nullclines divide the x-y plane into four regions.  Let R1 be the region that includes  the positive y-axis.  Let R2, R3, and R4 be in a counter-clockwise direction from R1.


Note that the nullclines are perpendicular to each other since the slopes of the lines are 2 and -1/2, negative reciprocals.  Below I tell Mathematica to have a 1:1 aspect ratio so we can see the right angle.

Clear[xnull,ynull,equilGraphics]
xnull=Plot[2x,{x, xmin, xmax},PlotStyle->{Red,Dashed,Thick}];
ynull = Plot[-x/2,{x, xmin, xmax},PlotStyle->{Blue,Dashed,Thick}];
equilGraphics = Graphics[{PointSize[Large],Point[{0,0}]}];
Show[{xnull, ynull, equilGraphics},PlotRange->{{xmin,xmax},{xmin,xmax}},AspectRatio->Automatic]

In R1 the direction arrows point up and to the left since dy/dt>0, dx/dt<0.  On the boundary between R1 and R2, direction arrows are horizontal and to the left since dy/dt=0 and dx/dt<0.  In R2 the direction arrows point down and to the left.  On the boundary between R2 and R3, direction arrows are vertical and point down.  R3: down and to the right.  R3-R4 boundary: horizontal, to the right.  R4:  up and to the right.  R3-R1 boundary:  vertical and up.
We can say all of this without seeing the direction field, but ...

Clear[vecPlot]
vecPlot = VectorPlot[{2x-y,x+2y},{x,xmin,xmax},{y,ymin,ymax},VectorScale->{Tiny}];
Show[{xnull, ynull, equilGraphics,vecPlot},PlotRange->{{xmin,xmax},{ymin,ymax}}]

From the direction field, we seem to spiral outward, so the equilibrium is an unstable spiral.

Classification of the equilibrium using the eigensystem.

The coefficient matrix A for the linear system is (({{2, -1}, {1, 2}})).

Det[(({{2, -1}, {1, 2}}))]

Our matrix has nonzero determinant, so we may use eigensystem analysis.

Eigensystem[ (({{2, -1}, {1, 2}}))]

Our matrix with nonzero determinant has complex eigenvalues with positive real part.  
Using mathematical notation, our eigenvalues are  (Subscript[r, 1]), (Subscript[r, 1]) = λ ±μ i  = 2  ± i with λ>0.
Thus we have a SPIRAL POINT at the equilibrium (0,0); it is ASYMPTOTICALLY UNSTABLE.
This is consistent with the direction field.

Classification of the equilibrium using the trace and determinant of the coefficient matrix.

q is the negative of the trace of A; p is Det(A).

Clear[p,q]
p = -Tr[(({{2, -1}, {1, 2}}))]
q = Det[(({{2, -1}, {1, 2}}))]

p = - tr(A) is the coefficient of m in Det(A - m I); q = Det(A) is the constant term in Det(A - m I).

Det[(({{2-m, -1}, {1, 2-m}}))]

p < 0, q > 0

In the p-q plane, we are in the second quadrant.  Thus we also need to know whether we are under or above the parabola (p^2) - 4 q.

(p^2)-4q

We are above the parabola (p^2) - 4 q, so we have an unstable sprial.

Solutions: analysis and visualization.

From the eigensystem 
            {{2 + i,  2 - i}, {{i, 1}, {-i, 1}}}
  
we see that our eigenvalues are 
            2 ± 1 i
and the corresponding eigenvectors are
          (({{0}, {1}})) ± (({{1}, {0}}))  i
Thus, the linearly independent, real-valued solutions are

(e^(RealPartEval * t))(RealPartEvec *Cos[ImagPartEval * t] -ImagPartEvec * Sin[ImagPartEval * t])
(e^(RealPartEval * t))(RealPartEvec *Sin[ImagPartEval * t] +ImagPartEvec * Cos[ImagPartEval * t])

 or,
          (e^(2t))  (  (({{0}, {1}})) cost - (({{1}, {0}})) sint  )  and      (e^(2t))  (  (({{0}, {1}})) sint + (({{1}, {0}})) cost  )

(({{x(t)}, {y(t)}}))=(e^(2t))  (c1((({{0}, {1}})) cost - (({{1}, {0}}))sint )+ c2 ((({{0}, {1}})) sint + (({{1}, {0}}))cost )) = (({{-c1 (e^(2 t)) Sin[t] + c2 (e^(2 t)) Cos[t]}, { c1 (e^(2 t)) Cos[t]+c2 (e^(2 t)) Sin[t]}}))

at t=0, our initial value is...

{c2 (E^(2 t)) Cos[t]-c1 (E^(2 t)) Sin[t],c1 (E^(2 t)) Cos[t]+c2 (E^(2 t)) Sin[t]}/.{t->0}

... so c2 = x0, c1 = y0.

{c2 (E^(2 t)) Cos[t]-c1 (E^(2 t)) Sin[t],c1 (E^(2 t)) Cos[t]+c2 (E^(2 t)) Sin[t]}/.{c2->x0,c1->y0}

The sines and cosines make x(t) and y(t) oscillate, and the exponential make them oscillate with increasing amplitude, resulting in an outward spiral.

Clear[initialPts,initPtsGraphics,trajectories,trajPlot];
initialPts = {{-1,0},{0,1},{1,0},{0,-1}};
initPtsGraphics = Graphics[{PointSize[Large],Point[initialPts]}]; 
trajectories = Table[({(E^(2 t)) x0 Cos[t]-(E^(2 t)) y0 Sin[t],(E^(2 t)) y0 Cos[t]+(E^(2 t)) x0 Sin[t]}/.{x0->
initialPts[[i,1]] ,y0-> initialPts[[i,2]]}),{i,1,4}]

trajPlot = ParametricPlot[trajectories,{t,0,2},PlotStyle->Thick];
Show[{xnull, ynull, equilGraphics,vecPlot,initPtsGraphics,trajPlot},PlotRange->{{xmin,xmax},{ymin,ymax}}]

Either from the algebraic or graphical solutions, we see that we always move away from the equilibrium, spiralling outward.  Thus, we have an unstable spiral.