当前位置:   article > 正文

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

传染病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(f
本文内容由网友自发贡献,转载请注明出处:https://www.wpsshop.cn/w/羊村懒王/article/detail/374964
推荐阅读
相关标签
  

闽ICP备14008679号