当前位置: 首页 > news >正文

Python流感常微分方程房室数学模型

🎯要点

🎯房室数学模型:🖊常微分方程推理模型 | 🖊模型求解条件:静态人口、混合均匀分布、感染率相同、健康免疫力 | 🖊绘制模型表征接近平衡相图 | 🖊计算模型随时间变化有效传染数 | 🖊计算免疫力衰减率​ | 🖊计算反复感染和传染性关系模型 | 🖊计算病毒携带者模型​ | 🖊计算低传染性​。🎯宿主模型:🖊计算风险异质人群 | 🖊计算接触网络混合矩阵 | 🖊年龄异质性耦种群变化 | 🖊感染矩阵模型推理​。🎯病原体模型:🖊疟疾传播常微分方程模型 | 🖊绘制模型单相剖面流图 | 🖊媒介传播疾病推理 | 🖊人畜共患疾病模型。🎯病原体动力学:🖊无共感染无交叉免疫微分方程模型​。🎯疫苗建模 | 🎯流感时间动态平衡态和稳定性分析 | 🎯流感空间动态晶格模型。

🎯常微分方程-用例:Python机器人动力学和细胞酶常微分方程。

🍇Python欧拉法求解一般流感常微分方程模型

这些模型通常使用常微分方程(确定性)运行,但也可以与随机框架一起使用,这种框架更现实,但分析起来要复杂得多。

此类模型可以预测诸如疾病如何传播、感染总数或流行病持续时间之类的事情,并估计各种流行病学参数,如再生数。 还可以显示不同的公共卫生干预措施如何影响流感的结果,例如,在特定人群中发放有限数量的疫苗的最有效技术是什么。

模型参数假设:

  • 平均而言,群体中的 S S S个体每单位时间会遇到 β \beta β个体。
  • 每单位时间离开房室 I I I的感染者的比率是 γ \gamma γ I I I​(一旦一个人被感染,他就会对该疾病产生免疫力)。
  • 人口规模 N = S + I + R N=S+I+R N=S+I+R是恒定的

这是模型的方程组:
{ d S d t = − β S N I d I d t = β S N I − γ I , d R d t = γ I . \left\{\begin{array}{l} \frac{ d S}{ d t}=-\frac{\beta S}{N} I \\ \frac{ d I}{ d t}=\frac{\beta S}{N} I-\gamma I, \\ \frac{ d R}{ d t}=\gamma I . \end{array}\right. dtdS=NβSIdtdI=NβSIγI,dtdR=γI.
模型图示:

疑似S
感染I
恢复R

问题公式化
X = ( S I R ) X=\left(\begin{array}{l} S \\ I \\ R \end{array}\right) X= SIR
微分系统写为:
X ˙ = ( − β S N I β S N I − γ I γ I ) = f ( X ) \dot{X}=\left(\begin{array}{c} -\frac{\beta S}{N} I \\ \frac{\beta S}{N} I-\gamma I \\ \gamma I \end{array}\right)=f(X) X˙= NβSINβSIγIγI =f(X)
💦通用方法求解

import numpy as np
import matplotlib.pyplot as plt
import matplotlib as mpl
import pandas as pd
import numba
from scipy import integrate

💦给定相应数据:

N = 350. 
I0, R0 = 1., 0 
S0 = N - I0 - R0 
beta, gamma = 0.4, 0.1 
tmax = 160 
Nt = 160
t = np.linspace(0, tmax, Nt+1)

💦定义微分函数:

def derivative(X, t):S, I, R = XdotS = -beta * S * I / NdotI = beta * S * I / N - gamma * IdotR = gamma * Ireturn np.array([dotS, dotI, dotR])
X0 = S0, I0, R0 #Initial conditions vector
res = integrate.odeint(derivative, X0, t)
S, I, R = res.T
Seuil = 1 - 1 / (beta/gamma)
Seuil
0.75

绘制个体疑似感染、感染和恢复趋势图:

plt.figure()
plt.grid()
plt.title("odeint method")
plt.plot(t, S, 'orange', label='Susceptible')
plt.plot(t, I, 'r', label='Infected')
plt.plot(t, R, 'g', label='Recovered with immunity')
plt.xlabel('Time t, [days]')
plt.ylabel('Numbers of individuals')
plt.ylim([0,N])
plt.legend()plt.show();

💦欧拉法求解:

def Euler(func, X0, t):dt = t[1] - t[0]nt = len(t)X  = np.zeros([nt, len(X0)])X[0] = X0for i in range(nt-1):X[i+1] = X[i] + func(X[i], t[i]) * dtreturn X
Nt = 100
Xe = Euler(derivative, X0, t)
plt.figure()plt.title("Euler method")
plt.plot(t, Xe[:,0], color = 'orange', linestyle = '-.', label='Susceptible')
plt.plot(t, Xe[:,1], 'r-.', label='Infected')
plt.plot(t, Xe[:,2], 'g-.', label='Recovered with immunity')
plt.grid()
plt.xlabel("Time, $t$ [s]")
plt.ylabel("Numbers of individuals")
plt.legend(loc = "best")plt.show();

🔗参阅一:计算思维

🔗参阅二:亚图跨际

相关文章:

  • JVM运行时内存:垃圾回收器(Serial ParNew Parallel )详解
  • React里面useMemo和useCallBack的区别
  • Hsql每日一题 | day02
  • 【simple-admin】simple-admin-core 首次服务启动 如何配置mysql数据库表 | 如何docker启动core
  • Linux安装Mysql
  • 【MySQL精通之路】InnoDB(7)-锁和事务模型
  • Docker镜像源自动测试镜像速度,并选择速度最快的镜像
  • vb.net打开CAD指指定路径文件
  • 抽象工厂模式(AbstractFactoryPattern)
  • SQL刷题笔记day2
  • Convolutional Occupancy Networks【ECCV2020】
  • 《主对角线求和》
  • 2024云曦期中考(部分复现)
  • 【图论及其运用 — 电子科技大学】(四)第四章 欧拉图与哈密尔顿图(Euler 图与 Hamilton 图)
  • 电子招投标系统源码实现与立项流程:基于Spring Boot、Mybatis、Redis和Layui的企业电子招采平台
  • java正则表式的使用
  • quasar-framework cnodejs社区
  • React中的“虫洞”——Context
  • Vim Clutch | 面向脚踏板编程……
  • 阿里云爬虫风险管理产品商业化,为云端流量保驾护航
  • 不发不行!Netty集成文字图片聊天室外加TCP/IP软硬件通信
  • 成为一名优秀的Developer的书单
  • 目录与文件属性:编写ls
  • 如何利用MongoDB打造TOP榜小程序
  • 如何抓住下一波零售风口?看RPA玩转零售自动化
  • 通信类
  • 我与Jetbrains的这些年
  • Java性能优化之JVM GC(垃圾回收机制)
  • ​如何防止网络攻击?
  • # 透过事物看本质的能力怎么培养?
  • #define 用法
  • #mysql 8.0 踩坑日记
  • #知识分享#笔记#学习方法
  • (03)光刻——半导体电路的绘制
  • (10)Linux冯诺依曼结构操作系统的再次理解
  • (16)UiBot:智能化软件机器人(以头歌抓取课程数据为例)
  • (39)STM32——FLASH闪存
  • (Redis使用系列) Springboot 实现Redis消息的订阅与分布 四
  • (web自动化测试+python)1
  • (附源码)计算机毕业设计SSM基于java的云顶博客系统
  • (四)七种元启发算法(DBO、LO、SWO、COA、LSO、KOA、GRO)求解无人机路径规划MATLAB
  • (转)3D模板阴影原理
  • (转贴)用VML开发工作流设计器 UCML.NET工作流管理系统
  • ***汇编语言 实验16 编写包含多个功能子程序的中断例程
  • .ai域名是什么后缀?
  • .bat批处理(二):%0 %1——给批处理脚本传递参数
  • .Net CF下精确的计时器
  • .Net Core与存储过程(一)
  • .NET+WPF 桌面快速启动工具 GeekDesk
  • @ComponentScan比较
  • @data注解_一枚 架构师 也不会用的Lombok注解,相见恨晚
  • @Documented注解的作用
  • [.NET 即时通信SignalR] 认识SignalR (一)
  • [ACTF2020 新生赛]Upload 1
  • [AIGC] CompletableFuture的重要方法有哪些?