Az ../data/ebola.txt
file tartalmazza a legutóbbi ebolajárvány terjedési idősorát országokra lebontva.
Illesszünk az összes bekövetkezett haláleset számára egy exponenciális függvényalakot! $$f(t,A,\beta)=A\mathrm{e}^{\beta t}$$
Becsüljük meg, ha nem tett volna az ENSZ semmit, akkor mikor pusztult volna ki az emberiség!
Először betöltjük a szükséges csomagokat.
%pylab inline
from scipy.optimize import curve_fit
Majd betöltjük az adatokat
adatok = loadtxt("../data/ebola.txt")
halal = adatok[:,2] + adatok[:,5] + adatok[:,8] + adatok[:,11] + adatok[:,14]
t = adatok[:,0]
Ezután definiáljuk az exponenciális függvényt, és elvégezzük az illesztést, és ábrázoljuk a kapott adatokat.
def f(t, A, beta):
'''Visszaadja t függvényében az A*e^(beta*t) függvényt'''
return A * exp(beta * t)
eadt = curve_fit(f, t, halal, p0=[59, 0.0168])
# A becsült értéke a 0. napon, béta becsült értéke pedig az első két napon elhalálozottak számából adódott
eadt
plot(t, halal, label="halálozási adatok")
plot(t, eadt[0][0] * exp(eadt[0][1]*t), label="illesztett exponenciális görbe")
xlabel("napok száma", size=12)
ylabel("elhalálozások száma", size=12)
title("Az elhalálozások az idö múlásával", size=18, y=1.05)
legend(loc=0)
Végül, egy ciklus segítségével, kiszámoljuk, hogy a járvány kezdetétől számított hányadik napon lépné át az elhalálozások száma az emberiség létszámát meghaladó 7 milliárdat.
kihalt = False
i = 1
while not kihalt:
if eadt[0][0] * exp(eadt[0][1]*i) > 7e9:
break
i += 1
print("Az emberiség a {}. napon halt volna ki.".format(i))