Matlab实现新冠病毒传播模拟效果
作者:电力系统与算法之美 发布时间:2022-01-23 00:01:28
标签:Matlab,新冠,病毒传播
1 各种疫苗梳理
截至2022年3月,中国已经向120多个国家和国际组织提供了超过21亿剂疫苗,占中国以外全球疫苗使用总量的1/3。
1.1 灭活疫苗
2020年12月31日,国务院联防联控机制发布,国药集团中国生物新冠灭活疫苗已获得国家药监局批准附条件上市。
1.2 吸入式新冠疫苗
2021年11月12日—14日,全球首款可吸入式新冠疫苗亮相“2021第五届海南国际健康产业博览会”。全球首款吸入式新冠疫苗由军事医学研究院陈薇院士团队与康希诺生物股份公司合作研发,二期临床试验已取得阶段性成果,正在推进紧急使用的申请工作。据了解,吸入式新冠疫苗与肌肉注射使用了同种疫苗,其制剂配方未改变,仅采用不同的给药方式。雾化吸入免疫采用雾化器将疫苗雾化成微小颗粒,通过口部吸入的方式进入呼吸道和肺部,从而激发黏膜免疫,而这种免疫是通过肌肉注射所不能带来的。
1.3 植物蛋白技术疫苗
2022年2月24日 ,加拿大卫生部宣布,授权该国药企Medicago研制的新冠疫苗Covifenz可用于18至64岁成年人。这是加拿大审批通过的第六款新冠疫苗,也是首款本土研发的新冠疫苗,Covifenz是首个使用植物蛋白技术的新冠疫苗。
1.4 AI技术开发长效新冠疫苗
2022年4月11日报道,日本NEC公司8日宣布已开始利用最尖端的人工智能(AI)技术开发新冠疫苗。
1.5 法国Valneva新冠疫苗
2022年4月14日,彭博报道,根据一份政府声明,英国药品和保健品管理局(MHRA)批准法国生物技术公司Valneva开发的新冠疫苗。Valneva疫苗成为第六种获得MHRA授权的新冠疫苗。
2 matlab代码
%======欢迎关注公众号:电力系统与算法之美=======%
function spreadingBySir()
A=load('test.in');
% node number
N=size(A,1);
%感染概率
irate=0.3;
%恢复概率
rrate=1;
%初始时节点的状态表,初始时只有节点1为感染状态,其他的都为易感染状态
start_node=1;
%按照图的广度优先的原则来进行病毒传播
BFSspreading(A,N,start_node,irate,rrate);
end
function BFSspreading(A,N,start_node,irate,rrate)
%队列头
head=1;
%队列尾,开始队列为空,tail==head
tail=1;
%向头中加入感染源节点
queue(head)=start_node;
%队列扩展
head=head+1;
%感染节点列表
infection=start_node;
%恢复节点列表
recover=[];
%易感染节点列表
for i=1:N
%初始时,start_node为感染状态
if i==start_node
%-1表示该节点已经从列表中删除
susceptible(i)=-1;
end
%初始时,除了start_node为感染状态外,其他节点都处于易感染状态
susceptible(i)=i;
end
%开始按照广度优先搜索顺序向邻居节点传播
%判断队列是否为空
while tail~=head
%取队尾节点
i=queue(tail);
%如果该节点不在移除列表之中
if isempty(find(recover==i,1))
for j=1:N
%如果节点j与当前节点i相连并且节点j不在感染列表中
if A(i,j)==1 && isempty(find(infection==j,1))
infection_random=rand(1);
if infection_random < irate
%新节点入列
queue(head)=j;
%扩展队列
head=head+1;
%将新节点j加入感染列表
infection=[infection j];
%从易感染节点列表中删除该节点,设置为-1
[row,col,v] = find(susceptible==j) ;
susceptible(col)=-1;
susceptible(find(susceptible==-1))=[];
end
end
end
%将感染的节点按概率加入恢复节点列表
recover_random=rand(1);
if infection_random < rrate
%恢复
recover=[recover i];
%从感染列表中删除
[row,col,v] = find(infection==i) ;
infection(col)=-1;
infection(find(infection==-1))=[];
end
tail=tail+1;
end %end if isempty(find(recover==i,1)
end %end while
%分别现实最后节点的状态
infection
susceptible
recover
end
来源:https://blog.csdn.net/weixin_46039719/article/details/124198360


猜你喜欢
- 一般来说,一个真正的、完整的站点是离不开数据库的,因为实际应用中,需要保存的数据很多,而且这些数据之间往往还有关联,利用数据库来管理这些数据
- 在开始课程之前,我要求学生们填写一份调查表,这个调查表反映了它们对Python中一些概念的理解情况。一些话题("if/
- 常用的转换函数是 cast 和 convert,用于把表达式得出的值的类型转换成另一个数据类型,如果转换失败,该函数抛出错误,导致整个事务回
- 如何使整个页面内容居中,如何使高度适应内容自动伸缩。这是学习CSS布局最常见的问题。下面就给出一个实际的例子,并详细解释。(本文的经验和是蓝
- 本教程中将详细阐述传统的图形设计元素是如何应用在现代(2.0时代)的页面设计中的,然后我将解释为什么它们能流行开来,以及如何、何时、在哪里使
- 自己前端开发中常用到的一些技巧及问题解决方法,会常更新,希望对前端路上的朋友有帮助。1、文章标题列表中日期居右显示的方法(提供了两种方法,使
- 问题你需要在大数据集(比如数组或网格)上面执行计算。解决方案涉及到数组的重量级运算操作,可以使用NumPy库。NumPy的一个主要特征是它会
- 首先对图片进行预处理,是图片的分配率大小在合适的范围内,避免图片太大占满整个电脑屏幕。from PIL import Imagedef pr
- 本文实例讲述了php生成shtml类及其用法。分享给大家供大家参考。具体如下:<?php class Shtml{ &nb
- 需求:两个文件,一个文件为统计报表,里面含有手机号,另一个文件为手机号段归属地,含有手机号码前七位对应的地区。需要对统计报表进行处理,将手机
- 当你检查scrapy二进制文件时,你会注意到这么一段python script#!/usr/bin/pythonfrom scrapy.cm
- 在使用Django过程中需要开发一些API给其他系统使用,为了安全把Token等验证信息放在header头中。如何获取:使用request.
- 场景:把一个时间字符串转成Date,存进Mysql。时间天数会比实际时间少1天,也可能是小时少了13-14小时Mysql的时区是CST(使用
- 本篇文章将介绍:xlwt 常用功能xlrd 常用功能xlutils 常用功能xlwt写Excel时公式的应用xlwt写入特定目录(路径设置)
- 1、卓越亚马逊的首页轮换图片,每刷新一次,都是随机不同的顺序显示,这样的设计解决了对于较多图片轮换而靠后的图片信息很少被看到的问题,这点对于
- 这篇文章主要介绍了如何基于python操作json文件获取内容,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,
- 在SQL Server中,数据类型datetimeoffset转换为datetime类型或datetime2类型时需要特别注意,有可能一不小
- 本文实例讲述了Python实现的摇骰子猜大小功能小游戏。分享给大家供大家参考,具体如下:最近学习Python的随机数,逻辑判断,循环的用法,
- 思考一下下面的代码片段: def foo(numbers=[]): numbers.append(9) p
- 有没有一种方法可以为Django项目中的每个应用程序创建多个自定义错误模板,我的意思是,在我的项目中,我有3个应用程序,每个应用程序将显示3