% Hopf bifurkáció virágkehely
%
t0=linspace(0, 50, 500); %megadom az ode45-nek fixen a lépéseket, (50-ig számol 500 lépéssel, a bifurk pont közelében érdemes tovább számolni)
mu=-1:0.05:1;
%mu=-0.1:0.005:0.1; % a bifurkációs pont közelében vizsgálva
xykezd=[0 0.01]; %kezdeti koord ,ne pont [0 0]-ból indíts, mert akkkor ott marad a rsz.

xmg=nan(length(t0),length(mu)); %nagy mátrixok nan-okkal feltöltve: minden oszlopban eltárolom az adott mu-nél számolt értékeket
ymg=nan(length(t0),length(mu));

figure;
for i=1:length(mu) %Hopf mu mu<0->stabil pont; mu>0-> stabil, vonzó periódus
    
   [t, mg]=ode45(@(t,x) [mu(i)*x(1)+x(2)-x(1)*(x(1)*x(1)+x(2)*x(2)); -x(1)+mu(i)*x(2)-x(2)*(x(1)*x(1)+x(2)*x(2))] ,t0, xykezd); %sima Hopf-bifurkáció dx=mu*x-y-x*(x^2+y^2); dy=x+mu*y-y*(x^2+y^2); 
   %[t, mg]=ode45(@(t,x) [-mu(i)*x(1)+x(2)-x(1)*(x(1)*x(1)+x(2)*x(2)); -x(1)-mu(i)*x(2)-x(2)*(x(1)*x(1)+x(2)*x(2))] ,t0, xykezd); %lefelé álló kehely: -mu
   %[t, mg]=ode45(@(t,x) [mu(i)*x(1)-x(2)-x(1)*(x(1)*x(1)+x(2)*x(2)); x(1)+mu(i)*x(2)-x(2)*(x(1)*x(1)+x(2)*x(2))] ,t0, xykezd); %ellentétes irányû forgás: fi'=+1
   xmg(:,i)=mg(:,1);
   ymg(:,i)=mg(:,2);
  
end

 plot3(xmg, ymg, repmat(mu, [length(t0),1])); %kirajzol mu-khöz tartozó trajektóriákat
 xlabel('x');
 ylabel('y');
 zlabel('mu');
 title('"nyíló Hopf-virágkehely"');
 %}

 %{
 %taszító hopf:
 figure;
 mu=1;%-2;%5;%0.5;%0.1;% 0;%  -1;%
 xkezd=-2:0.2:2;
 ykezd=-2:0.2:2;
 t0=[0 5];
 [Xkezd, Ykezd]=meshgrid(xkezd, ykezd);
 xkezd=reshape(Xkezd, numel(Xkezd), 1); %sorba rak mx elemeket (ne kelljen kettõs ciklusban végigjárni)
 ykezd=reshape(Ykezd, numel(Ykezd), 1);
 for i=1:length(xkezd)
   xykezd=[xkezd(i), ykezd(i)];
   [t, mg]=ode45(@(t,x) -[-mu*x(1)+x(2)+x(1)*(x(1)*x(1)+x(2)*x(2)); -x(1)-mu*x(2)+x(2)*(x(1)*x(1)+x(2)*x(2))], t0, xykezd); %taszít a kehely: -r', ajánlott az idõmegfordítás: -f(x)
   plot(mg(:,1), mg(:,2), 'b', mg(1,1), mg(1,2), 'r.'); %kirajzol trajektóriákat + kezdõpontokat
   hold on;
 end;
 xlim([-2,2]);
 ylim([-2,2]);
 xlabel('x');
 ylabel('y');
 title('"taszító Hopf-bifurkáció"');
 %}