In Physica 16D (1985) we presented an algorithm that estimates the dominant Lyapunov exponent of a 1-D time series by monitoring orbital divergence. The algorithm was distributed for many years by the authors in Fortran and C. It has just been converted to Matlab. Documentation will be posted shortly.
+The code is well written, and can be extended to other problems with minimal effort/elbow grease. I greatly appreciated the addition of plotting/stepping, which lays out the action of the algorithm very clearly.
-Its readability is somewhat harmed by the lack of use of MATLAB built-ins, but that's understandable when porting from Fortran and C.
Dr. Wolf - thanks for posting this! It made your paper much clearer.
For a few of you who asked about creating input data files... The sample files I included were written as unix newline terminated data points. These files may look strange when displayed by various editors. Feel free to create data files with any software that can output time series values, one per line, terminated with a carriage return AND line feed. The existing code will read such files in perfectly well...
I am trying to use the code for my time series, but I keep getting an error on fet.m. the error is the vector OUT dimension for the first run is not the same is the next loop run. What could be the problem? any help?
Thank you so much, Sir
it's very good !!!
If you have questions about the algorithm, PLEASE DON'T POST THEM HERE. Simply email me. This space is for comments and ratings, not conversations.
tnx a lot Sir Alan ... I found that . just one question . i have my own time series in order to calculate biggest LE ( just this and nothing more . just the final result number of time series ) . should i just replace my normalize time series and with your data ?
I've been asked more than once... where is the output (exponent estimate). This is discussed in the documentation (Lyapunews.pdf) - please read it. An output file is created when the program is run. The running estimate of the dominant exponent is the 4th column of numbers in that file. Discussed on page 16 of Lyapunews.
Hi Sir Alan . Tnx a lot for your work . i have a question sir .
where can i exactly find the largest lyapunove in output ? ( in documation mentioned approximately 2.1 )
You can’t get negative exponents because:
1) In a system with positive, negative, perhaps zero exponents, the average rate of orbital divergence is dominated by the term that grows fastest, which by definition, is the exponential term with an exponent that is the largest POSITIVE Lyapunov exponent. Negative exponents contribute, but a contribution like e^(-3t) won't be seen if there is also a term like e^(+2t).
2) In a system like the Lorenz attractor, negative exponents relate to transient decay towards the chaotic attractor. Your data set consists solely of post-transient data. Once you discarded the transients, there is not way to get them back.
Why cannot I get a negative Lyapunov exponent from this program?
Thanks very much Dr. Wolf.
There is no fundamental limit to the size/length of the time series. Modify the code (in C, Fortran, etc.) as regards memory requirements to suit your needs. Matlab may not be the best way to go for efficiency...
I have a question :whether the data points in the time series must be less than 32000 when I use this code，if it is more than 32000,what should I do?
Thank a lot Dr. Wolf !
Thanks a ton Dr. Wolf!
Thanks a bunch Alan!
Thaks very much dear Wolf.
Thaks very much dear Wolf.
To Tak120 -- the program produces an output file. That file shows the convergence (hopefully!) of the exponent as orbital divergence is tracked through more and more of the input data file/time series.
Thanks dear Wolf for this excellent code,
but i have a question : how can i find the result of Lyapunov Exponent from your code?
Thank you again !
Thanks Dr. Alan .... the program is amazing.... I just have a simple notice, so a sub-file, Data.lor, should be Data2.lor inside a main program, testbench.m, in order to run..... again thank you....
Ammar M Dukhan
PhD student at QUT
Please improve the documentation for this program. It is not very clear what the input/output arguments are.
There is nothing wrong with the code that I am aware of. If questions, feel free to email me at firstname.lastname@example.org
Could you please give us the correct code.
It has just been converted to Matlab with several syntax errors in code.
Documentation added on 3/16/16
clarified meaning of EVOLVE parameter.
10/12/14 -- Added some notes to "documentation.txt" which will probably be sufficient for those who have already used the algorithm. More detailed notes to follow within a week.
Win cash prizes and have your live script featured on our websiteLearn more
Download apps, toolboxes, and other File Exchange content using Add-On Explorer in MATLAB.