- Ikeda map
In
mathematics , an Ikeda map is a discrete-timedynamical system given by:
:
where "u" is a parameter and
:
For some values of "u", this system has a
chaotic attractor .Attractor
This shows how the attractor of the system changes as the parameter 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 is increased.Point trajectories
The plots below show trajectories of 200 random points for various values of . 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.MATLAB code for point trajectoriesThe 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 pointsfunction ikeda(u, option)
P = 200;%how many starting pointsN = 1000;%how many iterationsNlimit = 20; %plot these many last points for 'limit' option
x = randn(1,P)*10;%the random starting pointsy = 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'); endend
axis tight; axis equaltext(-25,-15, ['u = ' num2str(u)] );text(-25,-18, ['N = ' num2str(N) ' iterations'] );
% Plot the last n points of the curve - to see end point or limit cyclefunction plot_limit(X,n)plot(X(end-n:end,1),X(end-n:end,2),'ko');
% Plot the whole trajectoryfunction plot_ikeda_trajectory(X)plot(X(:,1),X(:,2),'k');%hold on; plot(X(1,1),X(1,2),'bo','markerfacecolor','g'); hold off
%u is the ikeda parameter%x,y is the starting point%N is the number of iterationsfunction [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
Wikimedia Foundation. 2010.