MathGroup Archive 1996

[Date Index] [Thread Index] [Author Index]

Search the Archive

Arnold's Cat Map

  • To: mathgroup at
  • Subject: [mg5282] Arnold's Cat Map
  • From: wilson figueroa <wfigueroa at>
  • Date: Mon, 18 Nov 1996 02:30:35 -0500
  • Organization: Mosquito Net, Inc.
  • Sender: owner-wri-mathgroup at

Hi group,

I would like to implement Arnold's Cat Map (ACM) using Mathematica and
was wondering if I could get some help.

For those who may not be familiar with ACM, here goes

Mathematically we will attempt to map the unit square in the xy-plane 
onto itself to demonstrate chaos.

We are going to take an image (hopefully a cat image as shown in
the introductory section of Wolfram's book for MMA v 3.0) and
perform a transformation on it as follows:

In matrix notation:

This expresses Arnold's Cat Map as the composition of a shear in the
x-direction with factor 1, followed by a shear in the y-direction
with factor 1.

This matrix is periodic for some p.

Now if we could represent an image as pixels, using exact integer
math, we could run the transformation p times and would see the image
get garbled into random looking points, but then reassemble into
the original image.

For example, say we have a unit square divided into a grid with 101
pixels for a total of 10,201 pixels (of black and white or various
colors).  Each pixel can be assigned a unique pair of coordinates
of the form (m/101,n/101) that identifies its lower left hand corner.

Under ACM, each pixel can now be transformed into another pixel point
of T.  Because ACM's transforms every pixel point of T into another
pixel point of T, it follows that after at most p^2 + 1, the given
pixel must return to its original state.

Would it be possible, using Mathematica, to take an image and represent
it using an nxn pixel map (important that they remain integer or
the image will never recompile) and then run it through the transform?
I would also like to be able to make a movie of the transform from
each iteration of the transform.

The matrix {{1,1},{1,2}} can be used with a pixel map containing
101 pixels (101 x 101) and will return to the original after 25 (p)
iterations.  Try it:

Take (m/101, n/101) and see that it returns to its starting position
after 25 iterations.

Although I understand the math behind the periodic matrix, I would 
like to demnstrate this pictorially.

Can anyone with more experience than myself help here?

Thank you

P.S. If you have any questions about my description, please email

Wilson  Figueroa

wfiguero at

  • Prev by Date: Re: ReadList problems in NEXTStep, version 2.2 for NEXT
  • Next by Date: Re: Inverse of Error Function
  • Previous by thread: There are several lines missing in mathgroup.
  • Next by thread: Re: Arnold's Cat Map