function vdot1=system(t,v)

% Reproduktionsrate 
p=0.005;
% Sterberate
d=0.05;
% Migrationsrate
y=0.008;
% Fressrate (normiert)
g=0.0002;
% Diffusionsrate der Nahrung 
a=0.001;
%Schalenzahl

N=500;

for i=1:N
    
        
     
        
        if v(i)~=0 & v(i+1)==0
        v(i+N)=1;
        end
    % Sprungfunktionen

        Tr(i)=1;
        Td(i)=0;
        Tm(i)=0;
        
    if Tr(i)==1 & v(i+N)<0.6
        Tr(i)=0;
    end
    if Td(i)==0 & v(i+N)<0.5
        Td(i)=1;
    end
    if Tm(i)==0 & (v(i+N)<0.8 | v(i)>=1)
        Tm(i)=1;
    end
    
    
    for j=1:N

        
% Aufstellen der Matrix A
        if i==j
            A(i,j)=p*Tr(i)-d*Td(i)-Tm(i)*y*(i+1).^(2/3);
        elseif i==j+1 %untere Nebendiagonale
            A(i,j)=Tm(i-1)*y*i.^(2/3);
        else
            A(i,j)=0;
        end

 % Aufstellen der Matrix B

            
            if i==j
            B(i,j)=-a*((i-1).^(2/3)+(i).^(2/3));
        elseif i==j+1 %untere Nebendiagonale
            B(i,j)=a*(i-1).^(2/3);
        elseif i==j-1 %obere Nebendiagonale
            B(i,j)=a*(i).^(2/3);
        else
            B(i,j)=0;
        end
        end
    end
end
 % Aufstellen der Matrix Z
Z=zeros(N);

% Aufstellen der Matrix D
D1=eye(N);
D=D1*(-g);  

% Gesamtmatrix
M=[A Z;D B];

% Inhomogenität
R=eye(2*N);
r=R(:,2*N)*a*(N).^(2/3);
           
vdot1=M*v+r;
