Arnold’s Cat Map.

The discrete map acting on a two-dimensional lattice {x, y} where x and y are restricted to the integer values 0, 1, ..., c-1.
Its solution introduces Fibonacci integers.

m={{1,1},{1,2}};m//MatrixForm

Graphics[{PointSize[Large],Point[{0,0}],Point[{0,1}],Point[{1,0}],Point[{1,1}],Line[{{0,0},{0,1},{1,1},{1,0},{0,0}}],Red,Point[m.{0,0}],Point[m.{0,1}],Point[m.{1,0}],Point[m.{1,1}],Line[{m.{0,0},m.{0,1},m.{1,1},m.{1,0},m.{0,0}}]}]

Clear[x,y];RSolve[{x[n]==x[n-1]+y[n-1],y[n]==x[n-1]+2y[n-1],x[0]==x0,y[0]==y0},{x[n],y[n]},n]//FullSimplify

MatrixPower[m,n].{x0,y0}//FullSimplify

{{Fibonacci[2n-1],Fibonacci[2n]},{Fibonacci[2n],Fibonacci[2n+1]}}.{x0,y0}//FullSimplify

It should be clear that these three expressions are equivalent the latter because of the following identity :

((MatrixPower[m,n]//Flatten)==({{Fibonacci[2 n-1],Fibonacci[2 n]},{Fibonacci[2 n],Fibonacci[2 n+1]}}//Flatten)//Thread)//FunctionExpand//FullSimplify[#,Element[n,Integers]]&

Table[{k,Fibonacci[k]},{k,-1,20}]

Periodic solutions of the continuous map (period N) :

Solve[{(Fibonacci[2N-1]-1)x0+Fibonacci[2N]y0==K c,Fibonacci[2N]x0+(Fibonacci[2N+1]-1)y0==L c},{x0,y0}]//FullSimplify

{x0->c((K+L Fibonacci[2 N]-K Fibonacci[1+2 N])/(Fibonacci[2 N+1]+Fibonacci[2N-1]-2)),y0->c((L+K Fibonacci[2 N]-L Fibonacci[-1+2 N])/(Fibonacci[2 N+1]+Fibonacci[2N-1]-2))}     (*Simplified by hand*)

Mod[{c((K+L Fibonacci[2 N]-K Fibonacci[1+2 N])/(Fibonacci[2 N+1]+Fibonacci[2N-1]-2)),c((L+K Fibonacci[2 N]-L Fibonacci[-1+2 N])/(Fibonacci[2 N+1]+Fibonacci[2N-1]-2))}/.{N->10,K->1,L->1},c]/.c->8     (*Looks for a particular period-10 solution in the case, c=8*)

Table[Mod[MatrixPower[m,n].{(1592/275),(376/275)},8]//FullSimplify,{n,0,12}]         (*Checks the periodicity*)

The discrete map acting on a two-dimensional lattice {x, y} where x and y are restricted to the integer values 0, 1, ..., c-1.
Its solution introduces Fibonacci integers.

catMapR=Compile[{{pic, _Integer, 2}}, Table[pic[[Mod[x + y,Length[pic], 1],Mod[x + 2y, Length[pic], 1]]], {x, Length[pic]}, {y, Length[pic]}]];    (*Code by Henrique Zeleny in Wolfram Demonstration Project*)

Rpixels=ImageData[,"Bit"]/.{{1,1,1}->1,{0,0,0}->-1};

Length[Rpixels]

prune[mat_,n_]:=Transpose[Drop[Drop[Transpose[Drop[Drop[mat,n],-n]],n],-n]]              (*Amputates the exterior frame of the image discarding a band of width, n*)

GraphicsGrid[Partition[Table[Image[Nest[catMapR,prune[Rpixels,0],k]],{k,0,49}],7]]

Manipulate[Image[Nest[catMapR,prune[Rpixels,0],iter]],{{iter,1,"iterations"},0,48,1,Appearance->"Labeled"},SaveDefinitions->True]

Table[GraphicsGrid[Partition[Table[Image[Nest[catMapR,prune[Rpixels,j],k]],{k,0,63}],7]],{j,0,5}]

GraphicsGrid[Partition[Table[GraphicsGrid[Partition[Table[Image[Nest[catMapR,prune[Rpixels,j],k]],{k,0,63}],7]],{j,0,5}],3]]

Prediction of the period as a function of c :

Table[n=1;While[Mod[Fibonacci[2n],c]≠0 || Mod[Fibonacci[2n-1],c]≠1 ,n++];{c,n},{c,64,54,-2}]

Table[n=1;While[Mod[Fibonacci[2n],c]≠0 || Mod[Fibonacci[2n-1],c]≠1 ,n++];{c,n},{c,64,254,2}]