Arrowsmith-Place map


Author: GC

Date: June 20, 2016

Next 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()


Next Chirikov map