Math 331.1 •  Fall 2005

2D homogeneous linear systems of ODEs

Copyright © 2005 Murray Eisenberg.  All rights reserved.

This notebook shows how the eigenvalues of the coefficient matrix affect the phase portraits of two-dimensional homogeneous linear systems of ODEs.

Initializations

Needs["Graphics`PlotField`"]

Distinct nonzero real eigenvalues

A saddle

Example:
	\(TraditionalForm\`x'\  = \ 2\ x\  + \ 3\ y, 

      y'\  = 3\ x\  + \ 2\ y\)

Clear[A];  A  =  { {2,  3},  {3,  2} };  
    MatrixForm[A]

Eigensystem[A]

Clear[F];  
    F[x_,  y_]  :=  A  .  {x,  y};   F[x,  y]

PlotVectorField[
        F[x,  y],  {x,  -4,  4}, {y,  -4,  4},  
        Axes  ->  True,  
        AxesLabel  ->  {"x",  "y"},  
        ScaleFunction  ->  (0.5 &),  
        PlotPoints  ->  17];

Saddle surfaces

Why is such a phase portrait called "saddles", and the origin for them called a "saddle point"?

<< RealTime3D`

Plot3D[
        ((x^2)/4)  -  ((y^2)/9),  {x,  -4,  4},  {y,  -4,  4},  
        AxesLabel  ->  {"x",  "y",  "z"},  
        TextStyle  ->  {FontSize  ->  12}];

<< Default3D`

Plot3D[
        ((x^2)/4)  -  ((y^2)/9),  {x,  -4,  4},  {y,  -4,  4},  
        Axes  ->  True,  
        AxesLabel  ->  {"x",  "y",  "z"},  
        TextStyle  ->  {FontSize  ->  12}];

\(\(ContourPlot[
        x\^2\/4\  - \ y\^2\/9\  - \ 1, \ {x, \ \(-4\), \ 
          4}, \ {y, \ \(-4\), \ 
          4}, \ 
Contours\  -> \ {\ \(-2\), \(-1.5\), \ \ \(-1\), \ \(-0.5\), \ 0, \ 0.5, \ 1, \ 1.5, \ 
            2}, \ 
Axes\  -> \ True, \ 
        AxesLabel -> \ {"x", \ "y"}, \ 
        ContourShading\  -> \ False];\)\)

A source

Example:
	\(TraditionalForm\`x'\  = \ 2\ x\  + \ 3\ y, 

      y'\  = \ \ \ \ x\  + \ 4\ y\)

Clear[A];  
    A  =  { {2,  3},  {1,  4} };   MatrixForm[A]

Eigensystem[A]

Clear[F];  F[x_,  y_]  :=  A  .  {x,  y};  F[x,  y]

PlotVectorField[
        F[x,  y],  {x,  -4,  4}, {y,  -4,  4},  
        Axes  ->  True,  
        AxesLabel  ->  {"x",  "y"},  
        ScaleFunction  ->  (0.5 &),  
        PlotPoints  ->  17];

A sink

Example:
	\(TraditionalForm\`x'\  = \ \(-4\)\ x\  - \ 2\ y, 

      y'\  = \ \ \ \(-\ x\)\  - \ 3\ y\)

Clear[A];  A  =  { {-4,  -2},  {-1,  -3} };  
    MatrixForm[A]

Eigensystem[A]

Clear[F];  F[x_,  y_]  :=  A  .  {x,  y};  F[x,  y]

PlotVectorField[
        F[x,  y],  {x,  -4,  4}, {y,  -4,  4},  
        Axes  ->  True,  
        AxesLabel  ->  {"x",  "y"},  
        ScaleFunction  ->  (0.5 &),  
        PlotPoints  ->  17];

Conjugate complex eigenvalues

A complex center

Example:
	\(TraditionalForm\`x'\  = \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ 4\ y, 

      y'\  = \(\(-9\) \(x\)\(\ \)\)\)

Clear[A];  A  =  { {0,  4},  {-9,  0} };  
    MatrixForm[A]

Eigensystem[A]

Clear[F];  F[x_,  y_]  :=  A  .  {x,  y};  F[x,  y]

PlotVectorField[
        F[x,  y],  {x,  -4,  4}, {y,  -4,  4},  
        Axes  ->  True,  
        AxesLabel  ->  {"x",  "y"},  
        ScaleFunction  ->  (0.5 &),  
        PlotPoints  ->  17];

A complex stable spiral

Example:
	\(TraditionalForm\`x'\  = \ \ \(-2\)\ x\  + \ 3\ y, 

      y'\  = \(-3\)\ x\  - \ 2\ y\)

Clear[A];  A  =  { {-2,  3},  {-3,  -2} };  
    MatrixForm[A]

Eigensystem[A]

Clear[F];  F[x_,  y_]  :=  A  .  {x,  y};  F[x,  y]

PlotVectorField[
        F[x,  y],  {x,  -4,  4}, {y,  -4,  4},  
        Axes  ->  True,  
        AxesLabel  ->  {"x",  "y"},  
        ScaleFunction  ->  (0.5 &),  
        PlotPoints  ->  19];

A complex unstable spiral

Example:
	\(TraditionalForm\`x'\  = \ \ \ \ \ 2\ x\  + \ 4\ y, 

      y'\  = \(-4\)\ x\  + \ 2\ y\)

Clear[A];  A  =  { {2,  4},  {-4,  2} };  
    MatrixForm[A]

Eigensystem[A]

Clear[F];  F[x_,  y_]  :=  A  .  {x,  y}; 
F[x,  y]

PlotVectorField[
        F[x,  y],  {x,  -4,  4}, {y,  -4,  4},  
        Axes  ->  True,  
        AxesLabel  ->  {"x",  "y"},  
        ScaleFunction  ->  (0.5 &),  
        PlotPoints  ->  17];

An eigenvalue of 0

Example:
	\(TraditionalForm\`x'\  = \ \ \ \ \ \ x\  - 4\ y, 

      y'\  = \ \(-x\)\ \  + \ 4  y\)

A  =  {{1,  -4},  {-1,  4}};  
    A  //  MatrixForm

Eigensystem[A]

Clear[F];  F[x_,  y_]  :=  A  .  {x,  y};  F[x,  y]

PlotVectorField[
        F[x,  y],  {x,  -4,  4}, {y,  -4,  4},  
        Axes  ->  True,  
        AxesLabel  ->  {"x",  "y"},  
        ScaleFunction  ->  (0.5 &),  
        PlotPoints  ->  17];

Repeated real eigenvalues

Two linearly independent eigenvectors for a double eigenbalue

Example:
	x'  =     2  x 
y'  =    2 y

Clear[A];  A  =  { {2,  0},  {0,  2} };  
    MatrixForm[A]

Eigensystem[A]

Clear[F];  F[x_,  y_]  :=  A  .  {x,  y};  F[x,  y]

PlotVectorField[
        F[x,  y],  {x,  -4,  4}, {y,  -4,  4},  
        Axes  ->  True,  
        AxesLabel  ->  {"x",  "y"},  
        ScaleFunction  ->  (0.5 &),  
        PlotPoints  ->  17];

No two linearly independent eigenvectors for a double eigenvalue

Example:
	\(TraditionalForm\`x'\  = \ \ \ \ \ 2\ x\  + \ y, 

      y'\  = \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\(2\)\(\ \)\(y\)\(\ \)\)\)

Clear[A];  A  =  { {2,  1},  {0,  2} };  
    MatrixForm[A]

Eigensystem[A]

Clear[F];  F[x_,  y_]  :=  A  .  {x,  y};  F[x,  y]

PlotVectorField[
        F[x,  y],  {x,  -4,  4}, {y,  -4,  4},  
        Axes  ->  True,  
        AxesLabel  ->  {"x",  "y"},  
        ScaleFunction  ->  (0.5 &),  
        PlotPoints  ->  17];

Obtaining a second function for a basis of solutions

The system is:
	\(TraditionalForm\`x'\  = \ \ \ \ \ 2\ x\  + \ y, 

      y'\  = \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\(2\)\(\ \)\(y\)\(\ \)\)\)

One solution, from 2nd equation, is:

y[t_]  :=  Exp[2 t]

How get a 2nd, linearly independent solution?

DSolve[x'[t]  ==  2 x[t]  +  y[t],  x[t],  t]

x[t_]  :=  t y[t]

{x'[t]  ==  2  x[t]  +  y[t],  y'[t]  ==  
        2  y[t]}