Calculate and graphically display an iterated endomorphism of the plane
- Authored and Contributed by
- Ronald Joe Record
- Copyright 1993, 1994 Ronald Joe Record
The mathrec source code is freely redistributable. The author maintains
binary distributions for Caldera OpenLinux 3.1, OpenServer, UnixWare 7
and Open UNIX 8. These distributions and the source code are available via:
The basic idea is to iterate an endomorphism of the plane (R x R).
Each point (x,y) is mapped to (f(x,y),g(x,y)). The new point is
then mapped to (f(f(x,y),g(x,y)),g(f(x,y),g(x,y))) and so on. Each
point is then colored according to how many iterates it took to get
within some "delta" of a previous iterate (e.g. a periodic orbit is
detected). Lyapunov exponents can be calculated and displayed for a
region of parameter space. Phase portraits can be constructed and
histographic data displayed. Finally, critical curves and their iterates
may be displayed (curves for which the determinant of the Jacobian is zero).
The Winter 1992 seminar at UCSC led by Dr. Ralph Abraham was the
inspiration for the study of iterated endomorphisms of the plane.
The 3-D transformation routines were ported to X from CGI routines
developed by Hiram Clawson.
Techniques for calculating the critical arcs and absorbing regions
were drawn from Laura Gardini of the Istituto di Scienze economiche,
Universita' di Urbino. Studies of various maps of the plane were used
including papers by Jon von Neumann, Graciela Chichilnisky, John
Guckenheimer, G. Oster, A. Ipaktchi, Wulf Gaertner, Jochen Jungeilges,
Ralph Abraham, B. P. Wood, A. J. Lichtenberg, Z. You, E.J. Kostelich,
J. A. Yorke, R. Brown, L. Chua, K. Judd, A. I. Mees, K. Aihara, and
Some "interesting" runs of endo are included as simple shell scripts in the
"params" subdirectory (these get installed in /usr/local/mathrec/endo).
To add a map to the array of selectable endomorphisms, follow the following
- Edit endo.h and add the pair, double, PFP, PFD, and Mapnames
declarations. Follow the example set by the "standard" map.
- Edit maps.c and add the map and derivative function definitions.
Again, you can follow the example set by standard() and dstandard().
- Edit params.h adding the numerical values to use in the
amins, aranges, bmins, branges, pmins, pmaxs, and defparms arrays.
In each case, when adding the nth map, you will be adding the nth
value in the array (which may itself be an array).
- Edit defines.h, incrementing NUMMAPS and increasing NUMDEFS by 2.
- Edit info.c, adding a string representation of the function to
Mapdefs and an entry in the numparams array indicating how many
parameters the map has.
- make clean; make tags; make
- This program was designed to assist in the exploration and research of
iterated non-invertable maps of the plane. It has proved useful in constructing
a phenomenology of the dynamical properties of such maps.
- I have used it for years without harm.
- Work Planned
- Improve the Lyapunov exponent algorithm so that both exponents are
- manual page.
- Execute any or all of the shell scripts provided in /usr/local/mathrec/endo.