File Exchange

image thumbnail

Lyapunov exponent estimation from a time series. Documentation added.

version (2.49 MB) by Alan Wolf
A Matlab version of the Lyapunov exponent estimation algorithm of Wolf et al. -- Physica 16D, 1985.


Updated 16 Mar 2016

View License

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.

Comments and Ratings (57)


Alan Wolf

If you have questions, PLEASE DON'T POST THEM HERE. Please write me directly at the email address contained in this download:
Thanks. Alan Wolf

Thank You Very Much!

Aaron Best

Dr. Wolf,

Thank you for these functions it is incredibly helpful. I am attempting to use it for a bio mechanics analysis of gait and I am receiving issues with the code. I was hoping that I would be able to ask you for some help with the implementation of the code. I was hoping we could use email to communicate so we don't clutter up the rating section my email is Thank you so much once again.


Many thanks for your kindly reply.

Alan Wolf

Section 5.2 of the Physica D paper notes that I DID write a code for (lambda 1 + lambda 2) from exptl. data, but it wasn't included in the paper because there are a few ADDITIONAL parameters. I didn't (and now, many years later still don't) trust many people to test that their estimates for lambda 1 were stable with over wide parameter variations, so I didn't generally distribute the L1+L2 code. I've seen too many people use data sets far too small, far too short, clearly high dimensional... It's a form of abuse that people don't talk about... algorithm abuse!

Thank you Prof. Wolf for your answer. I want to tell you that if I have the solution of the hyperchaotic attractor as data, not equations and I want to have the Lyapunov exponents. Can I get it with your program?

Alan Wolf

For hyperchaotic rossler -- please read my Physica D paper. It contains 2 algorithms. One is for experimental data (a 1-D time series). You don't want that code. Use the other program, which is for sets of differential equations and computes the COMPLETE spectrum of exponents, positive and negative. You will have to insert the differential equations into the code before compiling and also linearize the equations by hand (very straightforward).

Dear Prof. Wolf
Thank you for your great work. I would like to ask you if I have the time series of Hyperchaotic Rossler, how can I get the two positive Lyapunov exponents from this program.


Naw Nem

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

Alan Wolf

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


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?

somia ilyas

Thank you so much, Sir

it's very good !!!

mh oly

Ovee Matlab

jose monroy

Alan Wolf

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.

Ali Ahmadi

Ali Ahmadi

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 ?

Alan Wolf

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.

Ali Ahmadi

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 )

Alan Wolf

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.

Jiang Benny

Why cannot I get a negative Lyapunov exponent from this program?

Max Murphy



liu peng


Thanks very much Dr. Wolf.

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


faraz edadi


Thaks very much dear Wolf.

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

Best Regards,
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.

Alan Wolf

There is nothing wrong with the code that I am aware of. If questions, feel free to email me at

Alan Wolf


Dear Predrag,
Could you please give us the correct code.
Thank you


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.

MATLAB Release Compatibility
Created with R2014b
Compatible with any release
Platform Compatibility
Windows macOS Linux

Discover Live Editor

Create scripts with code, output, and formatted text in a single executable document.

Learn About Live Editor