SI模型下传染病模型的参数估计以及图像显示

针对于前半年的新冠肺炎疫情的数据,本UP(非数模向)自主在网上学习了几种通用的传染病模型,主要有:SI,SIS,SIR,SEIR四种模型,

其中,SI模型指的是易感者被感染,且不可治愈,较为典型的有艾滋病

SIS较为典型的范例是普通流感,因为感染者人群可能会有人重新恢复成易感人群

SIR指的是急性传染病,治愈后会再次被感染

SEIR指的是带潜伏期恶性传染病

S:潜在可感染者

E:已感染者

I:已确诊者

R:已痊愈者

假设总人口N不变,人口自然出生率与死亡率相同,不考虑因病死亡,新增人口为易感人群,

可列出如下图所示公式

S\left ( t+\Delta t \right )-S(t)=\mu N\left ( t \right )\Delta t-\beta \frac{S\left ( t \right )}{N}I\left ( t \right )\Delta t-\nu S\left ( t \right )\Delta t

I\left ( t+\Delta t \right )-I(t)=\beta \frac{S\left ( t \right )}{N}I\left ( t \right )\Delta t-\nu I\left ( t \right )\Delta t

因此可以对t求导,可得:

\frac{ds}{dt}=\mu N-\beta \frac{S}{N}I-\nu S

\frac{dI}{dt}=\frac{\beta SI}{N}-\nu I

由于N=S+I,我们简化第二个式子

dI/dt=beta*(N-I)*I/N-nu*I,令I/N为y,立即可得出:

dy/dt=(beta-nu)y(1-beta/(beta-nu))*y

我们在令a=beta-nu,(1-beta/(beta-nu))=b

由此,我们可以通过微分方程求解:

我们可以手工计算ySol,即1/(b+((1/y0)-b)*(exp(1))^(-1*a*T));

之后我们导入数据,看一看自今年1月18日起,后近一个月内的实际确诊人数:

现在,我们再通过matlab拟合来计算参数a,b的取值,默认情况下是负无穷到正无穷,但是公式过于复杂的话,matlab的fit函数是拟合不出来的,因此我们需要调用“编辑器”曲线拟合工具栏

如上图,custom可以选择函数类型,是指数函数还是自定义函数等,左边是自变量,下方是定义的公式,我们进行输入,T是自变量,Y是因变量,如下图;

默认状况下,我们可以看到参数默认值,我们可以适当修改参数,通过右边函数图像自动调整(黑点是真实数据,蓝线是拟合函数曲线),确定我们想要的参数

我们可以执行fit()语句一行所在之处执行,可以清晰地看到两个参数的取值:

最终拟合的函数图像与真实数据对比如下图所示

虽然误差还是很大,但是“万事总是开头难”,相信以后会进一步解决这个问题

参考资料:

  • 7
    点赞
  • 42
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值