close all;
%3. gyakorlat: Van der Pol oszcillátor
%ddx-mu*(1-x^2)*dx+x=0 ->
%dx=y -> ddx=dy -> dy=mu*(1-x^2)*y-x

%{ 
%% Idõ inicializálás: most nem látom, miért kellett ez????
N = 10000; %eddig fut
h = 0.01; %lépésköz
t =0:h:N*h; %idõ: szebb lesz itt a görbe ,ha kézzel állítom be a lépésközt
%}
tmax=100;

for mu = 0:0.1:5 % mu=0:0.01:1 %különbözõ mu paraméterekre számolom ki az egyenletet
    
    VanDerPol_egyenlet=(@(t, xy)[xy(2); mu*(1-xy(1)^2)*xy(2)-xy(1)]); 

[t, fi] = ode45(VanDerPol_egyenlet, [0,tmax], [0.5 0.5]);

%for i=0:length(t)

subplot(2,2,1)
plot(fi(:,1), fi(:,2), 'b') %különbözõ színnel ábrázolom (x,y)
%plot(fi(1:i,1), fi(1:i,2), 'b') %mindig a adott idõpillanatig rajzolok ki

hold on %egymásra rajzolom a görbéket
%több kezdeti értékkel kiszámolom az egyenletet:
[t2, fi2] = ode45(VanDerPol_egyenlet, [0,tmax], [0.1 0.1]);
plot(fi2(:,1), fi2(:,2), 'r')
[t3, fi3] = ode45(VanDerPol_egyenlet, [0, tmax], [2.5 2.5]);
plot(fi3(:,1), fi3(:,2), 'g')

xlim([-4, 4]);
ylim([-8, 8]);
xlabel('x');
ylabel('y=dx');
title(['mu=',num2str(mu)]); %aktuális paramétert kiírom az ábra fölé
hold off

subplot(2,2,2)
plot(t, fi(:,2), 'b'); %(t,y) ábrázolás
%plot(t(1:i), fi(1:i,2), 'b') %mindig a adott idõpillanatig rajzolok ki
hold on %a hold on-t minden subplotra külön ki kell adni
plot(t2, fi2(:,2), 'r');
plot(t3, fi3(:,2), 'g');
xlim([0 100]);
ylim([-8, 8]);
xlabel('t');
ylabel('y=dx');
hold off

subplot(2,2,3)
plot(fi(:,1), t, 'b'); %(x,t) ábrázolás
%plot(fi(1:i,1), t(1:i), 'b') %mindig a adott idõpillanatig rajzolok ki
hold on
plot(fi2(:,1), t2, 'r');
plot(fi3(:,1), t3, 'g');
xlim([-4, 4]);
ylim([0 100]);
xlabel('x');
ylabel('t');
hold off

   pause(0.01); %késlsltetés a rajzolásnál, animáció lesz
   %waitforbuttonpress; %kattintásra vált
   
%end
   
end