Oliver Knill


chirikov allows to compute the entropy and phase space pictures of toral maps. For possible updates, check out the the home and downlowad page of "chirikov".
chirikov is invoked on the command line. Currently implemented is a three-parameter family of toral maps T: (x,y) -> (2x-y + f(x),x) called 'twist maps' or 'standard maps'. If f(x)=g sin(x) the map T is called the Chirikov-Taylor Standard map. Implemented is the three parameter family f(x)=a sin(x) + b sin(2 x) + c sin(3 x). The user can easily change the definition of the map f in the header file chirikov.h and recompile the code to investigate different maps.
The program chirikov was used over years for research purposes. We had written earlier versions in Pascal, Fortran, Mathematica, Java. While this C program version grew while more features were added, this release is a reduction to the basics. It can be used as a building block in shellscripts using image processing, image viewing and movie rendering programs.


Installation is generic: type
to produce the binary. Type (eventually as root)
make install
to install the binaries, man pages etc. Modify as usual the Makefile for your needs. The default install path is /usr/local.
chirikov has currently been tested for
  • Linux
  • Nextstep
  • BSD
  • Sun OS
If you happen to compile and run chirikov on other platforms, feel free to send e-mail to the author . Use the same address for reporting bugs or general problems with chirikov.
You might to want to modify chirikov.h to change default features or flags or the map in consideration.

Try it !

chirikov -w 100 In order to try out chirikov in a X environment, just type
chirikov | xv -
after having installed the program (if the ./ directory is not in your path variable, and you did only compile but not install the binary, you might have to type ./chirikov|xv - ).
Next, try
chirikov -a 1 -b 1 -c 0.1 -w 900 -x 0.2 -y 0.8 -s 0.1 > out.ppm
to have a picture from a part of the phase space centered at (0.2,0.8). This computation takes some time, because the return time to the relatively tiny region of area 1/00 is large (100 in average).

Why no graphics front end?

This program was developed while doing research on toral maps. It was used to compute numerically the entropy, for producing slides for talks or web illustrations. Terminal-based programming under Unix has many advantages [KerPik99].
  • The code is short and simple and compiles in many environments. The program can easily be modified for other purposes. Demonstration shellscripts are provided with this distribution show how to embed the code into a larger context.
  • Terminal based data-input has the advantage that the program can be used together with other programs. For example, chirikov can silently be started up by cron, used as a filter together with the netpbm toolkit or used in CGI scripts. Jobs containing the program could be distributed on different machines etc. In other words, keeping the code primitive makes it of more general use and flexible to bend for other purposes.

Who is Chirikov?

Boris Chirikov Boris V. Chirikov's is a Russian physisict at the Budker Institute of Nuclear Physics. He was one of the first people studing seriously toral area-preserving maps. Such maps appear in plasma dynamics, celestial mechanics and other dynamical systems.

What is the Chirikov map?

      '     `              '                `
      |  x  |              | 2x -y + f(x)   |
T:    |     |    ->        |                |
      |  y  |              |      x         |
      `     '              `                '
In the case f(x) = sin(x), the map T is called the Chirikov map, the Standard map or the Chirikov-Taylor map.
The map appeared first in 1960 in the context of electron dynamics in microtrons. It was first numerically studied by Taylor in 1968 and Chirikov in 1969. In the physical literature it is called the "kicked rotator" and describs ground states of the "Frenkel-Kontorova model". The map is often used to illustrate or motivate various mathematical theorems in the theory of dynamical systems.
chirikov allows to study maps T with
      f(x) = a sin(x) + b sin(2x) + c sin(3x). 

Entropy calculation

The Jacobean of the map T is a linear map given by the 2x2 matrix
                 '                     `  
                 | 2 + f'(x)       - 1 |  
     dT(x,y) =   |                     |  
                 |   1               0 |  
                 `                     '  
Because dT(x,y) has determinant 1, the map preservers the area of the torus. For every integer n, the Jacobean dT(x) n of the n-th iterate T n measures the the distortion of the n'th iterate The image of a tiny disc unter T n is to first order given by an ellipse, the image of the disc under the linear map dT n . On the torus, the image will wind around many times around the torus.
The limit of (log ||dT n (x,y)||)/n for n -> infinity measures the exponential growth rate of the norm ||dT n ||. It is defined for almost all points (x,y) and called the Lyapunov exponent of T at the point (x,y). If we integrate the Lyapunov exponent over the torus, we obtain a number called the entropy of the map. The program chirikov estimates this number by taking a large n, say n = 5'000'000 and computes the integral by approximating the integral through a Riemann sum.
Example: the entropy of (x,y) -> (2x-y + 3.0 sin(x),x) is computed with
     chirikov -e -a 3.0 
which gives about 0.586 (the value can fluctuate slightly because rand() is used to determine the grid for averaging and for the initial tangent vector). In all experiments seen so far, one has observed that the entropy is bounded below by log(g/2). In the example above, where g=3.0, the lower bound is log(3/2)=0.405... It is an open mathematical problem whether such the numerically established lower bound really holds.
Example: The entropy of (x,y) -> (2x-y + 1.0 sin(x)+2.4 sin(2x),x) is computed with the following command:
     chirikov -e -a 1.0 -b 2.4 

Phase space pictures

chirikov -a 1.0 -b 0.2 -c 0.4 -w 100 If we take a point (x,y) and look at its iterates T(x,y), T (T(x,y)) = T 2 etc., we obtain an orbit. By taking a grid of initial starting points and coloring each orbit according to the Lyapunov exponent measured along this orbit, chirikov obtains the phase space picture.
     chirikov -a 1.9  > out.ppm 

     chirikov -a 1.9 -b 0.4 > out.ppm 

     chirikov -a 1.0 -b 0.2 -c 0.4  > out.ppm 
chirikov -a 1.0 -b 0.2 -c 0.4 -w 100 for example shows a phase space with two type of behaviour. Stable motion on 'red KAM islands' as well as irregular motion on the 'blue CHAOTIC sea'.
You can look closer at the 'shore' of the island by taking a picture of radius 0.2 (taxi metric) centered at (0.73,0.73)
     chirikov -a 1.9 -x 0.73 -y 0.73 -s 0.4 > out.ppm 
You see that there are more islands as previously seen. Let us zoom closer:
     chirikov -a 1.9 -x 0.73 -y 0.73 -s 0.10  | xv -
The program needs now more time to have plotted enough points in the window, Because we see only 1/400 of the total phase space, 1 of 400 points will be outside the picture in average. Consequently we have to iterate about 400 times longer. If you have time and exciting hardware, try to zoom-in even further.
     chirikov -a 1.9 -x 0.75 -y 0.75 -s 0.02 | xv - 

Example1: Making background patterns

An example on how to use chirikov to produce a background in X try out
which is located in the Demo directory.

Example2: Zoom into the phase space

With a small shellscript the zooming can be done automatically. The gif files are connected to a gif animation using 'gifmerge' (which is also included here). The shellscript (located in the Demos directory)
renders a movie of 20 pictures, zooming into the point (0.75,0.75) starting with an initial radius 0.5 and decreasing the radius by 0.9 in each step.

Example3: Parameter Movies

As an other demonstration, we move along a paths in the a-b parameter space.
© 2000