% Grey.Scott rendszer 1D-ben: stabil mintázatképzõdés
    %du/dt = Du*du^2/dx^2-u*v^2+F*(1-u);
    %dv/dt = Dv*du^2/dx^2+u*v^2-(C+F)*v;

dt = 0.2; %idõbeli lépésköz %D*2*dt/dx^2<1
dx = 1/100; %térbeli lépésköz

x = 0:dx:1;
nx = length(x);
nt = 500000; %lépésszám

% diffúziós együtthatók: diff sebességét határozza meg
Du=6e-5;
Dv=2e-5;

% paraméterek:
C = 0.065;%0.015; %fogyás 
F = 0.06;%0.03; %termelõdés

% kezdeti feltételek: u=1; v=0 alapból (0-1 közt cc-k)
u = ones(nx,1);
%u(10:30) = 0; %kezdeti állapot (szakasz)
v = zeros(nx,1);
v(20:40) = 1; %szakasz

figure; %ábrázolás
plot(x, u, 'b', x, v, 'r');
 ylim([-0.5,1.5]);
 ylabel('koncentráció');
   waitforbuttonpress;
   
for t = 1:nt %idõlépések
    u2 = u;
    v2 = v;
    
    for i =1:nx
            
            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
             
            % Grey-Scott egyenletek:
             u(i) = u2(i) + dt*(-u2(i))*v2(i)^2 +dt*F*(1-u2(i)) +...
                                 Du*dt/dx^2*(u2(i_after)-2*u2(i)+u2(i_before));            
             v(i) = v2(i) + dt*u2(i)*v2(i)^2 -(C+F)*dt*v2(i) +...
                                 Dv*dt/dx^2*(v2(i_after)-2*v2(i)+v2(i_before));                            

    end
    
    if mod(t, 100)==0 %minden x. lépésben rajzolok csak ki
    plot(x, u, 'b', x, v, 'r');
    title(['lépés: ', num2str(t)]);
    ylim([-0.5,1.5]);
    ylabel('koncentráció');
    
   %waitforbuttonpress;
    pause(0.01);
    end
    
end