Реализация модели 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-delta 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/implementation-of-the-sird-model-in-python[/url]
Ответить

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

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

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

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

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