Nonlinear dynamics is often characterised by a chaotic behaviour of the system. A typical property of chaos is that very small variations in the initial conditions cause dramatic variations in the systems state after some time (the neighbouring system's states diverge exponentially). With other words: small disturbations can cause dramatic changes - like the butterfly in China which releases a thunderstorm in America.
This divergence behaviour can be quantified by the Lyapunov exponent \lambda.
A n-dimensional system will have n Lyapunov exponents. The Lyapunov exponents are used to study the stability of a system, e. g., a fixed point has only negative Lyapunov exponents, periodic systems have one zero and else negative Lyapunov exponents, and chaotic systems have at least one positive Lyapunov exponent.
To estimate the Lyapunov exponent of time series, several approaches were suggested, like the methods of Wolff, Kantz or Rosenstein. Here we will use the method of Rosenstein provided by the TISEAN toolbox.
Let us consider the Henon system
a = 2; b = 0; x(1,1) = .91; x(1,2) = 0; for i = 2:10001 x(i,1) = 1 - a * x(i-1,1)^2 + b * x(i-1,2); x(i,2) = x(i-1,1); end x(1,:) = ; save henon.dat x -ascii -tabs
In order to compute the Lyapunov exponent using TISEAN we call
tiseanPath = 'C:\Programme\MATLAB6p5\work\Tisean\'; system([tiseanPath, 'lyap_r -s20 -o lyap.dat henon.dat']); l = load('lyap.dat'); plot(l(:,1), l(:,2)) xlabel('Iteration'), ylabel('log(stretching factor)')
/bin/bash: C:ProgrammeMATLAB6p5workTiseanlyap_r: command not found
The result is a two-column vector with the number of iterations in the first column and the logarithmic stretching factor in the second column. The slope of the semilogarithmic plot of the stretching factor over the iteration is an estimator of the maximal positive Lyapunov exponent.
By linear regression fit we get the slope, i. e. the maximal positive Lyapunov exponent by
lyap = polyfit(l(1:12,1), l(1:12,2),1); lyap(1)
ans = 0.6918
1. Heonon map
1.1. Compute 10000 points of the Henon map.
1.2. Compute the Lyapunov exponent by using the TISEAN command lyap_r. Can you thus confirm the precise value lambda = ln(2)?
1.3. Study the resulting plots as a function of the trajectory length.
1.4. Add noise to the data and study the resulting plots and the Lyapunov exponent for increasing noise level.
2. Roessler system
2.1. Compute the three data series of the Roessler system for 10000 data points by using the Matlab's ODE function.
2.2. Calculate the Lyapunov spectrum by using the TISEAN command lyap_spec. How many positive exponents do you find?