Реализация модели SIRD в PythonPython

Программы на Python
Ответить
Anonymous
 Реализация модели SIRD в Python

Сообщение Anonymous »

Я делаю проект для своего класса, в котором пытаюсь реализовать модель Sird с вакцинированным населением. Я написал свой код на основе имеющихся у меня уравнений, но на моем графике что-то не так. вакцинированное население на самом деле вообще не увеличивается, а количество выздоровевших и умерших становится почти постоянным примерно через 80 дней.
Я не знаю, должен ли график получиться таким или нет. может кто-нибудь помочь мне исправить мой код? я не использую odeint, кстати.
график, который я получил, почти не увеличивает привитое население
дифференциальные уравнения, на которых я основываю код

Код: Выделить всё

import numpy as np
import matplotlib.pyplot as plt

#sirdv
#a-alpha b-beta g-gamma d-detla m-mu e=vaccine efficacy
#N=population s(t)=susceptible d(t)=deceased i(t)=infected r(t)=recovered v(t)=vaccinated
#n=s+i+r+d+v
# ds/dt=-b/N(si) dr/dt=gi dd/dt=mi di/dt=b/N(si-gi-mi)-a*s) dv/dt=a*s-(e*b*i*v)/N
N=1000 #total population
b=0.5 # transmission rate ranged from 0.4 to 0.6
a=0.05 #5 % of susceptible population
e=0.7 #as of now
g=1/7 # recovery rate
m=0.01 #death rate between 0.01 to 0.1 %
M=(m)/(m+g) #=fatalities/resolutions
R0=b/g
print(M)
print(R0)

steps=np.arange(0,365,dtype=int)
time=1*steps
def SIRDV(s,i,r,d,b,g,m,a,v,e):
sdash= -s*i*(b/(s+i+r+d+v))-(a*s)
rdash=g*i
idash=((s*i*b)/(s+i+r+d+v))-(g*i)-(m*i)
ddash=m*i
vdash=(a*s)-((e*b*i*v)/(s+i+r+d+v))

return sdash, idash, rdash, ddash, vdash

tlen=len(time)
s=np.empty([tlen])
i=np.empty([tlen])
r=np.empty([tlen])
d=np.empty([tlen])
v=np.empty([tlen])

r[0]=0
i[0]=1
d[0]=0
v[0]=0
s[0]=N-i[0]-r[0]-d[0]-v[0]

dt=0.05

for t in steps:
if t

Подробнее здесь: [url]https://stackoverflow.com/questions/79197474/implementing-the-sird-model-in-python[/url]
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»