传染病传播模型(SIS)Matlab代码

染病传播模型(SIS)Matlab代码
南京艺术学院尚美学院function spreadingability=sir(A,beta,mu)
for i=1:length(A)
for N=1:50%随机次数
InitialState=zeros(length(A),1);InitialState(i)=1;
time=5;%传播时间
I(N,:)=sire(A,InitialState,beta,mu,time);
end钛材料
spreadingability(i,1)=mean(mean(I));%节点i的传播能⼒
end
end
function I=sire(A,InitialState,beta,mu,time)
%******************************
% A邻接矩阵襄樊市职业技术学院
% InitialState初始感染状态
% beta感染率
% mu恢复率
% time传播时间
%*****************************
Infected=InitialState;recover=[];
Infected_temp=zeros(size(Infected));
for t=1:1:time %⼀共进⾏时长time的演化
%%
%若i是易感节点, 则对i以⼀定概率进⾏传染
x1=find(Infected==0);
a1=rand(size(x1));
b1=beta*(A(x1,:)*Infected);%已经被感染的节点以⼀定概率去感染其他节点
xx1=setdiff(find(a1<b1),recover);
Infected_temp(x1(xx1))=1;%不是recover的节点以⼀定概率被感染
xx2=setdiff(find(a1>=b1),recover);
Infected_temp(x1(xx2))=0;%对不是recover且没被感染的其他节点保留易感状态
%%
%若i是染病节点, 则对i以⼀定概率进⾏移除(recover)
x2=find(Infected==1); %如果是已经被感染的节点
a2=rand(size(x2));
xx3=find(a2<mu);%对染病节点以⼀定概率进⾏recover
recover=[recover;xx3];%更新被recover节点;
xx4=find(a2>=mu);
司礼监Infected_temp(x2(xx4))=1;%余下未被recover的节点仍保留感染能⼒
Infected=Infected_temp;
I(t)=sum(Infected); %记录每个时间步的染病节点数量
end
end
  susceptible-infected-recovered(SIR)传染病模型常⽤来计算节点影响⼒标准测量。在SIR模型中,
节点有三个状态:易感者(susceptible),感染者(infected),恢复者(recovered)。易感者能够被感染者染病,感染者染病且有感染易感者的能⼒,恢复者由感染者恢复⽽成,不再具备感染能⼒同时也不会再被感染。传染病模型参数有恢复率µ,传染概率β,重复仿真次数T,仿真时间timespace。仿真过程如下:选择⽹络中⼀个节点i作为感染者节点,以传染概率β向i连接的邻居易感者节点传染病毒,被染病的节点继续以β的概率向他们的邻居易感者节点传染。同时每个染病节点在每阶段以µ的概率转变成恢复节点。当µ=0时,⽹络中只存在感染者和易感者,此时模型被称为Susceptible-infected(SI)模型。仿真结束后,可以得到每个节点i的传染能⼒S i
中国海关在线学习平台
文氏图其中k i(t)表⽰节点第t次仿真时传染的节点个数,⽹络中节点传染能⼒S=[S1,S2,…,S N]
2018/11/20 更新:经过⽹友的指正,需要说明的是下⾯的代码是SIS传染病模型,recover节点仍具有再次被感染的能⼒。和SIR模型中recover节点不再被感染还是有区别的

本文发布于:2024-09-22 12:42:00,感谢您对本站的认可!

本文链接:https://www.17tex.com/xueshu/369834.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:节点   感染   染病   模型   概率   感染者
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议