Lyapunov exponent function submitted by community

It seems this funcftion only takes Ordinary Differential Equations (ODE). I have experimental data. how can I use it with data, instead of ODE

7 commentaires

Sam Chak
Sam Chak le 14 Juin 2022
I'm trying to comprehend. Shouldn't your title be revised to "How to obtain Lyapunov exponent from experimental time series?"?
Jan
Jan le 14 Juin 2022
Do you mean a specific function in the FileExchange? If so, which one?
Probably https://www.mathworks.com/matlabcentral/fileexchange/4628-calculation-lyapunov-exponents-for-ode which is just one of the Lyapunov calculators in the File Exchange.
Walter Roberson
Walter Roberson le 15 Juin 2022
Modifié(e) : Walter Roberson le 15 Juin 2022
https://ideas.repec.org/c/boc/bocode/t741502.html
https://m.youtube.com/watch?v=I4rscPXUYFk
http://freesourcecode.net/matlabprojects/60648/calculates-full-spectrum-of-lyapunov-exponents-or-k-first-exponents--in-matlab
Torsten
Torsten le 15 Juin 2022
Modifié(e) : Torsten le 15 Juin 2022
@Don comment moved here:
Were gaining on it!
The function i'm interested in has been submitted by the COMMUNITY:
MathWorks FileExchange website for community implementations of Lyapunov Exponent calculations. https://www.mathworks.com/matlabcentral/fileexchange/4628-calculation-lyapunov-exponents-for-ode
However, this one apparently works with ODE
I have experimental data. I need one that works with a data file. There is one in the Predictive Maintenance Toolbox, but that costs a lot of money and I have no use for the rest of the toolbox.
is tit possible to find a community supplied function that will work with data??
Don
Don le 15 Juin 2022
Thank you Thank you Thank you I think this might get it

Connectez-vous pour commenter.

 Réponse acceptée

Hi @Don
If your experimental data is not large, then you can test lyapunovExponent() here to see if it works for your case.
% Parameters
sigma = 10;
beta = 8/3;
rho = 28;
% Lorenz System
f = @(t, x) [-sigma*x(1) + sigma*x(2); ...
rho*x(1) - x(2) - x(1)*x(3); ...
-beta*x(3) + x(1)*x(2)];
tspan = linspace(0, 88, 8801);
init = [1 1 1];
[t, x] = ode45(f, tspan, init);
plot3(x(:,1), x(:,2), x(:,3)), view(45, 30)
% Characterize the rate of separation of infinitesimally close trajectories
xdata = x(:,1);
fs = 10;
dim = 3;
[~, lag] = phaseSpaceReconstruction(xdata, [], dim);
eRange = 50;
lyapunovExponent(xdata, fs, lag, dim, 'ExpansionRange', eRange)

Plus de réponses (0)

Catégories

Produits

Version

R2022a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by