function diffusio2d

dt = 0.1;
dx = 1;
dy = 1;

x = 1:dx:100;
y = 1:dx:100;
nx = length(x);
ny = length(y);
nt = 1500;

Dx=1;
Dy=1;

u = zeros(nx,ny);
u(70:80, 70:80) = 1; %kezdeti állapot (négyzet)

for t = 1:nt
    u2 = u;
    
    for i =1:nx       %2:nx-1 %fix határ
        for j =1:ny   %2:ny-1
            
            if i==1 %periodikus peremek
               i_before=nx;
            else 
                i_before=i-1;
            end
            if i==nx
                i_after=1;
            else
                i_after=i+1;
            end
            
            if j==1
               j_before=ny;
            else 
                j_before=j-1;
            end
            if j==ny
                j_after=1;
            else
                j_after=j+1;
            end
            
            %u(i_after, j)=... halad
             u(i_after, j) = u2(i, j) + Dx*dt/dx^2*(u2(i_after, j)-2*u2(i, j)+u2(i_before, j))...
                                + Dy*dt/dy^2*(u2(i, j_after)-2*u2(i, j)+u2(i, j_before)); %dU/dt=D*dU^2/dx^2 %diffúzió, szétfolyik
            
        end
    end
    
    imagesc(u);
    %mesh(u);
    %zlim([0 1.5]); ylim([0 ny]); xlim([0 nx]);
     
   % caxis([0 1]); %lecsengés normált színekkel jobban látszódik
    title(['lépés: ', num2str(t)]);
  %  waitforbuttonpress;
    pause(0.01);
end