HOME

TheInfoList



OR:

In
physics Physics is the scientific study of matter, its Elementary particle, 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 whi ...
and
mathematics Mathematics is a field of study that discovers and organizes methods, Mathematical theory, theories and theorems that are developed and Mathematical proof, proved for the needs of empirical sciences and mathematics itself. There are many ar ...
, 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, such as in a parametric curve. Examples include the mathematical models ...
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 (or a non-linear 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, mathe ...
dielectric In electromagnetism, a dielectric (or dielectric medium) is an Insulator (electricity), electrical insulator that can be Polarisability, polarised by an applied electric field. When a dielectric material is placed in an electric field, electric ...
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 c ...
.


Attractor

This
animation Animation is a filmmaking technique whereby still images are manipulated to create moving images. In traditional animation, images are drawn or painted by hand on transparent celluloid sheets to be photographed and exhibited on film. Animati ...
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 c ...
. 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 c ...
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: 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: 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: 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 = 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 The comma is a punctuation mark that appears in several variants in different languages. Some typefaces render it as a small line, slightly curved or straight, but inclined from the vertical; others give it the appearance of a miniature fille ...
"k") if __name__

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


References

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