Graphical Analysis of Linear Systems

Needs["VisualDSolve`"]

A classification of the equilibrium point(s) of linear systems. 
There are actually a few more "Odds and Ends" cases; the total number of cases is 14(?)

Typical Cases

Case 1: Both Eigenvalues are real, distinct and positive (SOURCE)

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

N[Eigenvalues[A]]es = Eigensystem[A]

\(\(Show[
      Graphics[{Blue, AbsolutePointSize[8], 
          Table[Point[{Re[es[\([1, i]\)]], Im[es[\([1, i]\)]]}], {i, 1, 
              Length[es[\([1]\)]]}]}], 
	
      PlotRange -> {{\(-4\), 4}, {\(-4\), 4}}, Axes -> True, 
      AxesLabel -> {Re, Im}]; \)\)

\(\(	\(PhasePlot[{\(x'\)[t] == A[\([1, 1]\)] x[t] + A[\([1, 2]\)] y[t], 
        \(y'\)[t] == A[\([2, 1]\)] x[t] + A[\([2, 2]\)] y[t]}, {x[t], y[t]}, {
        t, 0, 20}, {x, \(-5\), 5}, {y, \(-5\), 5}, 
	FlowField -> True, 
	
      FieldLogScale -> 6, 
	FieldColor -> Hue, 
	
      FieldThickness -> Thickness[0.006], 
	ShowEquilibria -> True, 
	
      AxesLabel -> {x, y}, 
	PlotStyle -> Thickness[0.006], 
	
      InitialValues
         -> {{\(-.1\), .1}, {.1, \(-.1\)}, {.2, .1}, {\(-.2\), \(-.1\)}}]; 
    \)\)\)

Case 2: Both Eigenvalues are real, distinct and negative (SINK)

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

N[Eigenvalues[A]]es = Eigensystem[A]

\(\(Show[
      Graphics[{Blue, AbsolutePointSize[8], 
          Table[Point[{Re[es[\([1, i]\)]], Im[es[\([1, i]\)]]}], {i, 1, 
              Length[es[\([1]\)]]}]}], 
	
      PlotRange -> {{\(-4\), 4}, {\(-4\), 4}}, Axes -> True, 
      AxesLabel -> {Re, Im}]; \)\)

\(\(	\(PhasePlot[{\(x'\)[t] == A[\([1, 1]\)] x[t] + A[\([1, 2]\)] y[t], 
        \(y'\)[t] == A[\([2, 1]\)] x[t] + A[\([2, 2]\)] y[t]}, {x[t], y[t]}, {
        t, 0, 20}, {x, \(-5\), 5}, {y, \(-5\), 5}, 
	FlowField -> True, 
	
      FieldLogScale -> 6, 
	FieldColor -> Hue, 
	
      FieldThickness -> Thickness[0.006], 
	ShowEquilibria -> True, 
	
      AxesLabel -> {x, y}, 
	PlotStyle -> Thickness[0.006], 
	
      InitialValues
         -> {3 {\(-\@2\), 1}, 3 {\@2, 1}, \(-3\) {\(-\@2\), 1}, 
          \(-3\) {\@2, 1}}]; \)\)\)

Case 3: Both Eigenvalues are real, one is positive, the other one is negative (SADDLE)

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

N[Eigenvalues[A]]es = Eigensystem[A]

\(\(Show[
      Graphics[{Blue, AbsolutePointSize[8], 
          Table[Point[{Re[es[\([1, i]\)]], Im[es[\([1, i]\)]]}], {i, 1, 
              Length[es[\([1]\)]]}]}], 
	
      PlotRange -> {{\(-4\), 4}, {\(-4\), 4}}, Axes -> True, 
      AxesLabel -> {Re, Im}]; \)\)

\(\(	\(PhasePlot[{\(x'\)[t] == A[\([1, 1]\)] x[t] + A[\([1, 2]\)] y[t], 
        \(y'\)[t] == A[\([2, 1]\)] x[t] + A[\([2, 2]\)] y[t]}, {x[t], y[t]}, {
        t, 0, 20}, {x, \(-5\), 5}, {y, \(-5\), 5}, 
	FlowField -> True, 
	
      FieldLogScale -> 6, 
	FieldColor -> Hue, 
	
      FieldThickness -> Thickness[0.006], 
	ShowEquilibria -> True, 
	
      AxesLabel -> {x, y}, 
	PlotStyle -> Thickness[0.006], 
	
      InitialValues
         -> {2 {\(-2\) - \@6, 1}, .1 {\(-2\) + \@6, 1}, 
          \(-2\) {\(-2\) - \@6, 1}, \(-.1\) {\(-2\) + \@6, 1}}]; \)\)\)

Case 4: Both Eigenvalues are complex, their real part is positive (SPIRAL SOURCE)

A = {{0, -2}, {5, 2}}; MatrixForm[A]

N[Eigenvalues[A]]es = Eigensystem[A]

\(\(Show[
      Graphics[{Blue, AbsolutePointSize[8], 
          Table[Point[{Re[es[\([1, i]\)]], Im[es[\([1, i]\)]]}], {i, 1, 
              Length[es[\([1]\)]]}]}], 
	
      PlotRange -> {{\(-4\), 4}, {\(-4\), 4}}, Axes -> True, 
      AxesLabel -> {Re, Im}]; \)\)

\(\(	\(PhasePlot[{\(x'\)[t] == A[\([1, 1]\)] x[t] + A[\([1, 2]\)] y[t], 
        \(y'\)[t] == A[\([2, 1]\)] x[t] + A[\([2, 2]\)] y[t]}, {x[t], y[t]}, {
        t, 0, 20}, {x, \(-5\), 5}, {y, \(-5\), 5}, 
	FlowField -> True, 
	
      FieldLogScale -> 6, 
	FieldColor -> Hue, 
	
      FieldThickness -> Thickness[0.006], 
	ShowEquilibria -> True, 
	
      AxesLabel -> {x, y}, 
	PlotStyle -> Thickness[0.006], 
	
      InitialValues -> {{.1, .1}, {.1, \(-.1\)}}]; \)\)\)

Case 5: Both Eigenvalues are complex, their real part is negative (SPIRAL SINK)

A = {{0, -2}, {5, -2}}; MatrixForm[A]

N[Eigenvalues[A]]es = Eigensystem[A]

\(\(Show[
      Graphics[{Blue, AbsolutePointSize[8], 
          Table[Point[{Re[es[\([1, i]\)]], Im[es[\([1, i]\)]]}], {i, 1, 
              Length[es[\([1]\)]]}]}], 
	
      PlotRange -> {{\(-4\), 4}, {\(-4\), 4}}, Axes -> True, 
      AxesLabel -> {Re, Im}]; \)\)

\(\(	\(PhasePlot[{\(x'\)[t] == A[\([1, 1]\)] x[t] + A[\([1, 2]\)] y[t], 
        \(y'\)[t] == A[\([2, 1]\)] x[t] + A[\([2, 2]\)] y[t]}, {x[t], y[t]}, {
        t, 0, 20}, {x, \(-5\), 5}, {y, \(-5\), 5}, 
	FlowField -> True, 
	
      FieldLogScale -> 6, 
	FieldColor -> Hue, 
	
      FieldThickness -> Thickness[0.006], 
	ShowEquilibria -> True, 
	
      AxesLabel -> {x, y}, 
	PlotStyle -> Thickness[0.006], 
	
      InitialValues -> {{4, 4}, {\(-4\), 4}}]; \)\)\)

Odds and Ends

Case 6: Both Eigenvalues are complex, their real part is 0 (SPIRAL CENTER)

A = {{0, -2}, {5, 0}}; MatrixForm[A]

N[Eigenvalues[A]]es = Eigensystem[A]

\(\(Show[
      Graphics[{Blue, AbsolutePointSize[8], 
          Table[Point[{Re[es[\([1, i]\)]], Im[es[\([1, i]\)]]}], {i, 1, 
              Length[es[\([1]\)]]}]}], 
	
      PlotRange -> {{\(-4\), 4}, {\(-4\), 4}}, Axes -> True, 
      AxesLabel -> {Re, Im}]; \)\)

\(\(	\(PhasePlot[{\(x'\)[t] == A[\([1, 1]\)] x[t] + A[\([1, 2]\)] y[t], 
        \(y'\)[t] == A[\([2, 1]\)] x[t] + A[\([2, 2]\)] y[t]}, {x[t], y[t]}, {
        t, 0, 20}, {x, \(-5\), 5}, {y, \(-5\), 5}, 
	FlowField -> True, 
	
      FieldLogScale -> 6, 
	FieldColor -> Hue, 
	
      FieldThickness -> Thickness[0.006], 
	ShowEquilibria -> True, 
	
      AxesLabel -> {x, y}, 
	PlotStyle -> Thickness[0.006], 
	
      InitialValues -> {{4, 4}, {\(-2\), 2}}]; \)\)\)

Case 7: A repeated positive Eigenvalue

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

N[Eigenvalues[A]]es = Eigensystem[A]

\(\(Show[
      Graphics[{Blue, AbsolutePointSize[8], 
          Table[Point[{Re[es[\([1, i]\)]], Im[es[\([1, i]\)]]}], {i, 1, 
              Length[es[\([1]\)]]}]}], 
	
      PlotRange -> {{\(-4\), 4}, {\(-4\), 4}}, Axes -> True, 
      AxesLabel -> {Re, Im}]; \)\)

\(\(	\(PhasePlot[{\(x'\)[t] == A[\([1, 1]\)] x[t] + A[\([1, 2]\)] y[t], 
        \(y'\)[t] == A[\([2, 1]\)] x[t] + A[\([2, 2]\)] y[t]}, {x[t], y[t]}, {
        t, 0, 20}, {x, \(-5\), 5}, {y, \(-5\), 5}, 
	FlowField -> True, 
	
      FieldLogScale -> 6, 
	FieldColor -> Hue, 
	
      FieldThickness -> Thickness[0.006], 
	ShowEquilibria -> True, 
	
      AxesLabel -> {x, y}, 
	PlotStyle -> Thickness[0.006], 
	
      InitialValues -> {{.1, .1}, {\(-.1\), \(-.1\)}}]; \)\)\)

Case 8: A repeated negative Eigenvalue

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

N[Eigenvalues[A]]es = Eigensystem[A]

\(\(Show[
      Graphics[{Blue, AbsolutePointSize[8], 
          Table[Point[{Re[es[\([1, i]\)]], Im[es[\([1, i]\)]]}], {i, 1, 
              Length[es[\([1]\)]]}]}], 
	
      PlotRange -> {{\(-4\), 4}, {\(-4\), 4}}, Axes -> True, 
      AxesLabel -> {Re, Im}]; \)\)

\(\(	\(PhasePlot[{\(x'\)[t] == A[\([1, 1]\)] x[t] + A[\([1, 2]\)] y[t], 
        \(y'\)[t] == A[\([2, 1]\)] x[t] + A[\([2, 2]\)] y[t]}, {x[t], y[t]}, {
        t, 0, 20}, {x, \(-5\), 5}, {y, \(-5\), 5}, 
	FlowField -> True, 
	
      FieldLogScale -> 6, 
	FieldColor -> Hue, 
	
      FieldThickness -> Thickness[0.006], 
	ShowEquilibria -> True, 
	
      AxesLabel -> {x, y}, 
	PlotStyle -> Thickness[0.006], 
	
      InitialValues -> {{4, \(-4\)}, {\(-4\), 4}}]; \)\)\)

Etc.

Created: April 1997. 
Last Edits: April 10, 1997.
Author: Helmut Knaust
e-mail: helmut@math.utep.edu