%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%         5.gyakorlat         %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Nemlin. din. rsz-ek alapjai %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%         2015.10.07.         %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%   Lotka-Volterra rendszer   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% dx=x(1-2x-y)
% dy=y(3-2y-x)

figure;
%ábrázolási határok:
max_pontx=3;
max_ponty=3;
min_pont=0;

lepes=0.1;% lépésköz
x=min_pont:lepes:max_pontx;
y=min_pont:lepes:max_ponty;

% rácsot képez x,y alapján:
[X,Y]=meshgrid(x,y);
%a rácspontokban pontokban kiszámolom a vektormezõ gradiensét:
    dx=; 
    dy=;
dx=dx./ sqrt(dx.^2+dy.^2); %vektormezõ lenormálva
dy=dy./sqrt(dx.^2+dy.^2);
%1.vektormezõ kirajzolás:
quiver(X,Y,dx, dy, 'k');
% az x y rácspontokon az x és az y irányba változást számolja ki és az
% eredményül kapott vektort ábrázolja az adott pontból kiindulva,

hold on;
%az X, Y rács pontjaiból indulok a trjektóriákkal, egyszerû, de lassú:
sx=reshape(X, 1, length(x)*length(y)); %kezdeti x pontok sorba rendezve
sy=reshape(Y, 1, length(x)*length(y)); %kezdeti y pontok sorba rendezve
tint=[0,10];
for i=1:length(sx) 
    xy0=[sx(i); sy(i)]; %mindig az adott x,y pontból számolom ki a diffegyenletet (a hold on be van kapcsolva így mindent egyszerre rajzolok ki)
        [t, xy] = ode45(); %az egyenletet kiszámolom
    plot(xy(:,1),xy(:,2));
end

xlim([min_pont-0.1,max_pontx]);
ylim([min_pont-0.1,max_ponty]);
xlabel('x');
ylabel('y=dx');
title('dx=x(1-2x-y); dy=y(3-2y-x)');
hold off;


