hold on;

% (-1) Rajzoljunk contour-t:
%
% A "magassagi pontokban": 0 0.3 1 1.4 1.8 2 3 4
% X tengelyen felvett halo: [-25;5] intervallumon 0.005 osevel
% Y tengelyen felvett halo: [-4;4] intervallumon 0.005 osevel
% Energiafuggveny: (y^2+1-cos(x))/2
contour_list = [0 0.3 1 1.4 1.8 2 3 4];
Xgrid = -25:0.005:5;
Ygrid = -4:0.005:4;

[X,Y] = meshgrid(Xgrid,Ygrid);
Z = 0.5.*Y.*Y+1-cos(X);

[C,h] = contour(X,Y,Z,contour_list);

% (0) Az alabbi inga egyenletet irjuk be ode45-el hivhato fuggvenyket:
% \dot{x} = y; \dot{y} = -sin(x) -b*y + eps*cos(t+phi)
% Magyarzat: 
% Sima inga egyenlet (szerepelt multkor): \dot{x} = y; \dot{y} = -sin(x)
% Csillapitott inga egyenlet (szerepelt multkor): \dot{x} = y; \dot{y} = -sin(x) -b*y
% Gerjesztett es csillapitott inga egyenlet:
% \dot{x} = y; \dot{y} = -sin(x) -b*y + eps*cos(t)
% Gerjesztett es csillapitott inga egyenlet a gerjesztes faziseltolasaval:
% \dot{x} = y; \dot{y} = -sin(x) -b*y + eps*cos(t+phi)
forced_damped_pendulum_equat = @(t,y,b,eps,phi) [ y(2); (-sin(y(1))-b.*y(2) + eps*cos(t+phi)); ];

Max_Time= 300;

% Alkalmazzuk az alabbi parametereket es nezzuk meg mit adnak ki!

% % Parameterek:
% % (1) Alap parameterek:
% Xinit= -0.2;
% Yinit= 0.3;
% Xinit2= -0.201;
% Yinit2= 0.3;
% b=0.1;
% eps=0; %eps=1; % Ez az alap felteves, de az elso pelda nem tartalmaz gerjesztest.
% phi=0; % Ez az alap felteves, az utolso elottiig nem tartalmaz faziseltolast.
% phi2=0;

% % (2) Erdekes parameterek: "Szetszedi"
% % Ket egymashoz kozeli nagyon mashogy viselkedik: Tranziens kaosz lefolyasa mas.
% Xinit= -0.2;
% Yinit= 0.3;
% Xinit2= -0.201;
% Yinit2= 0.3;
% b=0.1;
% eps=1;
% phi=0; % Ez az alap felteves, az utolso elottiig nem tartalmaz faziseltolast.
% phi2=0;

% % (3) Erdekes parameterek: "Szetszedi2"
% % Dupla periodus. Tranziens allapot, ha sokaig hagyjuk futni lecseng.
% Xinit= -0.2;
% Yinit= 0.3;
% Xinit2= -0.201;
% Yinit2= 0.3;
% b=0.1;
% eps=1.2;
% phi=0; % Ez az alap felteves, az utolso elottiig nem tartalmaz faziseltolast.
% phi2=0;

% % (4) Erdekes parameterek: "Szetszedi3"
% % Itt csak az ode23 szedi szet
% Xinit= -0.2;
% Yinit= 0.3;
% Xinit2= -0.2001;
% Yinit2= 0.3;
% b=0.1;
% eps=1;
% phi=0; % Ez az alap felteves, az utolso elottiig nem tartalmaz faziseltolast.
% phi2=0;

% % (5) Erdekes parameterek: Fázis eltolas szemleltetese
% Xinit= 0.6;
% Yinit= 0.3;
% Xinit2= -0.201;
% Yinit2= 0.3;
% b=0.1;
% eps=1;
% phi=pi;
% phi2=0;

% Ode45-tel számoljuk ki a fenti parameterekre a ket KEP-et.
% [t,W] = ode45(@(t,y) forced_damped_pendulum_equat(t,y,b,eps,phi),[0 Max_Time],[Xinit Yinit]);
% [t2,W2] = ode45(@(t,y) forced_damped_pendulum_equat(t,y,b,eps,phi2),[0 Max_Time],[Xinit2 Yinit2]);

% Negy plotot szeretnenenk latni, kulon figure-on, 
% ahol mind a negy esetben a ket megoldas egymas mellett lathato:
%
% 1: x-y szerint '-x' vonaltipussal
% 2: t-x szerint
% 3: t-y szerint
% 4: t-x-y szerint

plot(W(:,1),W(:,2),'-x',W2(:,1),W2(:,2),'-x')
figure;
plot(t,W(:,1),t2,W2(:,1))

figure;
plot(t,W(:,2),t2,W2(:,2))

figure;
plot3(t,W(:,1),W(:,2),t2,W2(:,1),W2(:,2))

hold off;
