May 26, 2005

(revised November 10, 2010)

In a classic and highly readable paper [A. Wolf, J. B. Swift, H. L. Swinney, and J. A. Vastano, Physica D 16, 285-317 (1985)], Alan Wolf and collaborators described algorithms for calculating the spectrum of Lyapunov exponents from systems in which the equations are known as well as the largest Lyapunov exponent from an experimental time series. Included here is code ported to the PowerBASIC Console Compiler from Wolf's Fortran code for calculating the spectrum of Lyapunov exponents for maps and flows when the equations are known. The code includes an example for the Hénon map and for the Lorenz attractor:

Hénon map: |
BASIC
source code |
Executable
code |

Lorenz attractor: |
BASIC
source code |
Executable
code |

There are a couple of differences from Wolf's original code: The exponents are base-e (rather than base-2 as used by Wolf), and the code includes a calculation of the Kaplan-Yorke dimension. Also the parameters used for the Lorenz attractor are the standard ones (sigma = 10, r = 28, b = 8/3) rather than the nonstandard ones (sigma = 16, r = 45.92, b = 4) used by Wolf. The Hénon map uses the standard parameters of a = 1.4 and b = 0.3.

Values obtained from the above code are as follows:

System |
Lyapunov
exponents
(base-e) |
Kaplan-Yorke
dimension |

Hénon map: | 0.419217, -1.623190 |
1.258267 |

Lorenz attractor: |
0.90563, 0, -14.57219 |
2.06215 |

These values are in good agreement with those obtained by a different method in J. C. Sprott, Chaos and Time-Series Analysis (Oxford, 2003).

Implementation of Wolf's algorithm for calculating the largest Lyapunov exponent from experimental data is included as part of the commercial software Chaos Data Analyzer. An alternate method that trains a neural network on the experimental data is included in the freeware LagSpace program.

If you are content to calculate only the largest Lyapunov exponent, try the procedure described here.

Back to Sprott's Technical Notes