% SZORGALMI FELADAT

% Paraméterek:
Xinit= 10;                 % x kezdeti értéke       %
Yinit= 1;                  % y kezdeti értéke       %
tinit=0;                   % kezdeti idõ            % EZEKET A PARAMÉTEREKET ÁLLÍTHATJUK
Max_Time= 500;              % szimuláció ideje       % AZ ÜGYESEK GUI-T IS ÍRHATNAK HOZZÁ
mu = 1;
a = 1;
x =-10:0.05:10;            % Lehet módosítani, de felesleges
y =-4:0.05:4;              % Lehet módosítani, de felesleges
[X,Y] = meshgrid(x,y);     % hálót készít x,y vektorok alapján (az energiák kiszámításához az adott pontokban)

egyenlet=@(t, xy) [xy(2); +mu*(1-xy(1)^2)*xy(2)-xy(1)+a*cos(t)];
[t, xy]=ode45(egyenlet, [tinit Max_Time], [Xinit; Yinit]);
energia_rugo=@(X,Y) 0.5.*Y.^2+0.5*X.^2;
energia_inga=@(X,Y) 0.5.*Y.^2-cos(X)+1;
Z = energia_inga(X,Y);

figure;
subplot(2,2,1);                                             % ábrák elhelyezése egy mezõn belül, számolás balról jobbra, fentrõl le
hold on;                                                    % több ábra egymásra
energiaszintek=[0, 0.1 0.25, 0.5, 1, 1.4, 2, 2.4, 3, 4];    % ezeken a szinteken számolom ki az energiát
contour(X,Y,Z, energiaszintek);                             % energia szintvonalak ábrázolása
plot(xy(:,1), xy(:,2), 'b');                                % x-y ábrázolás
xlabel('x');
ylabel('y');
hold off;                                                   % ez után már felülír ábrát

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%           x-t szerint          %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

subplot(2,2,3);
plot(xy(:,1), t, 'b');                                      % x-t ábrázolás
xlabel('x');
ylabel('t');

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%           t-y szerint          %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

subplot(2,2,2);
plot(t, xy(:,2), 'b');                                      % t-y ábrázolás
xlabel('t');
ylabel('y');

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%       x-y-t 3D-s ábrázolás     %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

subplot(2,2,4);
plot3(xy(:,1), xy(:,2), t, 'b');                            % x-y-t 3D-s ábrázolás
xlabel('x');
ylabel('y');
zlabel('t');
