Ikeda map

Short description: Chaotic map with a strange attractor

This article may be too technical for most readers to understand. Please help improve it to make it understandable to non-experts, without removing the technical details. (June 2016) (Learn how and when to remove this template message)

|

The trajectories of 2000 random points in an Ikeda map with u = 0.918.

In chaos theory, the Ikeda map is a discrete-time dynamical system that produces a strange attractor. It was introduced in 1979 by the physicist Kensuke Ikeda as a model for the behavior of light within a nonlinear optical resonator.[1] The map demonstrates how a simple set of rules can lead to complex, chaotic behavior through a process of repeated rotation, scaling, and translation—a "stretch and fold" operation common in chaotic systems.

The map is defined by an iterative function on the complex plane. For a given complex number zn, the next value is calculated as:zn+1=A+Bznei(|zn|2+C)Here, zn represents the electric field in the resonator at step n. The parameters A and C relate to the external laser light and the phase of the system, while B (where B≤1) is a dissipation parameter representing energy loss in the resonator.[2]

A commonly studied real-valued version of the map is given by the two-dimensional equations:xn+1=1+u(xncos⁡tn−ynsin⁡tn),yn+1=u(xnsin⁡tn+yncos⁡tn),where u is a parameter andtn=0.4−61+xn2+yn2.For values of the parameter u≥0.6, this system exhibits chaotic behavior, generating the characteristic fractal attractor shown in the article's images.

## Contents

* 1 Attractor
* 2 Point trajectories
* 2.1 Octave/MATLAB code for point trajectories
* 2.2 Python code for point trajectories
* 3 References

## Attractor

This animation shows how the attractor of the system changes as the parameter u is varied from 0.0 to 1.0 in steps of 0.01. The Ikeda dynamical system is simulated for 500 steps, starting from 20,000 randomly placed starting points. The last 20 points of each trajectory are plotted to depict the attractor. Note the bifurcation of attractor points as u is increased.

u=0.3 |  u=0.5

|

u=0.7 |  u=0.9

## Point trajectories

The plots below show trajectories of 200 random points for various values of u. The inset plot on the left shows an estimate of the attractor while the inset on the right shows a zoomed in view of the main trajectory plot.

u = 0.1 |  u = 0.5 |  u = 0.65

|
|

u = 0.7 |  u = 0.8 |  u = 0.85
u = 0.9 |  u = 0.908 |  u = 0.92

### Octave/MATLAB code for point trajectories

File:Ikeda-map-iterations.webm The Octave/MATLAB code to generate these plots is given below:

% u = ikeda parameter
% option = what to plot
%  'trajectory' - plot trajectory of random starting points
%  'limit' - plot the last few iterations of random starting points
function ikeda(u, option)
P = 200; % how many starting points
N = 1000; % how many iterations
Nlimit = 20; % plot these many last points for 'limit' option

x = randn(1, P) * 10; % the random starting points
y = randn(1, P) * 10;

for n = 1:P,
X = compute_ikeda_trajectory(u, x(n), y(n), N);

switch option
case 'trajectory' % plot the trajectories of a bunch of points
plot_ikeda_trajectory(X); hold on;

case 'limit'
plot_limit(X, Nlimit); hold on;

otherwise
disp('Not implemented');
end
end

axis tight; axis equal
text(- 25, - 15, ['u = ' num2str(u)]);
text(- 25, - 18, ['N = ' num2str(N) ' iterations']);
end

% Plot the last n points of the curve - to see end point or limit cycle
function plot_limit(X, n)
plot(X(end - n:end, 1), X(end - n:end, 2), 'ko');
end

% Plot the whole trajectory
function plot_ikeda_trajectory(X)
plot(X(:, 1), X(:, 2), 'k');
% hold on; plot(X(1,1), X(1,2), 'bo', 'markerfacecolor', 'g'); hold off
end

% u is the ikeda parameter
% x,y is the starting point
% N is the number of iterations
function [X] = compute_ikeda_trajectory(u, x, y, N)
X = zeros(N, 2);
X(1, :) = [x y];

for n = 2:N

t = 0.4 - 6 / (1 + x ^ 2 + y ^ 2);
x1 = 1 + u * (x * cos(t) - y * sin(t));
y1 = u * (x * sin(t) + y * cos(t));
x = x1;
y = y1;

X(n, :) = [x y];
end
end

### Python code for point trajectories

import math

import matplotlib.pyplot as plt
import numpy as np

def main(u: float, points=200, iterations=1000, nlim=20, limit=False, title=True):
"""
Args:
u:float
ikeda parameter
points:int
number of starting points
iterations:int
number of iterations
nlim:int
plot these many last points for 'limit' option. Will plot all points if set to zero
limit:bool
plot the last few iterations of random starting points if True. Else Plot trajectories.
title:[str, NoneType]
display the name of the plot if the value is affirmative
"""

x = 10 * np.random.randn(points, 1)
y = 10 * np.random.randn(points, 1)

for n in range(points):
X = compute_ikeda_trajectory(u, x[n][0], y[n][0], iterations)

if limit:
plot_limit(X, nlim)
tx, ty = 2.5, -1.8

else:
plot_ikeda_trajectory(X)
tx, ty = -30, -26

plt.title(f"Ikeda Map ({u=:.2g}, {iterations=})") if title else None
return plt

def compute_ikeda_trajectory(u: float, x: float, y: float, N: int):
"""Calculate a full trajectory

Args:
u - is the ikeda parameter
x, y - coordinates of the starting point
N - the number of iterations

Returns:
An array.
"""
X = np.zeros((N, 2))

for n in range(N):
X[n] = np.array((x, y))

t = 0.4 - 6 / (1 + x ** 2 + y ** 2)
x1 = 1 + u * (x * math.cos(t) - y * math.sin(t))
y1 = u * (x * math.sin(t) + y * math.cos(t))

x = x1
y = y1

return X

def plot_limit(X, n: int) -> None:
"""
Plot the last n points of the curve - to see end point or limit cycle

Args:
X: np.array
trajectory of an associated starting-point
n: int
number of "last" points to plot
"""
plt.plot(X[-n:, 0], X[-n:, 1], 'ko')

def plot_ikeda_trajectory(X) -> None:
"""
Plot the whole trajectory

Args:
X: np.array
trajectory of an associated starting-point
"""
plt.plot(X[:,0], X[:, 1], "k")

if __name__ == "__main__":
main(0.9, limit=True, nlim=0).show()

## References

1. ↑ Ikeda, Kensuke (1979). "Multiple-valued stationary state and its instability of the transmitted light by a ring cavity system". Optics Communications (Elsevier BV) 30 (2): 257–261. doi:10.1016/0030-4018(79)90090-7. ISSN 0030-4018. Bibcode: 1979OptCo..30..257I.
2. ↑ Ikeda, K.; Daido, H.; Akimoto, O. (1980-09-01). "Optical Turbulence: Chaotic Behavior of Transmitted Light from a Ring Cavity". Physical Review Letters (American Physical Society (APS)) 45 (9): 709–712. doi:10.1103/physrevlett.45.709. ISSN 0031-9007. Bibcode: 1980PhRvL..45..709I.

* v
* t
* e

Chaos theory

Chaos theory|

* Anosov diffeomorphism
* Bifurcation theory
* Butterfly effect
* Chaos theory in organizational development
* Complexity
* Control of chaos
* Dynamical system
* Edge of chaos
* Fractal
* Predictability
* Quantum chaos
* Santa Fe Institute
* Synchronization of chaos
* Unintended consequences

Chaotic maps
(list)|

* Arnold tongue
* Arnold's cat map
* Baker's map
* Complex quadratic map
* Complex squaring map
* Coupled map lattice
* Double pendulum
* Double scroll attractor
* Duffing equation
* Duffing map
* Dyadic transformation
* Dynamical billiards
* outer
* Elastic pendulum
* Exponential map
* Gauss map
* Gingerbreadman map
* Hénon map
* Horseshoe map
* Ikeda map
* Interval exchange map
* Kaplan–Yorke map
* Logistic map
* Lorenz system
* Multiscroll attractor
* Rabinovich–Fabrikant equations
* Rössler attractor
* Standard map
* Swinging Atwood's machine
* Tent map
* Three-body problem
* Tinkerbell map
* Van der Pol oscillator
* Zaslavskii map

Chaos systems|

* Bouncing ball dynamics
* Chua's circuit
* Economic bubble
* FPUT problem
* Tilt-A-Whirl

Chaos theorists|

* Michael Berry
* Mary Cartwright
* Leon O. Chua
* Mitchell Feigenbaum
* Celso Grebogi
* Martin Gutzwiller
* Brosl Hasslacher
* Michel Hénon
* Svetlana Jitomirskaya
* Bryna Kra
* Edward Norton Lorenz
* Aleksandr Lyapunov
* Benoît Mandelbrot
* Hee Oh
* Edward Ott
* Henri Poincaré
* Mary Rees
* Otto Rössler
* David Ruelle
* Caroline Series
* Oleksandr Mykolayovych Sharkovsky
* Nina Snaith
* Floris Takens
* Audrey Terras
* Mary Tsingou
* Amie Wilkinson
* James A. Yorke
* Lai-Sang Young

0.00

(0 votes)

Original source: https://en.wikipedia.org/wiki/Ikeda map. Read more

|

Retrieved from "https://handwiki.org/wiki/index.php?title=Ikeda_map&oldid=3840736"
*[v]: View this template
*[t]: Discuss this template
*[e]: Edit this template