渡你满眼河川; 2023-05-19 09:09 采纳率: 40%
浏览 45
已结题

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

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

  • 写回答

1条回答 默认 最新

  • 技术宅program 2023-05-19 13:19
    关注

    以下答案由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模型的求解,并绘制出不同人群随时间变化的曲线。您可以通过修改不同参数观察其对流行病动力学的影响。

    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 5月26日
  • 修改了问题 5月20日
  • 修改了问题 5月19日
  • 修改了问题 5月19日
  • 展开全部