# Arnold's cat map

__: Chaotic map from the torus into itself__

**Short description**In mathematics, **Arnold's cat map** is a chaotic map from the torus into itself, named after Vladimir Arnold, who demonstrated its effects in the 1960s using an image of a cat, hence the name.^{[1]} It is a simple and pedagogical example for hyperbolic toral automorphisms.

Thinking of the torus [math]\displaystyle{ \mathbb{T}^2 }[/math] as the quotient space [math]\displaystyle{ \mathbb{R}^2/\mathbb{Z}^2 }[/math], Arnold's cat map is the transformation [math]\displaystyle{ \Gamma : \mathbb{T}^2 \to \mathbb{T}^2 }[/math] given by the formula

- [math]\displaystyle{ \Gamma (x,y) = (2x+y,x+y) \bmod 1. }[/math]

Equivalently, in matrix notation, this is

- [math]\displaystyle{ \Gamma \left( \begin{bmatrix} x \\ y \end{bmatrix} \right) = \begin{bmatrix} 2 & 1 \\ 1 & 1 \end{bmatrix} \begin{bmatrix} x \\ y \end{bmatrix} \bmod 1 = \begin{bmatrix} 1 & 1 \\ 0 & 1 \end{bmatrix} \begin{bmatrix} 1 & 0 \\ 1 & 1 \end{bmatrix} \begin{bmatrix} x \\ y \end{bmatrix} \bmod 1. }[/math]

That is, with a unit equal to the width of the square image, the image is sheared one unit up, then two units to the right, and all that lies outside that unit square is shifted back by the unit until it is within the square.

## Properties

- Γ is invertible because the matrix has determinant 1 and therefore its inverse has integer entries,
- Γ is area preserving,
- Γ has a unique hyperbolic fixed point (the vertices of the square). The linear transformation which defines the map is hyperbolic: its eigenvalues are irrational numbers, one greater and the other smaller than 1 (in absolute value), so they are associated respectively to an expanding and a contracting eigenspace which are also the stable and unstable manifolds. The eigenspaces are orthogonal because the matrix is symmetric. Since the eigenvectors have rationally independent components both the eigenspaces densely cover the torus. Arnold's cat map is a particularly well-known example of a
*hyperbolic toral automorphism*, which is an automorphism of a torus given by a square unimodular matrix having no eigenvalues of absolute value 1.^{[2]} - The set of the points with a periodic orbit is dense on the torus. Actually a point is periodic if and only if its coordinates are rational.
- Γ is topologically transitive (i.e. there is a point whose orbit is dense).
- The number of points with period [math]\displaystyle{ n }[/math] is exactly [math]\displaystyle{ |\lambda_1^n+\lambda_2^n-2| }[/math] (where [math]\displaystyle{ \lambda_1 }[/math] and [math]\displaystyle{ \lambda_2 }[/math] are the eigenvalues of the matrix). For example, the first few terms of this series are 1, 5, 16, 45, 121, 320, 841, 2205 ....
^{[3]}(The same equation holds for any unimodular hyperbolic toral automorphism if the eigenvalues are replaced.) - Γ is ergodic and mixing,
- Γ is an Anosov diffeomorphism and in particular it is structurally stable.
- The mapping torus of Γ is a solvmanifold, and as with other Anosov diffeomorphisms, this manifold has solv geometry.

## The discrete cat map

It is possible to define a discrete analogue of the cat map. One of this map's features is that image being apparently randomized by the transformation but returning to its original state after a number of steps. As can be seen in the adjacent picture, the original image of the cat is sheared and then wrapped around in the first iteration of the transformation. After some iterations, the resulting image appears rather random or disordered, yet after further iterations the image appears to have further order—ghost-like images of the cat, multiple smaller copies arranged in a repeating structure and even upside-down copies of the original image—and ultimately returns to the original image.

The discrete cat map describes the phase space flow corresponding to the discrete dynamics of a bead hopping from site *q*_{t} (0 ≤ *q*_{t} < *N*) to site *q*_{t+1} on a circular ring with circumference *N*, according to the second order equation:

- [math]\displaystyle{ q_{t+1} - 3q_t + q_{t-1} = 0 \mod N }[/math]

Defining the momentum variable *p*_{t} = *q*_{t} − *q*_{t−1}, the above second order dynamics can be re-written as a mapping of the square 0 ≤ *q*, *p* < *N* (the phase space of the discrete dynamical system) onto itself:

- [math]\displaystyle{ q_{t+1} = 2q_{t} + p_t \mod N }[/math]
- [math]\displaystyle{ p_{t+1} = q_{t} + p_t \mod N }[/math]

This Arnold cat mapping shows mixing behavior typical for chaotic systems. However, since the transformation has a determinant equal to unity, it is area-preserving and therefore invertible the inverse transformation being:

- [math]\displaystyle{ q_{t-1} = q_t - p_t \mod N }[/math]
- [math]\displaystyle{ p_{t-1} = -q_t + 2p_t \mod N }[/math]

For real variables *q* and *p*, it is common to set *N* = 1. In that case a mapping of the unit square with periodic boundary conditions onto itself results.

When N is set to an integer value, the position and momentum variables can be restricted to integers and the mapping becomes a mapping of a toroidial square grid of points onto itself. Such an integer cat map is commonly used to demonstrate mixing behavior with Poincaré recurrence utilising digital images. The number of iterations needed to restore the image can be shown never to exceed 3N.^{[4]}

For an image, the relationship between iterations could be expressed as follows:

- [math]\displaystyle{ \begin{array}{rrcl} n=0: \quad & T^0 (x,y) &= & \text{Input Image}(x,y) \\ n=1: \quad & T^1 (x,y) &= & T^0 \left( \bmod(2x+y, N), \bmod(x+y, N) \right) \\ & &\vdots \\ n=k: \quad & T^k (x,y) &= & T^{k-1} \left( \bmod(2x+y, N), \bmod(x+y, N) \right) \\ & &\vdots \\ n=m: \quad & \text{Output Image}(x,y) &=& T^m (x,y) \end{array} }[/math]

## Models

### Python code for Arnold's Cat Map

import os from PIL.Image import open as load_pic, new as new_pic def main(path, iterations, keep_all=False, name="arnold_cat-{name}-{index}.png"): """ Params path:str path to photograph iterations:int number of iterations to compute name:str formattable string to use as template for file names """ title = os.path.splitext(os.path.split(path)[1])[0] counter = 0 while counter < iterations: with load_pic(path) as image: dim = width, height = image.size with new_pic(image.mode, dim) as canvas: for x in range(width): for y in range(height): nx = (2 * x + y) % width ny = (x + y) % height canvas.putpixel((nx, height-ny-1), image.getpixel((x, height-y-1))) if counter > 0 and not keep_all: os.remove(path) counter += 1 print(counter, end="\r") path = name.format(name=title, index=counter) canvas.save(path) return canvas if __name__ == "__main__": path = input("Enter the path to an image:\n\t") while not os.path.exists(path): path = input("Couldn't find your chosen image, please try again:\n\t") result = main(path, 3) result.show()

## See also

## References

- ↑ Vladimir I. Arnold; A. Avez (1967) (in fr).
*Problèmes Ergodiques de la Mécanique Classique*. Paris: Gauthier-Villars.;**English translation:**V. I. Arnold; A. Avez (1968).*Ergodic Problems in Classical Mechanics*. New York: Benjamin. - ↑ Franks, John M (October 1977). "Invariant sets of hyperbolic toral automorphisms".
*American Journal of Mathematics*(The Johns Hopkins University Press)**99**(5): 1089–1095. doi:10.2307/2374001. ISSN 0002-9327. - ↑ Sloane, N. J. A., ed. "Sequence A004146". OEIS Foundation. https://oeis.org/A004146.
- ↑ Dyson, Freeman John; Falk, Harold (1992). "Period of a Discrete Cat Mapping".
*The American Mathematical Monthly*(Mathematical Association of America)**99**(7): 603–614. doi:10.2307/2324989. ISSN 0002-9890.

## External links

- Weisstein, Eric W.. "Arnold's Cat Map". http://mathworld.wolfram.com/ArnoldsCatMap.html.
- Effect of randomisation of initial conditions on recurrence time
- Arnold's Cat Map by Enrique Zeleny, The Wolfram Demonstrations Project.
- Arnold's Cat Map: An interactive graphical exploration

Original source: https://en.wikipedia.org/wiki/Arnold's cat map.
Read more |