manu-mannattil / nolitsa

A Python module implementing some standard algorithms used in nonlinear time series analysis
BSD 3-Clause "New" or "Revised" License
172 stars 46 forks source link

How we calculate the 'accepted' value about max Lyapunov exponent? #3

Closed JingliangGao closed 5 years ago

JingliangGao commented 5 years ago

Hi, In the folder named lyapunov(pwd : nolitsa/examples/lyapunov/), you have shown some cases about how to calculate max Lyapunov exponent. Although it is obviously that the "accepted" value, well, I mean, the slope of the line is quite close to the estimate values we get here, how we calculate this "accepted" value? I guess we should we calculate this "accepted" value by the least square method. However, it seems that many later estimate values we get are meaningless but will affect the "accepted" value.

manu-mannattil commented 5 years ago

The "accepted" values I quote in those examples are the values in M. T. Rosenstein et al., Physica D 65 (1993) 117, who themselves seem to have taken those values from A. Wolf et al., Physica D 16 (1985) 285. Lyapunov exponents estimated from a time series wouldn't be as accurate as ones calculated directly from the equations of the system, e.g., using the fiducial trajectory method described in Wolf et al.'s paper. Even with such a method, it's hard to sometimes see convergence. If I had to estimate the Lyapunov exponent of a system whose equations are known, I would take a large number of initial conditions from the attractor while integrating the equations and average the results. This then would be my "accepted" value that I'd use to compare the results I get from a time series of the system. If the equations aren't known, the best one can do is to do a least-square fit like you suggested. In such a case, there wouldn't be an "accepted" value.

JingliangGao commented 5 years ago

Thanks for your prompt reply to help me understand this value, sir. :)