function H1N1(N,M,T,p1,p2,Ta,Tb,NN,MM,n)
TaS=zeros(N,M,T);TbS=zeros(N,M,T);%TaS,TbS分别为患病者,治愈者%的患病期,免疫期
i=1:1:100;j=1:1:100;t=0:1:100;i=0;j=0;
QQ1=round(1000*rand(1,pl*1000));
QQ2=round(1000*rand(1,p2*1000));%用于求节点是否选上的随机数
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%9%9%%
S=ones(N,M,T);S(NN,MM,1)=SS(2);S(15,5,1)=SS(2);
S(10,30,1)=SS(2);S(40,40,1)=SS(2);%S为状态矩阵
for t=2:1:T
for i=2:N-1
for j=2:M-1
if S(i.j,t-1)==SS(1)
S(i.j,t)=SS(1);TaS(i.j,t)=0;
elseif S(i,j,t-1)==SS(2)
if TaS(i.jt-1)>=Ta
TaS(i.j,t)=0;
S(i.j,t)=SS(3);
else
TaS(i.j,t)=TaS(i.j,t-1)+1;S(i.j,t)=SS(2);
end
else
if TbS(i.j,t-1)>=Tb
TbS(ij,t)=0;S(i.j,t)=SS(1);
else
TbS(i.j,t)=TbS(i.j,t-1)+1;S(ij,t)=SS(3);
end
end
end
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%得到t时刻的S分布状态
%%%%%%%%%%%%%%%%%%%%%%9%%%%%%%的%%%%%%%%%%%对所有节点进行扫描
for i=2:N-1
for j=2:M-1
if S(i.j,t)==SS(1)%%%%%%%%%%%判断是否为SS(1)分布状态
S(i.j,t)=SS(1);
elseif S(ij,t)==0%判断是否为新患病者,但不再参与传染
S(i.j,t)=0;
elseif S(i.j,t)==SS(2)%%%%判断是否为SS(2)分布状态%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%判断患病者周围八个位置的情况
if S(i-1,j,t)~=SS(1)
S(i-1,j,t)=S(i-1,j,t);
else iil=round(1000*rand(1));
one=ones(1,p1*1000);
ii2=iil*one;
QQ=QQ1-ii2;
for kk=1:p1*1000
if abs(QQ(1,kk))<=0.05
S(i-1,j,t)=SS(2);
end
end
end
if S(i,j-1,t)~=SS(1)
S(i,j-1,t)=S(i,j-1,t);
else iil=round(1000*rand(1));
one=ones(1,p1*1000);
ii2=iil*one;QQ=QQ1-ii2;
for kk=1:p1*1000
if abs(QQ(1,kk))<=0.05
S(ij-1,t)=SS(2);
end
end
end
if S(i+1.j,t)~=SS(1)
S(i+1,j,t)=S(i+1,j,t);
else iil=round(1000*rand(1));
one=ones(1,p1*1000);
ii2=iil*one;
QQ=QQ1-ii2;
for kk=1:p1*1000
if abs(QQ(1,kk))<=0.05
S(i+1,j,t)=0;
end
end
end
if S(ij+1,t)~=SS(1)
S(i.j+1,t)=S(i,j+1,t);
else iil=round(1000*rand(1));
one=ones(1,p1*1000);
ii2=iil*one;QQ=QQ1-ii2;
for kk=1:p1*1000
if abs(QQ(1,kk))<=0.05
S(ij+1,t)=0;
end
end
end
if S(i-1,j-1,t)~=SS(1)
S(i-1,j-1,t)=S(i-1.j-1,t);
else iil=round(1000*rand(1));
one=ones(1,pl*1000);
ii2=iil*one;
QQ=QQ1-ii2;
for kk=1:p1*1000
if abs(QQ(1,kk))<=0.05
S(i-1j-1,t)=SS(2);
end
end
end
if S(i+1,j-1,t)~=SS(1)
S(i+1,j-1,t)=S(i+1j-1,t);
else iil=round(1000*rand(1));
one=ones(1,p1*1000);
ii2=iil*one;
QQ=QQ1-ii2;
for kk=1:p1*1000
if abs(QQ(1,kk))<=0.05
S(i+1,j-1,t)=0;
end
end
end
if S(i+1,j+1,t)~=SS(1)
S(i+1,j+1,t)=S(i+1,j+1,t);
else iil=round(1000*rand(1));
one=ones(1,p1*1000);
ii2=iil*one;
QQ=QQ1-ii2;
for kk=1:p1*1000
if abs(QQ(1,kk))<=0.05
S(i+1,j+1,t)=0;
end
end
end
if S(i-1,j+1,t)~=SS(1)
S(i-1,j+1,t)=S(i-1.j+1,t);
else iil=round(1000*rand(1));
one=ones(1,p1*1000);
ii2=iil*one;
QQ=QQ1-ii2;
for kk=1:p1*1000
if abs(QQ(1,kk))<=0.05
S(i-1,j+1,t)=SS(2);
end
end
end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%周围八个位置判断结束 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%判断患病者与其它节点的传染关系
yy=random('Poisson',n,[N,M]);
for ii=2:N-1
for jj=2:M-1
if yy(ii,jj)==n
if
(ii==i-1&jj==j-1)|(ii==i-1&jj==j)|(i==i-1&j==j+1)|(ii==i&j==j-1)|(ii==i&jj==j)|(ii==i&jj==j+1)|(ii==i+1&jj==j-1)|(ii==i+1&jj==j)|(ii==i+1&jj==j+1)|S(ii,jj,t)~=SS(1);
S(ii,jj,t)=S(ii.jj,t);
else iil=round(1000*rand(1));
one=ones(1,p2*1000);
ii2=iil*one;
QQ=QQ2-ii2;
for kk=1:p2*1000
if abs(QQ(1,kk))<=0.05
S(ii,j+1,t)=0;
end
end
end
end
end
end %%%%%%%给%%始%%%%光%%的%%%%%%%%%%%%%%%判断患病者与其它节点的传染关系结束
else S(i,j,t)=SS(3);%9%%%%%%9%%判断是否为SS(4)状态
end%%5%%%%96%%结束SS状态判断end
end
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%:%%%%%%%%%%结束所有节点扫描
%%%%%%%将患病的节点赋值为SS(2)状态
for i=2:N-1
for j=2:M-1
if S(i.j,t)==0
S(i.j,t)=SS(2);
end
end
end
%结束赋值
if t==32
for i=2:N-5
for j=8:M-1
if S(i.j,t)==SS(3)
S(ij,t)=SS(1);
end
end
end
p2=0.000
end%%9869%0%9%5%9%59%9%59%9%%96%9%%9%%95%58%9%%9%9%9%9%9%9%59%9%59%9%5%96%96%95%根据实际因素做扰动
end%%9%9%%5%9%9%9%9%9%9%9%9%9%:9%59%9%9%3%%9%9%9%9%9%9%9%9%%9%%5%9%%%9%%%%%结束时间层的循环
S;%9%9%9%%9%98%9%9%5%9%9%5%9%%9%%59%9%9%%9%98%9%95%9%9%3%9%%9%9%%9%9%%9%%%%所有时间层的所有状态
%%%9%%%%%%%%%%%%5%%9%90%%%%5%%%%%%%0%%%以下为所有时刻对应的患病者人数
ii=zeros(1,T);aa=0;
for t=2:T
for i=2:N-1
for j=2:M-1
if S(i,j,t)==SS(2)
aa=aa+1;
end
end
end
ii(l,t)=aa;aa=0;
end
ii
plot(ii)
ij=(1:T);
yyy=[0,0,0,0,0,0,0,0,140,151,162,169,171,215,214,239,253,249,280,305,328,331,314
,344,302,299,281,283,303,280,238,228,217,218,220,233,247,260,274,287,300,313
,315,318,333,248,215,182,149]
plot(ij,ii,'+'),xlabel('t/day'),ylabel('The number of infected people')
hold on;
plot(ij,yyy)
text(2.5,330,'\fontsize{10}\it+simulation datal')
text(2.5,300,'\fontsize{10]\it-true data')
hold off