SIR模型与R模拟

SIR病毒模型R模拟

1.SIR病毒模型

SIR病毒模型的的三个字母分别为病毒传播过程中的三种状态,其中

  • S,表示易感染者,即没有被感染病毒的人群
  • I,表示已感染者,即被感染病毒的人群
  • R,表示感染后恢复者,即感染后恢复人群

设总人口为 N + 1 N+1 N+1,初始感染人群 I ( 1 ) = 1 I(1) = 1 I(1)=1,易感染人群 S ( 1 ) = N S(1)=N S(1)=N,恢复人群 R ( 0 ) = 0 R(0)=0 R(0)=0。在任意时刻 t t t每个感染者以概率 α \alpha α使易感染者染病,感染者以概率 β \beta β解除或恢复。在时刻 t t t,易感染者未被感染的概率为 ( 1 − α ) I ( t ) (1-\alpha)^{I(t)} (1α)I(t) 于是得到递归公式
{ S ( t ) + I ( t ) + R ( t ) = N + 1 S ( t + 1 ) ∼ b i n o m ( S ( t ) , ( 1 − α ) I ( t ) ) R ( t + 1 ) ∼ R ( t ) + b i n o m ( I ( t ) , β ) I ( t + 1 ) ∼ N + 1 − S ( t + 1 ) − R ( t + 1 ) S ( 1 ) = N ; R ( 0 ) = 0 ; I ( 1 ) = 1 \left\{\begin{array}{l} S(t)+I(t)+R(t)=N+1\\ S(t+1)\sim binom(S(t),(1-\alpha)^{I(t)})\\ R(t+1)\sim R(t)+binom(I(t),\beta)\\ I(t+1)\sim N+1-S(t+1)-R(t+1)\\ S(1)=N;R(0)=0;I(1)=1 \end{array}\right. S(t)+I(t)+R(t)=N+1S(t+1)binom(S(t),(1α)I(t))R(t+1)R(t)+binom(I(t),β)I(t+1)N+1S(t+1)R(t+1)S(1)=N;R(0)=0;I(1)=1


2.R模拟

下面是R模拟代码

#------------SIR病毒模型模拟-----------------
# SIR函数定义
SIR <- function(a,b,N,T){
  # SIR病毒扩散模型
  # 参数a为感染率
  # 参数b为移除率
  # N人口总数
  # t考察时间
  S <- rep(0,T+1) # 易感染着
  I <- rep(0,T+1) # 感染者
  R <- rep(0,T+1) # 移除者
  S[1] <- N
  I[1] <- 1
  R[1] <- 0
  for(i in 1:T){
    S[i+1] <- rbinom(1,S[i],(1-a)^I[i]) 
    R[i+1] <- R[i] + rbinom(1,I[i],b)
    I[i+1] <- N + 1 - R[i+1] - S[i+1]
  }
  return(matrix(c(S,I,R),ncol = 3))
}

# 比较静态模拟
T = 1000 # 考察时间1000(天)
a = 0.001 # 感染率
N = 100 # 人口总数
par(mfrow = c(3,3))
L <- c(0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9)/100
for(b in L){
  M <- SIR(a,b,N,T)
  time <- seq(1,nrow(M),1)
  plot(time,M[,2],ylab = "I",type = "b",
       main = paste("传染率a = 0.001;恢复率b=",b)) # 感染人群
}

输出结果
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-870srYxG-1684047706891)(null)]


-END-
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值