Calculation Lyapunov Exponents for ODE
Lyapunov exponent calcullation for ODE-system. The alogrithm employed in this m-file for determining Lyapunov exponents was proposed in A. Wolf, J. B. Swift, H. L. Swinney, and J. A. Vastano, "Determining Lyapunov Exponents from a Time Series," Physica D, Vol. 16, pp. 285-317, 1985.
For integrating ODE system can be used any MATLAB ODE-suite methods.
This function is a part of MATDS program - toolbox for dynamical system investigation
See: http://www.math.rsu.ru/mexmat/kvm/matds/
Input parameters:
n - number of equation
rhs_ext_fcn - handle of function with right hand side of extended ODE-system. This function must include RHS of ODE-system coupled with variational equation (n items of linearized systems, see Example).
fcn_integrator - handle of ODE integrator function, for example: @ode45
tstart - start values of independent value (time t)
stept - step on t-variable for Gram-Schmidt renormalization procedure.
tend - finish value of time
ystart - start point of trajectory of ODE system.
ioutp - step of print to MATLAB main window. ioutp==0 - no print, if ioutp>0 then each ioutp-th point will be print.
Output parameters:
Texp - time values
Lexp - Lyapunov exponents to each time value.
Users have to write their own ODE functions for their specified systems and use handle of this function as rhs_ext_fcn - parameter.
Example. Lorenz system:
dx/dt = sigma*(y - x)
dy/dt = r*x - y - x*z
dz/dt = x*y - b*z
The Jacobian of system:
| -sigma sigma 0 |
J = | r-z -1 -x |
| y x -b |
Then, the variational equation has a form:
F = J*Y
where Y is a square matrix with the same dimension as J.
Corresponding m-file:
function f=lorenz_ext(t,X)
SIGMA = 10; R = 28; BETA = 8/3;
x=X(1); y=X(2); z=X(3);
Y= [X(4), X(7), X(10);
X(5), X(8), X(11);
X(6), X(9), X(12)];
f=zeros(9,1);
f(1)=SIGMA*(y-x);
f(2)=-x*z+R*x-y;
f(3)=x*y-BETA*z;
Jac=[-SIGMA,SIGMA,0;
R-z,-1,-x; y, x,-BETA];
f(4:12)=Jac*Y;
% Run Lyapunov exponent calculation:
[T,Res]=lyapunov(3,@lorenz_ext,@ode45,0,0.5,200,[0 1 0],10);
See files: lyapunov.m - algorithm
lorenz_ext - Lorenz system extended rhs
run_lyap - example of calling and result visualization
Govorukhin V.N.
This file is intended for use with MATLAB and was produced for MATDS-program http://www.math.rsu.ru/mexmat/kvm/matds/
lyapunov.m is free software. lyapunov.m is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY.
Cite As
Vasiliy Govorukhin (2024). Calculation Lyapunov Exponents for ODE (https://www.mathworks.com/matlabcentral/fileexchange/4628-calculation-lyapunov-exponents-for-ode), MATLAB Central File Exchange. Retrieved .
MATLAB Release Compatibility
Platform Compatibility
Windows macOS LinuxCategories
- Control Systems > Control System Toolbox > Matrix Computations >
- MATLAB > Mathematics > Numerical Integration and Differential Equations > Ordinary Differential Equations >
Tags
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!Discover Live Editor
Create scripts with code, output, and formatted text in a single executable document.
Version | Published | Release Notes | |
---|---|---|---|
1.0.0.0 |