Dynamical Systems

Ivan Cnop
Vrije universiteit Brussel
icnop@vub.ac.be

Dynamical systems Matrix

Action of a Matrix

a = 0.3;
b = -0.2;
c = 0;
d = 0.7;

A=(({{a, b}, {c, d}}))

A // MatrixForm

A // MatrixForm

A  . {x, y} // MatrixForm

Det[A]

Eigensystem[A]

Dot[A,  A]

A . A // MatrixForm

Clear[dot]

dot[A_, vectors_List] := 
      Table[A . vectors[[j]], {j, Length[vectors]}]

pts = Table[{j, 2 - j/2}, {j, 0, 2, 0.1}];

Repeated action of a Matrix

NestList[dot[A, #] &, pts, 10];

ListPlot[Flatten[%, 1], AspectRatio -> Automatic, 
      PlotRange -> {{-1, 2}, {-1, 2}}]

Another example

Clear[A]

a = 0.3;
b = -0.5;
c = 0.5;
d = 0.7;

A=(({{a, b}, {c, d}}));

A // MatrixForm

A  . {x, y} // MatrixForm

Det[A]

Eigensystem[A]

Dot[A,  A]

A . A // MatrixForm

?dot

pts = Table[{j, 2 - j/2}, {j, 0, 1, 0.1}];

A . pts[[1]]

pts

Length[pts]

dot[A, pts]

NestList[dot[A, #] &, pts, 10];

ListPlot[Flatten[%, 1], AspectRatio -> Automatic, 
      PlotRange -> {{-1, 2}, {-1, 2}}]

Polygons

Basic polygons

rectangle =  {{2, 0}, {1, 0}, {1, 1}, {2, 1}}

pol = Polygon[rectangle]

Action of a matrix on a polygon

k = 10;

matrices = 
        NestList[(A . #) &, IdentityMatrix[2], k];

\(\(Table[
	{Hue[ .1\ j], 
          Polygon[
		Table[
              matrices[\([j]\)] . rectangle[\([l]\)], {l, 
                Length[rectangle]}
		]]}
		, {j, 
          Length[matrices]}];\)\)

Show[Graphics[%], PlotRange -> {{-1, 2}, {-1, 2}}, 
      AspectRatio -> Automatic, Axes -> True]

The Arnold matrix

Clear[A]

a = 1;
b = 0;
c = 2;
d = 1;

A=(({{a, b}, {c, d}}));

A // MatrixForm

A  . {x, y} // MatrixForm

Det[A]

Eigensystem[A]

Dot[A,  A]

A . A // MatrixForm

rectangle =  {{0, 0}, {2, 0}, {2, 2}, {0, 2}}

pol = Polygon[rectangle]

k = 5;

matrices = 
        NestList[(A . #) &, IdentityMatrix[2], k];

\(\(Table[
	{Hue[ .05\ j], 
          Polygon[
		Table[
              matrices[\([j]\)] . rectangle[\([l]\)], {l, 
                Length[rectangle]}
		]]}
		, {j, 
          Length[matrices]}];\)\)

Show[Graphics[%], PlotRange -> {{-1, 10}, {-1, 10}}, 
      AspectRatio -> Automatic, Axes -> True]

Try more matrices