# Lyapunov exponents (comparison)¶

Lyapunov parallel computation for MCF algorithms

slabbe.lyapunov.lyapunov_comparison_table(L, n_orbits=100, n_iterations=10000)

Return a table of values of Lyapunov exponents for many algorithm.

INPUT:

• L – list of algorithms
• n_orbits – integer
• n_iterations – integer

OUTPUT:

table

EXAMPLES:

sage: import slabbe.mult_cont_frac as mcf
sage: from slabbe.lyapunov import lyapunov_comparison_table
sage: algos = [mcf.Brun(), mcf.ARP()]
sage: lyapunov_comparison_table(algos)    # abs tol 0.01
Algorithm                 \#Orbits   $\theta_1$ (std)   $\theta_2$ (std)   $1-\theta_2/\theta_1$ (std)
+-------------------------+----------+------------------+------------------+-----------------------------+
Arnoux-Rauzy-Poincar\'e   100        0.44 (0.012)       -0.172 (0.0060)    1.388 (0.0054)
Brun                      100        0.30 (0.011)       -0.113 (0.0049)    1.370 (0.0070)

slabbe.lyapunov.lyapunov_sample(algo, n_orbits, n_iterations=1000, verbose=False)

Return lists of values for theta1, theta2 and 1-theta2/theta1 computed on many orbits.

This is computed in parallel.

INPUT:

• n_orbits – integer, number of orbits
• n_iterations – integer, length of each orbit
• verbose – bool (default: False)

OUTPUT:

tuple of three lists

EXAMPLES:

sage: from slabbe.lyapunov import lyapunov_sample
sage: from slabbe.mult_cont_frac import Brun
sage: lyapunov_sample(Brun(), 5, 1000000) # abs tol 0.01
[(0.3027620661266397,
0.3033468535021702,
0.3044950176856005,
0.3030531162480779,
0.30601169862996064),
(-0.11116236859835525,
-0.11165563059874498,
-0.1122595926203868,
-0.11190323336181864,
-0.11255687513610782),
(1.367160820443926,
1.3680790794750939,
1.3686746452327765,
1.3692528714016428,
1.3678188632657973)]

slabbe.lyapunov.lyapunov_table(algo, n_orbits, n_iterations=1000)

Return a table of values of Lyapunov exponents for this algorithm.

INPUT:

• n_orbits – integer, number of orbits
• n_iterations – integer, length of each orbit

OUTPUT:

table of liapounov exponents

EXAMPLES:

sage: from slabbe.mult_cont_frac import Brun
sage: from slabbe.lyapunov import lyapunov_table
sage: lyapunov_table(Brun(), 10, 1000000) # random
10 succesful orbits     min       mean      max       std
+-----------------------+---------+---------+---------+---------+
$\theta_1$              0.303     0.305     0.307     0.0013
$\theta_2$              -0.1131   -0.1124   -0.1115   0.00051
$1-\theta_2/\theta_1$   1.3678    1.3687    1.3691    0.00043