Computing the Lyapunov exponent of the Hénon map with DynamicalSystems.jl

Issue

I am trying to compute the Lyapunov exponent of the Hénon map with b = 0.3 and a = 1.8 but the lyapunov function from DynamicalSystems.jl seems to not converge. Is there something I am doing wrong or is this expected?

Minimal working example

This does not converge:

using DynamicalSystems

henon = Systems.henon(a = 1.75)
λ = lyapunov(henon, 10000, d0 = 1e-7, upper_threshold = 1e-4, Ttr = 100)

This converges very quickly:

henon = Systems.henon(a = 1.)
λ = lyapunov(henon, 10000, d0 = 1e-7, upper_threshold = 1e-4, Ttr = 100)

Hi,

  1. What does “converge” mean?
  2. upper_threshold = 1e-4. Lyapunov exponents are in theory defined for infinitesimal perturbations. You want Δt and threshold to be such that perturbation growth is limited to linearized dynamics. Is this true here?
  3. What is the trajectory of the dynamical system doing for these parameters?

I see:

julia> tr = trajectory(henon, 100; Ttr = 1000)
2-dimensional Dataset{Float64} with 101 points
 -Inf  -Inf
 -Inf  -Inf
 -Inf  -Inf
 -Inf  -Inf
 -Inf  -Inf
 -Inf  -Inf
 -Inf  -Inf
 -Inf  -Inf
 -Inf  -Inf
 -Inf  -Inf
   ⋮
 -Inf  -Inf
 -Inf  -Inf
 -Inf  -Inf
 -Inf  -Inf
 -Inf  -Inf
 -Inf  -Inf
 -Inf  -Inf
 -Inf  -Inf
 -Inf  -Inf

the system goes to infinity for a=1.75

1 Like

Thank you for the quick reply! You are indeed correct, I did not realise the trajectory was diverging for a = 1.75.