Quit[];

Járványterjedési modellek

Farkas Miklós: Dynamical models in biology (Academic Press 2001), 63. old.

A folyamat és a rá vonatkozó alapfeltevések

Az alábbi úgynevezett SIR modell a következő szituációt írja le:

a populáció összlétszáma állandó S[t]+I[t]+R[t]=állandó ( =N), azaz (S,I,R)↦φ(S,I,R):=S+I+R a rendszer első integrálja

a populáció három részből áll, ezek az S érzékenyek (fertőzhetők, susceptibles), az I fertőzők (infectives) és az R meggyógyultak vagy eltávozók (removed, recovered with immunity).

a populáció jól kevert: egyrészt a térbeli elhelyezkedésnek nincs szerepe, másrészt minden személy egyenlő eséllyel találkozik bármelyik másikkal

a betegségen átesett személyek meghalnak vagy immunitást szereznek

nincs lappangási idő

S(0),R(0)>0

belátható, hogy az alábbi modellben mind a három koordinátafüggvény értelmezve van az egész jobb félegyenesen, és minden t ∈ (SuperPlus[ℝ]) esetén pozitív.

A modell

eq={S'[t]==-r S[t]I[t],I'[t]==r S[t]I[t]-a I[t],R'[t]==a I[t]};ini={S[0]==s0,I[0]==i0,R[0]==0};
Ν:=S[0]+I[0];

Jelölések

ahol:

S(t) a veszélyeztetett (susceptible) vagy fertőzésnek kitett populáció létszáma a t időpontban

I(t) a fertőzőtt (infective) populáció létszáma a t időpontban

R(t) a betegségen átesett vagy meghalt egyedekből álló (removed) populáció létszáma a t időpontban

r>0 a fertőzési ráta (egy beteg egységnyi idő alatt ennyi százalékkal csökkenti az egészségesek számát)

a>0 felgyógyulási ráta (pontosabban a fertőzők száma egységnyi idő alatt ennyi százalékkal csökken, ahol a csökkenés oka lehet felgyógyulás, elhalálozás)

ϱ:=(a/r) a relatív felgyógyulási ráta

Járvány

(Ebben a modellben) járványról beszélünk, ha I(t) növekszik, azaz gyorsabb a fertőződés, mint a felgyógyulás

Kialakulásának és fennmaradásának feltétele

(OverDot[I])(0)=I(0)(r S(0)-a)>0⟺ϱ<S(0)

Mivel minden t ∈ (SuperPlus[ℝ]) esetén (OverDot[S])(t)<0, ezért S(t)<S(0), így ha S(0)<ϱ, akkor minden t ∈ (SuperPlus[ℝ]) esetén (OverDot[I])(t)≤0; azaz ha kezdetben I csökkenő volt, akkor az is marad.

Hasonlóan: ha kezdetben I növekvő volt, akkor az is marad egy ideig.

A járvány akkor alakul ki, ha kezdetben sok egészséges ember volt jelen, nagy volt a zsúfoltság.

Más fontos paraméterek jelentése

(1/a) átlagos fertőződési periódus, ugyanis ha I(t)=1 és h=(1/a) (azaz egy fertőzött (1/a) idő alatt gyógyul meg)
R(t+h)-R(t)≈a I(t)h=a 1(1/a)=1, és
S(t+h)-S(t)≈-r I(t)S(t)h=-(r/a)S(t)<-1 éppen akkor, amikor S(t)>ϱ, ami a járvány feltétele volt.

(r/a)=(1/ϱ) kontakt ráta (fertőzési ráta × fertőzési periódus), ha megszorozzuk a fertőzésnek kitettek számával, akkor megkapjuk, hogy egy beteg a fertőzési periódus alatt hány egészségest fertőz meg. Ha (r/a)S(0)<1, azaz egynél kevesebbet, akkor nincs járvány.

Grafikonok

Pályagörbék az (S,I) síkon

A 2. egyenletet osztva az elsővel integrálás után kapjuk:

I(S)=ln((S^ϱ))-S+C

ahol C=I(0)+S(0)-ln(((S(0))^ϱ)).

Innen a trajektóriák maximuma:

(max_S) I(S)=I(ϱ)=Ν-ϱ+ϱ ln((ϱ/(S(0)))),

feltéve, hogy (a/r)<S(0). (Egyébként ugyanis nem létezik maximum.)

param={a->5,r->1};

StreamPlot[{-r S Ι,r S Ι-a Ι}/.param,{S,0,15},{Ι,0,15},RegionFunction->Function[{S,Ι},0<S+Ι<15],PlotLabel->Column[{Style["S(0)+I(0)=15\n",Red,Italic],Style["A maximumhelyek első koordinátája\n a fázissíkon azonos\n",Green]}],FrameLabel->{"S","I"},Epilog->{Red,Thick,Line[{{0,15},{15,0}}],Green,Line[{{(a/r),0},{(a/r),10}}/.param]}]

Ha S(0) nagy, akkor nő a fertőzöttek száma, és I(+∞)=0.

Ezt helyettesítve (1)-be: S(+∞)=ϱ ln(((S(+∞))/(S(0))))+Ν, ez megoldjuk az adott paraméterek mellett:

kezd={s0->5,i0->10};

Plot[Evaluate[{s,(a/r)Log[(s/s0)]+s0+i0}/.param/.kezd],{s,0,15},PlotLabel->"Kezdeti becslés grafikusan",AxesLabel->{"S","I(S)"}]

FindRoot[(s==(a/r)Log[(s/s0)]+s0+i0)/.param/.kezd,{s,0.2}]

A halálozási ráta vizsgálata

Az egyenletrendszert szimbolikusan megoldani nem tudjuk, ezért trükköket és közelítéseket alkamlazunk az alábbiakban.

Az első egyenletet osztva a harmadikkal integrálás után kapjuk:

S(R)=S(0)(e^(-(R/ϱ))).

Ezt beírva a harmadikba

(OverDot[R])=a I=a(Ν-R-S)=a(Ν-R-S(0)(e^(-(R/ϱ))))   R(0)=0.

Ez az egyenlet túlságosan bonyolult:

DSolve[{R'[t]==a(n-R[t]-s0 (E^(-R[t]/ρ)))},R[t],t]

Ha a járvány nem túl erős ((R/ϱ)≪1), akkor az egyenlet sorfejtés után megoldható:

DSolve[{R'[t]==a(n-R[t]-s0(1-((R[t])/ρ))),R[0]==0},R[t],t][[1]]//Simplify

Még egy tagot véve:

ds=DSolve[{R'[t]==a(n-R[t]-s0(1-((R[t])/ρ)+(1/2)(((((R[t])/ρ)))^2))),R[0]==0},R[t],t][[1]]//Quiet//Simplify

Halálos betegség esetén az m(t):=(OverDot[R])(t) mortalitás időegység alatt számolható:

D[(1/s0)ρ (s0-ρ-√(-2 n s0+(s0^2)+2 s0 ρ-(ρ^2)) Tan[(1/(2 ρ))a t √(-2 n s0+(s0^2)+2 s0 ρ-(ρ^2))+ArcTan[(s0-ρ)/(√(-2 n s0+(s0^2)+2 s0 ρ-(ρ^2)))]]),t]//Simplify

tobbparam={a->5,r->1,s0->5,i0->10,n->i0+s0,ρ->a/r}

Manipulate[Plot[(1/(2 s0))a (2 n s0-(s0^2)-2 s0 ρ+(ρ^2)) ((Sec[(1/(2 ρ))a t √(-2 n s0+(s0^2)+2 s0 ρ-(ρ^2))+ArcTan[(s0-ρ)/(√(-2 n s0+(s0^2)+2 s0 ρ-(ρ^2)))]])^2)//.tobbparam,{t,0,1},AxesLabel->{t,"m(t)"},PlotRange->All,PlotLabel->"A mortalitás időbeli változása az idő függvényében\nkülönböző paraméterértékeknél"],{a,1,16,0.2},{s0,0.1,10,0.1},SaveDefinitions->True ]

A modell előnyei

egyszerű

előre jelzi

azok számát, akik elkapják a betegséget,

azt az időpontot, amikor a fertőzöttek száma maximális,

azt az időpontot, amíg a járvány tart

A modell hátrányai

túl egyszerű

Érdekességek

A modell a S+I->2I,I->R kémiai reakció modelljeként is  felfogható.

Hivatkozások

Capasso, V.: Mathematical structures of epidemic systems, Lecture Notes in Biomathematics 97 (1993), Springer-Verlag, Berlin.

Kermach, W. O.; McKendrick, A. G.: Contributions to the mathematical theory of epidemics, Proc. Roy. Soc. A115 (1927), 700-721;  A138 (1932), 55-83;  A141 (1933), 94-122.