APS Excellence in Physics Education Award
November 2019

Education Prize Logo
Science SPORE Prize
November 2011

NSF Logo
The Open Source Physics Project is supported by NSF DUE-0442581.

Getting mathematical paradox in Lyapanov determination post and replies

Return to the Getting mathematical paradox in Lyapanov determination thread
Login to post to this thread

Converging 0.9 at a perturbation of 1e-20 in Lorenz
Alfonso R. Reyes
12 Posts

 I have been working on implementing an algorithm to detrmine the Lyapunov exponent using the equations 6.16, 6.17, 6.18, and 6.20 in Chapter 6 "The Chaotic Motion of Dynamical Systems". https://www.compadre.org/osp/document/ServeFile.cfm?ID=9921&DocID=1551&Attachment=1

Screenshot of the equations

screenshot

This experiment uses only one set of the Lorenz equations to determine the Lyapunov exponent (LE). This is in contrast with the "naive method" previously developed using Open Source Physics. The code and running demo pertaining to the "naive method" can be found in https://github.com/AlfonsoRReyes/lorenz-lyapunov

The results of the "naive method" match theoretical results found in papers. For small values up to 1e-14, the Lyapunov exponent tends to converge near 0.9056; value found in the literature. For values equal or smaller than 1e-15, the algorithm will fail and LE will drop to near zero. This is attibuted to the physical limitation of the computer when dealing with float numbers.

When discretizing the method in page 17 of chapter 6 (page 169 of the book) as show above, we find some perplexing results. We will refer to the method in page 17 (169) as the "better method". When the "better method" is implemented and running it converges nicely to values very close to 0.9056.

We have tested the algorithm at a perturabation on a variable of state at 1e-9, 1e-12, 1e-14, etc. When we tried smaller perturbations such 1e-15, 1e-16, 1e-17, and even 1e-20, the Lyapunov exponent still is trying to converge towards 0.9. The algorithm should fail at these values, but it doesn't. It continues to converge.

This is a screenshot of the algorithm trying to converge to 0.9 at a perturbation value of 1e-20. 

The running code of this experiment can be found here https://alfonsorreyes.github.io/lorenz-lyapunov-derivative/

The Java code in OSP for the "better method" is here https://github.com/AlfonsoRReyes/lorenz-lyapunov-derivative/blob/main/src/org/opensourcephysics/develop/LorenzBetterMethodApp.java

Could somebody give me some clues why I am getting this anomaly?

Thanks.

 PS. I am also attaching the code that represents the math on the book.


OSP Projects:
Open Source Physics - EJS Modeling
Tracker
Physlet Physics
Physlet Quantum Physics
STP Book