二年级的我来绘制一下SEIR病毒传播曲线图

2023-11-27 12:32

本文主要是介绍二年级的我来绘制一下SEIR病毒传播曲线图,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

最近的这个情况大家都很清楚,本来好好的春节,一个可以和同学出去happy的假期只能老老实实当一个肥宅,还是一直肥的那种!!!每天写点代码,追追剧,看看考研复习,另外就是刷B站。这不,今天下午刷到毕导又来教我们二年级的知识。建议大家都先去看看

链接奉上
在这里插入图片描述

重点来了

一开始映入我们眼帘的是他那帅气的脸庞,随着进度条的蠕动,出现的数学公式和各种病毒传播模型使我不禁思索,我真的是大学生吗?大三学过这玩意?哈哈,不开玩笑,第一遍看可能确实有点懵,但是看完后想想还是能慢慢理解的,然后由于毕导从不放代码的缘故,所以大多时候只能把他的结果图截屏,这一次有了时间,正好闲着没事就动手把模型图画出来。
在这里插入图片描述
在这里插入图片描述
大家看完视频,知道了SEIR模型各参数的意义,然后再根据给的微分方程一步步将变化率代入计算,求得明天的值,最后也画出来了这个图。
在这里插入图片描述

代码

很明显,毕导用的是matlab,而我matlab除了数学建模用过几次,基本一直在用python写数据分析之类的,所以这次还是用python

import math
import numpy as np
import matplotlib
import matplotlib.pyplot as pltplt.rcParams['font.sans-serif'] = ['KaiTi']
plt.rcParams['axes.unicode_minus'] = False# 首先还是设置一下参数,之后方便修改
N=10000        # 人口总数E=[]           # 潜伏携带者
E.append(0)I=[]           # 传染者
I.append(1)S=[]           # 易感者
S.append(N-I[0])R=[]           # 康复者
R.append(0)r=20           # 传染者接触人数
b=0.03         # 传染者传染概率
a=0.1          # 潜伏者患病概率
r2=20          # 潜伏者接触人数
b2=0.03        # 潜伏者传染概率
y=0.1          # 康复概率T=[i for i in range(0,160)]   # 时间for i in range(0,len(T)-1):S.append(S[i]-r*b*S[i]*I[i]/N-r2*b2*S[i]*E[i]/N)E.append(E[i]+r*b*S[i]*I[i]/N-a*E[i]+r2*b2*S[i]*E[i]/N)I.append(I[i]+a*E[i]-y*I[i])R.append(R[i]+y*I[i])def plot():plt.figure()plt.title("SEIR-病毒传播时间曲线")plt.plot(T,S,color='r',label='易感者')plt.plot(T, E, color='k', label='潜伏者')plt.plot(T, I, color='b', label='传染者')plt.plot(T, R, color='g', label='康复者')plt.grid(False)plt.legend()plt.xlabel("时间(天)")plt.ylabel("人数")plt.show()plot()

并不是很规范,那就改规范点

import math
import numpy as np
import matplotlib
import matplotlib.pyplot as pltplt.rcParams['font.sans-serif'] = ['KaiTi']
plt.rcParams['axes.unicode_minus'] = Falsedef calc(T):for i in range(0, len(T) - 1):S.append(S[i] - r * b * S[i] * I[i] / N - r2 * b2 * S[i] * E[i] / N)E.append(E[i] + r * b * S[i] * I[i] / N - a * E[i] + r2 * b2 * S[i] * E[i] / N)I.append(I[i] + a * E[i] - y * I[i])R.append(R[i] + y * I[i])def plot(T,S,E,I,R):plt.figure()plt.title("SEIR-病毒传播时间曲线")plt.plot(T,S,color='r',label='易感者')plt.plot(T, E, color='k', label='潜伏者')plt.plot(T, I, color='b', label='传染者')plt.plot(T, R, color='g', label='康复者')plt.grid(False)plt.legend()plt.xlabel("时间(天)")plt.ylabel("人数")plt.show()if __name__ == '__main__':# 首先还是设置一下参数,之后方便修改N = 10000  # 人口总数E = []  # 潜伏携带者E.append(0)I = []  # 传染者I.append(1)S = []  # 易感者S.append(N - I[0])R = []  # 康复者R.append(0)r = 20  # 传染者接触人数b = 0.03  # 传染者传染概率a = 0.1  # 潜伏者患病概率r2 = 20  # 潜伏者接触人数b2 = 0.03  # 潜伏者传染概率y = 0.1  # 康复概率T = [i for i in range(0, 160)]  # 时间calc(T)plot(T,S,E,I,R)

这样代码就好看多了

最后

身为一个武汉大学生,还是希望武汉能早点恢复过来的,武汉加油,中国加油!!! 另外大家也可以查查资料,用更准确的数据去绘制模型,看看模型到底准确性如何。

这篇关于二年级的我来绘制一下SEIR病毒传播曲线图的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/427669

相关文章

【WebGPU Unleashed】1.1 绘制三角形

一部2024新的WebGPU教程,作者Shi Yan。内容很好,翻译过来与大家共享,内容上会有改动,加上自己的理解。更多精彩内容尽在 dt.sim3d.cn ,关注公众号【sky的数孪技术】,技术交流、源码下载请添加微信号:digital_twin123 在 3D 渲染领域,三角形是最基本的绘制元素。在这里,我们将学习如何绘制单个三角形。接下来我们将制作一个简单的着色器来定义三角形内的像素

Flutter 进阶:绘制加载动画

绘制加载动画:由小圆组成的大圆 1. 定义 LoadingScreen 类2. 实现 _LoadingScreenState 类3. 定义 LoadingPainter 类4. 总结 实现加载动画 我们需要定义两个类:LoadingScreen 和 LoadingPainter。LoadingScreen 负责控制动画的状态,而 LoadingPainter 则负责绘制动画。

利用matlab bar函数绘制较为复杂的柱状图,并在图中进行适当标注

示例代码和结果如下:小疑问:如何自动选择合适的坐标位置对柱状图的数值大小进行标注?😂 clear; close all;x = 1:3;aa=[28.6321521955954 26.2453660695847 21.69102348512086.93747104431360 6.25442246899816 3.342835958564245.51365061796319 4.87

【详细介绍一下GEE】

GEE(Google Earth Engine)是一个强大的云计算平台,它允许用户处理和分析大规模的地球科学数据集,如卫星图像、气候模型输出等。以下是对GEE用法的详细介绍: 一、平台访问与账户设置 访问GEE平台: 用户可以通过访问Google Earth Engine的官方网站来开始使用GEE。 创建账户: 用户需要注册并登录Google账户,然后申请访问GEE平台。申请过程可能需要提

YOLOv8/v10+DeepSORT多目标车辆跟踪(车辆检测/跟踪/车辆计数/测速/禁停区域/绘制进出线/绘制禁停区域/车道车辆统计)

01:YOLOv8 + DeepSort 车辆跟踪 该项目利用YOLOv8作为目标检测模型,DeepSort用于多目标跟踪。YOLOv8负责从视频帧中检测出车辆的位置,而DeepSort则负责关联这些检测结果,从而实现车辆的持续跟踪。这种组合使得系统能够在视频流中准确地识别并跟随特定车辆。 02:YOLOv8 + DeepSort 车辆跟踪 + 任意绘制进出线 在此基础上增加了用户

使用matplotlib绘制散点图、柱状图和饼状图-学习篇

一、散点图 Python代码如下: num_points = 100x = np.random.rand(num_points) #x点位随机y = np.random.rand(num_points) #y点位随机colors = np.random.rand(num_points) #颜色随机sizes = 1000 * np.random.rand(num_points) # 大

黑神话:悟空》增加草地绘制距离MOD使游戏场景看起来更加广阔与自然,增强了游戏的沉浸式体验

《黑神话:悟空》增加草地绘制距离MOD为玩家提供了一种全新的视觉体验,通过扩展游戏中草地的绘制距离,增加了场景的深度和真实感。该MOD通过增加草地的绘制距离,使游戏场景看起来更加广阔与自然,增强了游戏的沉浸式体验。 增加草地绘制距离MOD安装 1、在%userprofile%AppDataLocalb1SavedConfigWindows目录下找到Engine.ini文件。 2、使用记事本编辑

Excel绘制CDF图

对如下20个原始数据绘制cdf图 1. 对数据进行排序,从小到大 2. 计算累积分布: 计算公式为: 然后对C3下拉,得到累积分布数据。 3. 选中B、C两列绘制散点图:

做技术的大家可以看一下这些网站,

1   csdn  http://www.csdn.net/ 2. 开源中国  http://www.oschina.net/ 3. 深度开源(有些经验之谈) http://www.open-open.com/ 上面很多东西大家可以学很多。。。。。。 android须知的网址 Android开发者网站可以很好的帮助你,很多的文档也可以通过SDK工具下载。这些文档不仅仅是Javadoc A

【python 图像绘制】图像绘制知识总结

颜色图谱 具体颜色描述autumn 红橙黄cool 青-洋红copper 黑-铜flag 红-白-蓝-黑gray 黑-白hot 黑-红-黄-白hsv hsv颜色空间, 红-黄-绿-青-蓝-洋红-红inferno 黑-红-黄jet 蓝-青-黄-红magma 黑-红-白pink 黑-粉-白plasma 绿-红-黄prism 红-黄-