Ikeda map

From Wikipedia, the free encyclopedia
Jump to: navigation, search

In mathematics, the Ikeda map is a discrete-time dynamical system given by the complex map

 z_{n+1} = A + B z_n e^{i (|z_n|^2 + C)}

It was proposed by Ikeda, Daido and Akimoto as a model of laser light emission from a ring cavity containing a bistable dielectric medium. [1] zn corresponds to the electric field of the laser and A, B and C are parameters.

A 2D real form of the map is:

 x_{n+1} = 1 + u (x_n \cos t_n - y_n \sin t_n), \,
 y_{n+1} = u (x_n \sin t_n + y_n \cos t_n), \,

where u is a parameter and

 t_n = 0.4 - \frac{6}{1+x_n^2+y_n^2}.

For some values of u, this system has a chaotic attractor.


Contents

[edit] 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 20000 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

[edit] 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

[edit] 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 [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

[edit] References

  1. ^ K. Ikeda, H. Daido and O. Akimoto, Optical Turbulence: Chaotic Behavior of Transmitted Light from a Ring Cavity, Phys. Rev. Lett. 45, 709–712 (1980)
Personal tools
Namespaces
Variants
Actions
Navigation
Interaction
Toolbox
Print/export