Matlab实现新冠病毒传播模拟效果
作者:电力系统与算法之美 时间:2022-01-23 00:01:28
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
标签:Matlab,新冠,病毒传播
0
投稿
猜你喜欢
下一代web:浏览器存储支持
2008-06-11 11:50:00
python写日志封装类实例
2022-07-23 22:40:47
python 深度学习中的4种激活函数
2023-10-23 19:42:23
Python argparse模块使用方法解析
2022-10-12 10:58:57
JavaScript解释型模版
2009-10-19 23:12:00
asp使用Application来统计在线人数方法
2007-08-13 12:43:00
利用Pycharm断点调试Python程序的方法
2023-07-05 03:47:08
numpy之sum()的使用及说明
2023-12-12 00:31:16
Python图像处理模块ndimage用法实例分析
2023-09-08 16:52:26
python opencv肤色检测的实现示例
2023-06-13 20:31:58
Python单例模式的四种创建方式实例解析
2023-08-14 17:22:00
Python线性拟合实现函数与用法示例
2023-12-04 14:29:33
Python实战之单词打卡统计
2023-06-06 18:22:17
python实现实时视频流播放代码实例
2021-09-11 21:11:22
Python中字符串对齐方法介绍
2022-07-18 06:54:50
把JSON数据格式转换为Python的类对象方法详解(两种方法)
2022-09-08 03:13:05
python进程间通信Queue工作过程详解
2021-04-12 01:15:58
Python中bisect的用法及示例详解
2022-07-06 16:00:12
了解WEB页面工具语言XML(三)支持工具
2008-09-05 17:18:00
100行Python代码实现每天不同时间段定时给女友发消息
2023-07-11 20:32:56