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

传染病模型


title: 传染病模型
date: 2023-7-24 10:55:00
updated: 2023-7-24 10:55:00
tags:

  • 算法
  • 数学建模
  • 传染病模型
  • matlab
    categories: 数学建模

传染病模型中的符号表示

1.png
2.png

SI模型(艾滋传染模型)

3.png
a42ebb91323b837f6bb51919a5b6fe0.png


%% 直接求微分方程的解析解
dsolve('Dx1 = -0.1 * x1 * x2 / 1000', 'Dx2 = 0.1 * x1 * x2 / 1000','x1(0) = 999, x2(0) = 1', 't');%% 根据S + I = N做一个化简x1 = dsolve('Dx1 = -0.1 * x1 * (1000 - x1) / 1000', 'x1(0) = 999', 't');
x2 = 1000 - x1;figure(1)
fplot(x1, [0 200], 'b')
hold on
fplot(x2, [0 200], 'r')
legend('易感者', '感染者')%% 这道题目可以求出解析解,但是后面的大部分题目都是求不出解析解这里我们再熟悉一遍数值解的求解过程clc; clear
global TOTAL_N
TOTAL_N = 1000;
i0 = 1;
s0 = 999;
[t, x] = ode45('fun1', [1:200], [s0, i0]);
plot(t, x(:, 1), 'r-*');
hold on
plot(t, x(:, 2), 'b-+')'
legend('易感者', '感染者')

function dx = fun1(t, x)global TOTAL_Nbeta = 0.1;dx = zeros(2, 1);dx(1) = - beta * x(1) * x(2) / TOTAL_N;dx(2) = beta * x(1) * x(2) / TOTAL_N;
end

1.png

SIS模型(普通传染病模型 )

2.png
156739ca74ef235912a5c5b559ed51f.png

%% 
clc;clear
global TOTAL_N
TOTAL_N = 1000;
global alfa;
alfa = 0.06;
global beta
beta = 0.1;
i0 = 1;
s0 = 999;
[t, x] = ode45('fun1', [1:500], [s0, i0]);
plot(t, x(:, 1), 'r-*');
hold on
plot(t, x(:, 2), 'b-+')'
legend('易感者', '感染者')

3.png

SIR模型

4.png
5.png

这里关于总人数毫无疑问 N = S + I + R但是在传染过程中,由于康复者已经有抗体且不会再被感染,所以这里有效人群就不能再把R计算在内了,N’ = S + I


%%
clc; clear all;
N = 1000;
i0 = 1;
s0 = 999;
r0 = 0;
[t, x] = ode45('fun1', [1:500], [s0 i0 0]);
x = round(x);
figure(1);
plot(t, x(:, 1), 'r-');
hold on 
plot(t, x(:, 2), 'b-');
hold on
plot(t, x(:, 3), 'g-');
hold on
legend('易感者S','感染者I','康复者R')
function dx = fun1(t, x)beta = 0.1;gamma = 0.02;% x(1)表示S,x(2)表示I, x(3)表示Rdx = zeros(3,1);C = x(1) + x(2);dx(1) = - beta * x(1) * x(2) / C;dx(2) =  beta * x(1) * x(2) / C - gamma * x(2);dx(3) = gamma * x(2);
end

6.png

对SIR模型的拓展
7.png

function dx = fun1(t, x)beta = 0.1;gamma = 0.02;if t > 100gamma = gamma * 10;end% x(1)表示S,x(2)表示I, x(3)表示Rdx = zeros(3,1);C = x(1) + x(2);dx(1) = - beta * x(1) * x(2) / C;dx(2) =  beta * x(1) * x(2) / C - gamma * x(2);dx(3) = gamma * x(2);
end

8.png
拓展2:考虑死亡率
9.png
10.png

SIRS模型

11.png
3.png

http://www.lryc.cn/news/99168.html

相关文章:

  • 一百三十七、Hive——HQL运行报错(持续更新中)
  • Spring Boot配置加密实践
  • SwiftUI-基础
  • vue。cli怎么使用自定义组件,会有哪些问题
  • linux----vim的使用
  • 95. Python基础教程:异常处理try...except语句
  • 详解rocketMq通信模块升级构想
  • 【BOOST程序库】对字符串的处理
  • (学习笔记-内存管理)虚拟内存
  • JVM理论(七)性能监控与调优
  • 复现YOLOv8改进最新MPDIoU:有效和准确的边界盒回归的损失,打败G/E/CIoU,效果明显!!!
  • LT6911C 是一款HDMI 1.4到双端口MIPIDSI/CSI或者LVDS加音频的一款高性能芯片
  • vue动态引入静态资源
  • perl 强制覆盖拷贝文件
  • C语言每日一题之整数求二进制1的个数
  • AcWing 4443.无限区域
  • 2D坐标系下的点的转换矩阵(平移、缩放、旋转、错切)
  • 【Rabbitmq】报错:ERROR CachingConnectionFactory Channel shutdown: channel error;
  • el-table组件的el-table-column电脑端使用fixed属性固定,移动端不使用固定,怎么实现?
  • RocketMQ 行业分享
  • 物联网场景中的边缘计算解决方案有哪些?
  • 【C++ 进阶】学习导论:C/C++ 进阶学习路线、大纲与目标
  • 【数据结构】实验七:字符串
  • 排序算法、
  • rbd快照管理、rbd快照克隆原理与实现、rbd镜像开机自动挂载、ceph文件系统、对象存储、配置对象存储客户端、访问Dashboard
  • vue、vuex、vue-router初学导航配合elementui及vscode快捷键
  • Elasticsearch:使用 ELSER 释放语义搜索的力量:Elastic Learned Sparse EncoderR
  • MySQL数据库分库分表备份(shell脚本)
  • 建造者设计模式go实现尝试
  • 创建交互式用户体验:探索JavaScript中的Prompt功能