Date Редакция Категория sci Теги matlab
iter = 30;   % число итераций
npix = 1000; % число точек по каждой из осей координат 

% область
dl = 2;
x = linspace(-dl,+dl,npix);
y = linspace(-dl,+dl,npix); 

% матрица C содержит все начальные точки данной области
[X,Y] = meshgrid(x,y);
C = X + i * Y;

Z = zeros(npix);

for l = 1:iter
    Z = Z.^2 + C; 
end;

W = exp(-abs(Z));

% рисование
imagesc(W);
colormap(jet);
axis ('equal','off')

mandelbrot1.png

Еще один вариант:

iter=30;   % число итераций
npix=1000; % число точек по каждой из осей координат 

% область
dl=2;
x=linspace(-dl,+dl,npix);
y=linspace(-dl,+dl,npix); 

% матрица C содержит все начальные точки данной области
[X,Y] = meshgrid(x,y);
C = X + i * Y;

% массив B будет содержать все точки оставшиесЯ в области.
% элемент массива равен числу итераций в течение которых
% точка оставалась в области
B = zeros(npix); 

Z = B;  % C0 = 0+0i

for l = 1:iter
    Z = Z.^2 + C; 
    B = B + (abs(Z)<2);
end;

% рисование
imagesc(B);
colormap(jet);
axis ('equal','off')

mandelbrot2.png



Комментарии

comments powered by Disqus