Opened 9 years ago
Closed 6 years ago
#16102 closed task (wontfix)
Including code to compute Lyapunov exponents for translation surfaces.
Reported by:  Charles Fougeron  Owned by:  

Priority:  major  Milestone:  sageduplicate/invalid/wontfix 
Component:  geometry  Keywords:  lyapunov_exponents, translation_surfaces, geometry, sagedays57 
Cc:  Charles Fougeron, Vincent Delecroix  Merged in:  
Authors:  Reviewers:  Vincent Delecroix  
Report Upstream:  N/A  Work issues:  
Branch:  Commit:  
Dependencies:  Stopgaps: 
Description (last modified by )
Code for studying lyapunov exponents of translation surfaces and their covers.
UPDATE:
 See compatibility with other existing code for interval echanges and strata compatible with code for quadratic and abelian stratum components
sage: q = QuadraticStratum([7,1,1,1,1,1]).components()[0] sage: q.lyapunov_exponents() [1.0006353514168902, 0.44659813628011014, 0.43073741652656045, 0.2278515712988079, 0.18675189999010267, 0.07722243283694208] sage: q.lyapunov_exponents_H_plus() [0.44777037675789444, 0.185001855706418]
BUG:
 There is a bug for zero lyapunov exponents when decomposing in isotropic components :
sage: import sage.dynamics.flat_surfaces.lyapunov_exponents.interval_exchange as intex sage: R = intex.cyclic_cover_iet(4, [1, 1, 1, 1]) sage: R.lyapunov_exponents_H_plus() [0.9996553085103, 0.0007776980910571506, 0.00022201024035355403] sage: R.lyapunov_exponents_H_plus_isotopic() [[], [1.0002381322489762], [0.09753642448496574], [0.09750440918016302]]
Attachments (3)
Change History (22)
comment:1 Changed 9 years ago by
Description:  modified (diff) 

comment:2 Changed 9 years ago by
Reviewers:  → Vincent Delecroix 

comment:3 Changed 9 years ago by
Milestone:  sage6.2 → sage6.3 

comment:4 Changed 8 years ago by
Commit:  048431e8b786dd92e21b59620c8863482a90f970 → 61726567f284b07d4f7495081d9856d70c0974d9 

Branch pushed to git repo; I updated commit sha1. Last 10 new commits:
20f5170  Merge branch 'develop' into lyapunov_exponents

bb60056  Merge branch '16102/lyapunov_exponents' into lyapunov_exponents

5a93d69  Merge branch 'develop' of trac.sagemath.org:sage into lyapunov_exponents

e2315e7  merging with develop

ab009e5  removed useless files

e1129fc  remove files

ab3a1c4  remove file

9a37545  remove files

a47c68c  Include test for speed

6172656  Merge branch 'integrated_lyapunov' into 16102/lyapunov_exponents

comment:5 Changed 8 years ago by
Authors:  Fougeroc → Charles Fougeron 

Changed 8 years ago by
Attachment:  compare1_100_.png added 

Compare computation of lyapunov exponents wrt number of iteration
Changed 8 years ago by
Attachment:  compare40_100_.png added 

Compare computation of lyapunov exponents wrt number of iteration (zoom)
Changed 8 years ago by
Attachment:  compare_speed.png added 

Compare log(T)/nb_iterations for diffrent genus and nb_iterations
comment:6 Changed 8 years ago by
I updated the code which integrate the computation of lyapunov exponents for quadratic strata. You can now use the function :
stratum_component = QuadraticStratum([1]*8 + [1]*4).components()[0] stratum_component.orientable_cover().lyapunov_exponents_H_plus()
I noticed a strange behaviour while doing some computeur simulations for asymptotic of lyapunov exponents. When genus is getting bigger (and consequently the number of intervals), the speed is decreasing. While increasing the number of iteration, log(t)/n is also increasing. A surprising behaviour (possibly due to float approximation) is that the there is a limit value for this function for a large value of genus.
This behaviour seems to be responsible for a wrong approximation of lyapunov exponents asymptotically:
comment:7 Changed 8 years ago by
Milestone:  sage6.3 → sage6.4 

comment:8 Changed 8 years ago by
Commit:  61726567f284b07d4f7495081d9856d70c0974d9 → 227ce37ff7b217a5671ce332c519ac2f670adfd6 

comment:9 Changed 8 years ago by
Commit:  227ce37ff7b217a5671ce332c519ac2f670adfd6 → e91fca75a50a1f229b183604958da47ecf801ec6 

comment:10 Changed 8 years ago by
Description:  modified (diff) 

Status:  new → needs_review 
comment:11 Changed 8 years ago by
Description:  modified (diff) 

comment:13 Changed 7 years ago by
Dependencies:  → #16159 

comment:14 Changed 7 years ago by
Commit:  e91fca75a50a1f229b183604958da47ecf801ec6 → f21ab9277f8f374e602bdaec3a94c77c57b087dd 

Branch pushed to git repo; I updated commit sha1. New commits:
f21ab92  Merge branch 'develop' into lyapunov

comment:15 Changed 7 years ago by
comment:16 Changed 6 years ago by
Milestone:  sage6.4 → sageduplicate/invalid/wontfix 

Status:  needs_work → needs_review 
Vincent, do you confirm this should be closed as invalid ?
comment:17 Changed 6 years ago by
Authors:  Charles Fougeron 

Branch:  u/Fougeroc/Lyapunov_exponents_for_translation_surfaces 
Commit:  f21ab9277f8f374e602bdaec3a94c77c57b087dd 
Dependencies:  #16159 
Yes! Charles' code is now part of the package surface_dynamics
(see #20695).
comment:18 Changed 6 years ago by
Status:  needs_review → positive_review 

comment:19 Changed 6 years ago by
Resolution:  → wontfix 

Status:  positive_review → closed 
Determined to be invalid/duplicate/wontfix (closing as "wontfix" as a catchall resolution).
Hi Charles,
Here are some remarks.
About syntax:
sage coverage MY_FILE
.General design:
sage.all
, to know from which module you need to import an object you can useimport_statements(MY_OBJECT)
. For more info look atimport_statements?
.About code:
precision = 128
anddiff_sum_seuil = 2**(precision+20)
. Even better, remove them.IntExchange
) and the examples (like the functionsEKZ_example
).