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