sagemath / sage

Main repository of SageMath
https://www.sagemath.org
Other
1.44k stars 479 forks source link

Including code to compute Lyapunov exponents for translation surfaces. #16102

Closed a67c9e2f-a36c-4a8e-80bb-0c82631d944f closed 8 years ago

a67c9e2f-a36c-4a8e-80bb-0c82631d944f commented 10 years ago

Code for studying lyapunov exponents of translation surfaces and their covers.

UPDATE:

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:

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]]

CC: @sagetrac-Fougeroc @videlec

Component: geometry

Keywords: lyapunov_exponents, translation_surfaces, sagedays57

Reviewer: Vincent Delecroix

Issue created by migration from https://trac.sagemath.org/ticket/16102

a67c9e2f-a36c-4a8e-80bb-0c82631d944f commented 10 years ago

Description changed:

--- 
+++ 
@@ -7,6 +7,7 @@

+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]

videlec commented 10 years ago
comment:2

Hi Charles,

Here are some remarks.

About syntax:

General design:

About code:

videlec commented 10 years ago

Reviewer: Vincent Delecroix

7ed8c4ca-6d56-4ae9-953a-41e42b4ed313 commented 10 years ago

Branch pushed to git repo; I updated commit sha1. Last 10 new commits:

20f5170Merge branch 'develop' into lyapunov_exponents
bb60056Merge branch '16102/lyapunov_exponents' into lyapunov_exponents
5a93d69Merge branch 'develop' of trac.sagemath.org:sage into lyapunov_exponents
e2315e7merging with develop
ab009e5removed useless files
e1129fcremove files
ab3a1c4remove file
9a37545remove files
a47c68cInclude test for speed
6172656Merge branch 'integrated_lyapunov' into 16102/lyapunov_exponents
7ed8c4ca-6d56-4ae9-953a-41e42b4ed313 commented 10 years ago

Changed commit from 048431e to 6172656

a67c9e2f-a36c-4a8e-80bb-0c82631d944f commented 10 years ago

Changed author from Fougeroc to Charles Fougeron

a67c9e2f-a36c-4a8e-80bb-0c82631d944f commented 10 years ago

Attachment: compare1100.png

Compare computation of lyapunov exponents wrt number of iteration

a67c9e2f-a36c-4a8e-80bb-0c82631d944f commented 10 years ago

Compare computation of lyapunov exponents wrt number of iteration (zoom)

a67c9e2f-a36c-4a8e-80bb-0c82631d944f commented 10 years ago

Attachment: compare40100.png

Attachment: compare_speed.png

Compare log(T)/nb_iterations for diffrent genus and nb_iterations

a67c9e2f-a36c-4a8e-80bb-0c82631d944f commented 10 years ago
comment:6

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:

7ed8c4ca-6d56-4ae9-953a-41e42b4ed313 commented 10 years ago

Branch pushed to git repo; I updated commit sha1. New commits:

02de200Add computation of lyapunov exponents for orientable cover over quadratic stratum.
227ce37Merge trac.sagemath.org:sage into 16102/lyapunov_exponents
7ed8c4ca-6d56-4ae9-953a-41e42b4ed313 commented 10 years ago

Changed commit from 6172656 to 227ce37

7ed8c4ca-6d56-4ae9-953a-41e42b4ed313 commented 10 years ago

Branch pushed to git repo; I updated commit sha1. New commits:

23ee7e7fix bug
e91fca7fix bug
7ed8c4ca-6d56-4ae9-953a-41e42b4ed313 commented 10 years ago

Changed commit from 227ce37 to e91fca7

a67c9e2f-a36c-4a8e-80bb-0c82631d944f commented 9 years ago

Description changed:

--- 
+++ 
@@ -1,9 +1,18 @@
 Code for studying lyapunov exponents of translation surfaces and their covers.

-TODO:
-* See compatibility with other existing code for interval echanges and strata
-* It seems to work in most of the examples, 
-  there is a bug for zero lyapunov exponents when decomposing in isotropic components :
+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()
+sage: q.lyapunov_exponents_H_plus()
+```
+
+
+BUG:
+* There is a bug for zero lyapunov exponents when decomposing in isotropic components :
a67c9e2f-a36c-4a8e-80bb-0c82631d944f commented 9 years ago

Description changed:

--- 
+++ 
@@ -7,7 +7,14 @@

sage: q = QuadraticStratum([7,1,-1,-1,-1,-1]).components()[0] sage: q.lyapunov_exponents() +[1.0006353514168902,

fchapoton commented 9 years ago
comment:12

does not apply, needs rebase

fchapoton commented 8 years ago

Dependencies: #16159

7ed8c4ca-6d56-4ae9-953a-41e42b4ed313 commented 8 years ago

Changed commit from e91fca7 to f21ab92

7ed8c4ca-6d56-4ae9-953a-41e42b4ed313 commented 8 years ago

Branch pushed to git repo; I updated commit sha1. New commits:

f21ab92Merge branch 'develop' into lyapunov
videlec commented 8 years ago
comment:15

I guess that we should close this ticket with mileston "wontfix" as I did with the other tickets #14683, #16159, #16170, #16169. This means that the ticket would be closed without integrating the branch into Sage.

fchapoton commented 8 years ago
comment:16

Vincent, do you confirm this should be closed as invalid ?

videlec commented 8 years ago

Changed dependencies from #16159 to none

videlec commented 8 years ago
comment:17

Yes! Charles' code is now part of the package surface_dynamics (see #20695).

videlec commented 8 years ago

Changed branch from u/Fougeroc/Lyapunov_exponents_for_translation_surfaces to none

videlec commented 8 years ago

Changed author from Charles Fougeron to none

videlec commented 8 years ago

Changed commit from f21ab92 to none

embray commented 8 years ago
comment:19

Determined to be invalid/duplicate/wontfix (closing as "wontfix" as a catch-all resolution).