% 7. gyakorlat
%SIR (járványterjedés) modell diffegyenlettel:

%paraméterek:
%S=susceptible, fertõzhetõ egyedek aránya
%I=infected, fertõzött egyedek aránya
%R=recovered, felgyógyult (vagy meghalt, lényeg, hogy nem beteg és már nem is fertõz, vagy fertõzhetõ) egyedek aránya
%ir=ferõzési ráta: ilyen arányban kapják el a betegséget az egészségesek a betegektõl/ milyen gyors a járvány 
%rr=felgyógyulási ráta: ilyen arányban gyógyulnak fel a betegek (múlik el a betegségük)/ milyen gyors a felépülés 

%egyenletek: 
%S+I->2I (fertõzhetõ és beteg találkozik -> a fertõzhetõ is megbetegszik); 
%I->R (a beteg felgyógyul)
%diffegyenletekké átírva:
%S'=-ir*S*I (a fertõzhetõek aránya csökken, ez függ a fertõzhetõek, a betegek mennyiségétõl és a fertõzési rátától)
%I'=ir*S*I-rr*I (betegek aránya ugyanennyivel nõ egyrészt, másrészt csökken a meggyógyultakéval)
%R'=rr*I (a felgyógyultak aránya nõ, ez függ a betegek mennyiségétõk és a felgyógyulási rátától)
%S+I+R=1: mindenki ezek közül a kategóriák közül valamelyikbe tartozik
%mindig mmaradnak olyanok, akik nem érintettek a járványban (nem betegszenek meg)

%Feladatok:
%Implementáljuk a SIR rendszert!
%Mi az egyes paraméterek hatása az eredményre?
%Mikor, milyen paraméterek esetén alakul ki járvány (ugrik meg a betegek aránya)? 
%Hogyan befolyásolja a megbetegédek alakulását a fertõzési és a felgyógyulási ráta? 
%Hogyan fefolyásolja az eredményeket, ha már kezdetben már vannak rezisztens (R) egyedek? 
%Hogyan befolyásolja az eedményeket, ha több fertõzöttrõl indulunk?

%SIS modell: 
%Nincs immunitás: a felgyógyultak újra megbetegedhetnek (,tehát a gyógyultak nem az R, hanem az S kategóriába kerülnek) 
%S+I->2I (fertõzhetõ és beteg találkozik -> a fertõzhetõ is megbetegszik); 
%I->S (a beteg felgyógyul, de újra fertõzhetõ)
%Alakítsuk át ilyenné a modellünk!
%Milyen ennek a modellnek a viselkedése? Milyen az egyensúlyi állapot?

t0=[0 500]; %idõintervallum
%S I R kezdeti értékei (arányaik a közösségben):
SIR_0=[0.99, 0.01, 0]; %senki se rezisztens kezdetben, kevés beteg-> járvány-> lecseng
%SIR_0=[0.79, 0.01, 0.2]; %vannak eleve rezisztensek: nehezebben terjed a betegség 
%SIR_0=[0.5, 0.5, 0]; %sok beteg kezdetben, ekkor is marad nem megbetegedõ a végére
ir=0.2;%0.4;%0.1;%0.05;% %fertõzés maximuma ha rr=1: (ln(ir)+1)/ir
rr=0.1;%0.4;%0.2;%0.05;%
[t, SIR_mg]=ode45(@(t,SIR) [-ir*SIR(1)*SIR(2); ir*SIR(1)*SIR(2)-rr*SIR(2); rr*SIR(2)] ,t0 ,SIR_0); %SIR modell
%[t, SIR_mg]=ode45(@(t,SIR) [-ir*SIR(1)*SIR(2)+rr*SIR(2); ir*SIR(1)*SIR(2)-rr*SIR(2); 0] ,t0 ,SIR_0); %SIS modell

%vizualizáció:
figure;
subplot(3,3, [7,8]) %több subplotot összevonunk egybe, és arra ábrázolunk
%S I R arányok az idõ függvényében, plusz S+I+R (ha ez nem 1, akkor elrontottál valamit)
plot(t, SIR_mg(:,1), t, SIR_mg(:,2), t, SIR_mg(:,3), t, SIR_mg(:,1)+SIR_mg(:,2)+SIR_mg(:,3));
legend('S', 'I', 'R', 'S+I+R');
title(['SIR modell: fertõzési ráta=', num2str(ir), ', gyógyulási ráta=', num2str(rr)]);
xlabel('lépés');
ylim([0 1.1]);
ylabel('állapot aránya');

subplot(3,3, [1,2,4,5])
%a járvány trajektóriája az S+I+R síkon (ez a fázistér)
%a sík kirajzolása:
x=[0;0;1]; %3 sarokpont a 3D térben
y=[1;0;0];
z=[0;1;0];
fill3(x,y,z,'g'); %a pontok közti rész kitöltése
xlabel('I'); ylabel('R'), zlabel('S');
grid on;
hold on;
%az I R S trajektória
plot3(SIR_mg(:,2), SIR_mg(:,3), SIR_mg(:,1), 'r'); 
%jelöljük ponttal a kezdeti arányokat (,hogy látszódjon, honnan indult a folyamat)
plot3(SIR_0(2), SIR_0(3), SIR_0(1), 'r*');
title('SIR modell fázistér');

%a 3D-s trajektória egyes vetületei (szintén jelöljük külön a kezdõpontot) 
subplot(3,3,3) %S-I
plot(SIR_mg(:,1), SIR_mg(:,2),'b', SIR_0(1), SIR_0(2), 'b*');
xlabel('S');
ylabel('I');
xlim([0 1]);
ylim([0 1]);
title('vetületek');

subplot(3,3,6) %I-R
plot(SIR_mg(:,2), SIR_mg(:,3),'b', SIR_0(2), SIR_0(3), 'b*');
xlabel('I');
ylabel('R');
xlim([0 1]);
ylim([0 1]);

subplot(3,3,9) %S-R
plot(SIR_mg(:,1), SIR_mg(:,3),'b', SIR_0(1), SIR_0(3), 'b*');
xlabel('S');
ylabel('R');
xlim([0 1]);
ylim([0 1]);
