Skip to content

Instantly share code, notes, and snippets.

@profConradi
Created February 18, 2024 19:02
Show Gist options
  • Save profConradi/b414c4407654b3f3ec7884da8a1df996 to your computer and use it in GitHub Desktop.
Save profConradi/b414c4407654b3f3ec7884da8a1df996 to your computer and use it in GitHub Desktop.
Liapunov exponent
n_points = 3000
n_iter = 500
delta = 0.00001
a, b = np.meshgrid(np.linspace(np.pi/2, 3*np.pi/2, n_points), np.linspace(0, np.pi, n_points))
x = np.zeros(a.shape, dtype=np.float64)
y = np.zeros(a.shape, dtype=np.float64)
x_delta = np.zeros(a.shape, dtype=np.float64)+delta
y_delta = np.zeros(a.shape, dtype=np.float64)
lyapunov = np.zeros(a.shape, dtype=np.float64)
for i in range(n_iter):
x, y = np.sin(x**2 - y**2 + a), np.cos(2*x*y + b)
x_delta, y_delta = np.sin(x_delta**2 - y_delta**2 + a), np.cos(2*x_delta*y_delta + b)
d = np.sqrt((x_delta-x)**2+(y_delta-y)**2)/delta
lyapunov += np.log2(d)
x_delta = x + (x_delta-x)/d
y_delta = y + (y_delta-y)/d
lyapunov = lyapunov/n_iter
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment