lyap

Calculate and graphically display the Lyapunov exponents of an iterated map

Authored and Contributed by
Ronald Joe Record
Restrictions
Copyright 1993, 1994 Ronald Joe Record
Availability
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:

Binary Distributions
OpenLinux/Open UNIX ftp://ftp2.sco.com/pub/.../RPMS/mathrec-1.1c-1col.i586.rpm (no longer available)
UnixWare 7 ftp://ftp2.sco.com/pub/skunkware/uw7/Packages/mathrec-1.1b.pkg
OpenServer ftp://ftp2.sco.com/pub/skunkware/osr5/vols/mathrec-1.1c-VOLS.tar

Source Code Distributions
Source RPM ftp://ftp2.sco.com/pub/.../SRPMS/mathrec-1.1c-1col.src.rpm (no longer available)
Gzip'd tar archive ftp://ftp2.sco.com/pub/skunkware/src/x11/misc/mathrec-1.1c.tar.gz

Description
Lyap is an X11 client. The idea here is to calculate the Lyapunov exponent for a periodically forced logistic map (later i added several other nonlinear maps of the unit interval). In order to turn the 1-dimensional parameter space of the logistic map into a 2-dimensional parameter space, select two parameter values (a and b) then alternate the iterations of the logistic map using first a then b as the parameter. This program accepts an argument to specify a forcing function, so instead of just alternating a and b, you can use a as the parameter for say 6 iterations, then b for 6 iterations and so on. An interesting forcing function to look at is abbabaab (the Morse-Thue sequence, an aperiodic self-similar, self-generating sequence). Anyway, you step through all the values of a and b in the ranges you want, calculating the Lyapunov exponent for each pair of values. The exponent is calculated by iterating out a ways (specified by the variable "settle") then on subsequent iterations calculating an average of the logarithm of the absolute value of the derivative at that point. Points in parameter space with a negative Lyapunov exponent are colored one way (using the value of the exponent to index into a color map) while points with a non-negative exponent are colored differently.
Acknowledgements
The algorithm was taken from the September 1991 Scientific American article by A. K. Dewdney who gives credit to Mario Markus of the Max Planck Institute for its creation. Additional information and ideas were gleaned from the discussion on alt.fractals involving Stephen Hall, Ed Kubaitis, Dave Platt and Baback Moghaddam. Assistance with colormaps and spinning color wheels and X was gleaned from Hiram Clawson. Rubber band code was adapted from Stacey Campbell's xmandel source.
Build
To build the lyap binary, either use the Imakefile or one of the sample makefiles - Makefile.ODT or Makefile.OSF. Makefile.ODT is a sample makefile used to build lyap on an SCO ODT system. Makefile.OSF was used as a makefile on a DECstation 3100 running OSF/1.

The manual page can be formatted by typing "nroff -man lyap.man > lyap.1".

Install
To install lyap, copy the lyap binary to the desired location (the sample makefiles put it in /usr/local/bin) Copy the formatted man page to wherever you keep your local doc (i use /usr/local/man/cat1 for imaging software), then add that location to your MANPATH.

Some "interesting" runs of lyap are included as simple shell scripts in the "params" subdirectory.

Safety
I have used it for a couple of years without harm.
Work Planned
None
Documentation
manual page.
Verification
Execute any or all of the shell scripts provided in /usr/local/mathrec/lyap.
Ideas, comments, additions, deletions, suggestions, bug reports, code review
e-mail Ronald Record at rr@ronrecord.com