Comparing Two Codes for Plotting Maximal Lyapunov Exponent: Which One is Correct?

조회 수: 57 (최근 30일)
Ahmed Yousef
Ahmed Yousef 2024년 12월 20일 16:29
편집: Torsten 2024년 12월 20일 21:34
Hello MATLAB community,
I have been working on calculating and plotting the Maximal Lyapunov Exponent for the Logistic map. I came across two different implementations, and I am unsure which one correctly computes the Lyapunov exponent.
Code 1:
% Parameters for the Logistic Map
r = 3.5; % Parameter 'r'
x0 = 0.1; % Initial condition
v0 = 1; % Initial tangent vector
N = 1000; % Number of iterations to compute the exponent
format long
% Initialize variables
x = x0;
v = v0;
lyapunov = 0;
% Iteration loop
for i = 1:N
% Logistic map equation
xn = r * x * (1 - x);
% Jacobian of the Logistic map
J = r * (1 - 2 * x);
% Update tangent vector
v = J * v;
% Compute norm of the tangent vector
norm_v = abs(v);
% Renormalize the tangent vector
v = v / norm_v;
% Accumulate Lyapunov sum
lyapunov = lyapunov + log(norm_v)
% Update state
x = xn;
end
% Compute the maximal Lyapunov exponent
lyapunov =lyapunov / N;
format long
% Display result
fprintf('Maximal Lyapunov Exponent: %.6f\n', lyapunov);
Code 2:
function LE = LEofLogisticMap( rStart, rEnd, rStep )
rValues = rStart:rStep:rEnd;
nPoints = length( rValues );
nIterations = 1000; % number of iterations
LE = zeros( 1, nPoints );
x = zeros( 1, nIterations + 1 );
x( 1 ) = 0.1;
for k = 1:nPoints
sum = 0;
for i = 1:nIterations
x( i + 1 ) = rValues( k )*x( i )*( 1 - x( i ) );
sum = sum + log( abs( rValues( k ) - 2*rValues( k )*x( i ) ) )
end
LE( k ) = sum / nIterations;
end
rStart = 3.5; % Start value of r
rEnd = 4.0; % End value of r
rStep = 0.01; % Step size
format long
LE = LEofLogisticMap(rStart, rEnd, rStep)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Question:
Both codes compute a Lyapunov exponent using similar steps . However:
  1. In the first code, the tangent vector is renormalized at each step. Is this approach correct?
  2. Do these codes correctly compute the maximal Lyapunov exponent for their respective map?
  3. Is there a universal approach or standard practice that I should follow for these types of calculations?
  4. Are there any potential pitfalls in the logic of either code that I should address?
Thank you for your guidance!
  댓글 수: 6
Ahmed Yousef
Ahmed Yousef 2024년 12월 20일 20:42
@Sam Chak, could you please help clarify this point?
Torsten
Torsten 2024년 12월 20일 21:32
편집: Torsten 2024년 12월 20일 21:34
This computes Lyapunov exponents for given r-values. What is the definition of "Maximal Lyapunov Exponent" ?

댓글을 달려면 로그인하십시오.

답변 (0개)

Community Treasure Hunt

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

Start Hunting!

Translated by