Arrowsmith-Place map

Author: GC

Date: June 20, 2016

Chirikov map

The Arrowsmith-Place map is a discrete dynamical system, defined by: $\begin{cases} x_{n+1} = x_n + y_n + a x_n (x_n-1) \\ y_{n+1} = y_n + a x_n (x_n-1) \end{cases}.$ It admits homoclinic orbits with a Smale horseshoe structure.

Arrowsmith-Place map

Source code

#!/usr/bin/env python3

"""
A program to compute Arrowsmith-Place map
"""

# Scientific libraries
from matplotlib import pyplot as plt
import numpy as np

# parameters
a = 1.5
X = []
Y = []
invX = []
invY = []

# Arrowsmith-Place map
def f(x, y):
return [x+y+a*x*(x-1), y+a*x*(x-1)]

def invf(x, y):
return [x-y, y - a*(x-y)*(x-y-1)]

u = 0
eps = 0.001
for i in range(300):
u = u-eps
v = u*(-a+(a*(4+a))**0.5)/2
x, y = 1+u, v
for j in range(10):
x, y = f(x, y)
X = X + [x]
Y = Y + [y]

u = -0.03
eps = 0.0001
for i in range(300):
u = u+eps
v = u*(-a-(a*(4+a))**0.5)/2
x, y = 1+u, v
for j in range(10):
x, y = invf(x, y)
invX = invX + [x]
invY = invY + [y]

# figure
fig, ax = plt.subplots(figsize=(12,8))
ax.scatter(X, Y, s=0.1, color='r')
ax.scatter(invX, invY, s=0.1, color='b')
ax.set_xlim(-1, 1.5)
ax.set_ylim(-1.5, 1)
ax.spines['right'].set_visible(False)
ax.spines['top'].set_visible(False)
ax.yaxis.set_ticks_position('left')
ax.xaxis.set_ticks_position('bottom')
plt.show()


Chirikov map