Opened 5 years ago

Closed 3 years ago

#16102 closed task (wontfix)

Including code to compute Lyapunov exponents for translation surfaces.

Reported by: Fougeroc Owned by:
Priority: major Milestone: sage-duplicate/invalid/wontfix
Component: geometry Keywords: lyapunov_exponents, translation_surfaces, geometry, sagedays57
Cc: Fougeroc, vdelecroix Merged in:
Authors: Reviewers: Vincent Delecroix
Report Upstream: N/A Work issues:
Branch: Commit:
Dependencies: Stopgaps:

Description (last modified by Fougeroc)

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)

compare1_100_.png (24.7 KB) - added by Fougeroc 5 years ago.
Compare computation of lyapunov exponents wrt number of iteration
compare40_100_.png (27.9 KB) - added by Fougeroc 5 years ago.
Compare computation of lyapunov exponents wrt number of iteration (zoom)
compare_speed.png (54.1 KB) - added by Fougeroc 5 years ago.
Compare log(T)/nb_iterations for diffrent genus and nb_iterations

Download all attachments as: .zip

Change History (22)

comment:1 Changed 5 years ago by Fougeroc

  • Description modified (diff)

comment:2 Changed 5 years ago by vdelecroix

  • Reviewers set to Vincent Delecroix

Hi Charles,

Here are some remarks.

About syntax:

  • remove trailing whitespaces
  • documentation lines should be at most 80 characters long
  • all functions and methods must have an EXAMPLES block. In order to see how much work you have to do, you can use sage -coverage MY_FILE.
  • The block RETURN should be OUTPUT

General design:

  • It would be more coherent to have an object "covering of stratum". In a concrete way it would be a permutation of interval exchange (that may be considered as a marking) together with a covering data. We do not care that much about a concrete interval exchange in your code.
  • avoid using import from sage.all, to know from which module you need to import an object you can use import_statements(MY_OBJECT). For more info look at import_statements?.

About code:

  • there are already several things in Sage for interval exchange transformations and strata. It would be simpler to use them.
  • you must put a comment about precision = 128 and diff_sum_seuil = 2**(-precision+20). Even better, remove them.
  • in order to fit nicely with other components of Sage, you should separate the code (like your class IntExchange) and the examples (like the functions EKZ_example).

comment:3 Changed 5 years ago by vbraun_spam

  • Milestone changed from sage-6.2 to sage-6.3

comment:4 Changed 5 years ago by git

  • Commit changed from 048431e8b786dd92e21b59620c8863482a90f970 to 61726567f284b07d4f7495081d9856d70c0974d9

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

comment:5 Changed 5 years ago by Fougeroc

  • Authors changed from Fougeroc to Charles Fougeron

Changed 5 years ago by Fougeroc

Compare computation of lyapunov exponents wrt number of iteration

Changed 5 years ago by Fougeroc

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

Changed 5 years ago by Fougeroc

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

comment:6 Changed 5 years ago by Fougeroc

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.

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

This behaviour seems to be responsible for a wrong approximation of lyapunov exponents asymptotically:

Compare computation of lyapunov exponents wrt number of iteration

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

comment:7 Changed 5 years ago by vbraun_spam

  • Milestone changed from sage-6.3 to sage-6.4

comment:8 Changed 4 years ago by git

  • Commit changed from 61726567f284b07d4f7495081d9856d70c0974d9 to 227ce37ff7b217a5671ce332c519ac2f670adfd6

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

comment:9 Changed 4 years ago by git

  • Commit changed from 227ce37ff7b217a5671ce332c519ac2f670adfd6 to e91fca75a50a1f229b183604958da47ecf801ec6

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

23ee7e7fix bug
e91fca7fix bug

comment:10 Changed 4 years ago by Fougeroc

  • Description modified (diff)
  • Status changed from new to needs_review

comment:11 Changed 4 years ago by Fougeroc

  • Description modified (diff)

comment:12 Changed 4 years ago by chapoton

  • Status changed from needs_review to needs_work

does not apply, needs rebase

comment:13 Changed 3 years ago by chapoton

  • Dependencies set to #16159

comment:14 Changed 3 years ago by git

  • Commit changed from e91fca75a50a1f229b183604958da47ecf801ec6 to f21ab9277f8f374e602bdaec3a94c77c57b087dd

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

f21ab92Merge branch 'develop' into lyapunov

comment:15 Changed 3 years ago by vdelecroix

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.

comment:16 Changed 3 years ago by chapoton

  • Milestone changed from sage-6.4 to sage-duplicate/invalid/wontfix
  • Status changed from needs_work to needs_review

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

comment:17 Changed 3 years ago by vdelecroix

  • Authors Charles Fougeron deleted
  • Branch u/Fougeroc/Lyapunov_exponents_for_translation_surfaces deleted
  • Commit f21ab9277f8f374e602bdaec3a94c77c57b087dd deleted
  • Dependencies #16159 deleted

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

comment:18 Changed 3 years ago by chapoton

  • Status changed from needs_review to positive_review

comment:19 Changed 3 years ago by embray

  • Resolution set to wontfix
  • Status changed from positive_review to closed

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

Note: See TracTickets for help on using tickets.