|
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

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. 
|