Ikeda Map
   HOME

TheInfoList



OR:

In
physics Physics is the natural science that studies matter, its fundamental constituents, its motion and behavior through space and time, and the related entities of energy and force. "Physical science is that department of knowledge which r ...
and
mathematics Mathematics is an area of knowledge that includes the topics of numbers, formulas and related structures, shapes and the spaces in which they are contained, and quantities and their changes. These topics are represented in modern mathematics ...
, the Ikeda map is a discrete-time
dynamical system In mathematics, a dynamical system is a system in which a Function (mathematics), function describes the time dependence of a Point (geometry), point in an ambient space. Examples include the mathematical models that describe the swinging of a ...
given by the complex map : z_ = A + B z_n e^ The original map was proposed first by Kensuke Ikeda as a model of light going around across a nonlinear optical resonator ( ring cavity containing a
nonlinear In mathematics and science, a nonlinear system is a system in which the change of the output is not proportional to the change of the input. Nonlinear problems are of interest to engineers, biologists, physicists, mathematicians, and many other ...
dielectric In electromagnetism, a dielectric (or dielectric medium) is an electrical insulator that can be polarised by an applied electric field. When a dielectric material is placed in an electric field, electric charges do not flow through the mate ...
medium) in a more general form. It is reduced to the above simplified "normal" form by Ikeda, Daido and Akimoto z_n stands for the electric field inside the resonator at the n-th step of rotation in the resonator, and A and C are parameters which indicate laser light applied from the outside, and linear phase across the resonator, respectively. In particular the parameter B \leq 1 is called dissipation parameter characterizing the loss of resonator, and in the limit of B=1 the Ikeda map becomes a conservative map. The original Ikeda map is often used in another modified form in order to take the saturation effect of nonlinear dielectric medium into account: : z_ = A + B z_n e^ A 2D real example of the above form is: : x_ = 1 + u (x_n \cos t_n - y_n \sin t_n), \, : y_ = u (x_n \sin t_n + y_n \cos t_n), \, where ''u'' is a parameter and : t_n = 0.4 - \frac. For u \geq 0.6, this system has a
chaotic attractor In the mathematical field of dynamical systems, an attractor is a set of states toward which a system tends to evolve, for a wide variety of starting conditions of the system. System values that get close enough to the attractor values remain ...
.


Attractor

This
animation Animation is a method by which image, still figures are manipulated to appear as Motion picture, moving images. In traditional animation, images are drawn or painted by hand on transparent cel, celluloid sheets to be photographed and exhibited ...
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 20000 randomly placed starting points. The last 20 points of each trajectory are plotted to depict the
attractor In the mathematical field of dynamical systems, an attractor is a set of states toward which a system tends to evolve, for a wide variety of starting conditions of the system. System values that get close enough to the attractor values remain ...
. Note the bifurcation of attractor points as u is increased.


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 In the mathematical field of dynamical systems, an attractor is a set of states toward which a system tends to evolve, for a wide variety of starting conditions of the system. System values that get close enough to the attractor values remain ...
while the inset on the right shows a zoomed in view of the main trajectory plot.


Octave/MATLAB code for point trajectories

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 = compute_ikeda_trajectory(u, x, y, N) X = zeros(N, 2); X(1, :) = 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, :) = y end end


Python code for point trajectories

import math import matplotlib.pyplot as plt import numpy as np def main(u, points=200, iterations=1000, nlim=20, limit=False, title=True): """ Params 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: tr, 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 0], y 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 (, )") if title else None return plt def compute_ikeda_trajectory(u, x, y, N): """ Calculate a full trajectory Params u:float is the ikeda parameter x,y float: coordinates of the starting point N:int the number of iterations """ X = np.zeros((N, 2)) for n in range(N): X = 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): """ Plot the last n points of the curve - to see end point or limit cycle Params 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): """ Plot the whole trajectory Params X:np.array trajectory of an associated starting-point """ plt.plot(X ,0 X
, 1 The comma is a punctuation mark that appears in several variants in different languages. It has the same shape as an apostrophe or single closing quotation mark () in many typefaces, but it differs from them in being placed on the baseline (t ...
'k') if __name__

'__main__': main(.9, limit=True, nlim=0).show()


References

{{DEFAULTSORT:Ikeda Map Chaotic maps Articles with example MATLAB/Octave code Articles containing video clips