新冠肺炎的SIRSi-疫苗动力学模型流行病

新冠肺炎的SIRSi-疫苗动力学模型流行病
论文网址是https://doi.org/10.1016/j.isatra.2023.05.008
怎么建立,用程序怎么实现?

以下答案由GPT-4.0Plus大模型与博主A努力中.......共同编写:
新冠肺炎SIRS模型的程序实现:

python
import numpy as np 
import matplotlib.pyplot as plt

# 参数初始化
N = 10000   # 总人口
S0 = 9900   # 初始易感者人数
I0 = 100    # 初始感染者人数 
R0 = 0      # 初始移除者人数
μ = 0.01    # 自然死亡率
β1 = 0.3    # 疾病致死率
β2 = 0.1    # 治愈率
γ = 0.08    # 疫苗接种率
θ = 0.5     # 疫苗有效率
α = 0.2     # 传染率

# 时间范围和步长
t_start = 0 
t_end = 365
dt = 0.1   

# 初始化列表记录每一时刻的人数    
t_list = []
S_list = []
I_list = [] 
R_list = []

# 设置初始值
S = S0 
I = I0
R = R0

# 求解并记录数据 
for t in np.arange(t_start, t_end, dt):
    # 计算每个时间段的变化量
    dS = μ*N - α*(1-θ)*S*I/N - μ*S + γ*R
    dI = α*(1-θ)*S*I/N - (β12)*I - μ*I 
    dR = β2*I 
    
    # 更新每个状态变量的值
    S = S + dS*dt
    I = I + dI*dt
    R = R + dR*dt
    
    # 添加至列表中
    t_list.append(t) 
    S_list.append(S)
    I_list.append(I)
    R_list.append(R)

# 绘制数据曲线   
plt.plot(t_list, S_list, label='易感者') 
plt.plot(t_list, I_list, label='感染者')
plt.plot(t_list, R_list, label='移除者')
plt.xlabel('时间/天')
plt.ylabel('人数') 
plt.legend()
plt.show()

该程序实现了SIRS模型的求解,并绘制出不同人群随时间变化的曲线。您可以通过修改不同参数观察其对流行病动力学的影响。