ndarray-odeint has calculator of Covariant Lyapunov Vector (CLV). The algorithm of CLV has introduced in Ginelli et al. PRL(2007) to analyze collective motions.
%matplotlib inline
import pandas as pd
import matplotlib.pyplot as plt
import numpy as np
A sample script for calculate CLV of Lorenz 63 model is placed at examples/clv.rs
! cargo run --release --example clv > clv.csv
Finished release [optimized] target(s) in 0.0 secs Running `target/release/examples/clv` exponents = [0.9056117985793435, -0.0007306233624250147, -14.572558554870295] shape=[3], strides=[1], layout=C | F (0x3)
df = np.arccos(pd.read_csv("clv.csv"))
/usr/lib/python3.6/site-packages/ipykernel/__main__.py:1: RuntimeWarning: invalid value encountered in arccos if __name__ == '__main__':
for col in df.columns:
plt.figure()
plt.title(col)
df[col].hist(bins=100)
plt.xlim(0, np.pi)
plt.yscale("log")