• 大小: 5KB
    文件类型: .m
    金币: 1
    下载: 0 次
    发布日期: 2021-05-10
  • 语言: Matlab
  • 标签: matlab  

资源简介

传染病模型的matlab仿真程序,自己写的可能有bug,加入调控措施的控制变量,使用自动元胞机原理,可仿真疫情发展情况

资源截图

代码片段和文件信息

for j=1:1

N=300;%仿真步数
n=500;%元胞边长
cell = init(n0.002);%初始化
cell(22)=1;
cell(1:) = 10;
cell(n:) = 10;
cell(:1) = 10;
cell(:n) = 10;%加外壁
left = 10*ones(n-21);
up=10*ones(1n);
%初始化
cell_new = zeros(nn);
cell_crnl = zeros(nn);
num_of_infected = zeros(1N);
num_of_dead = zeros(1N);
total_num_of_infected=zeros(1N);
num_new_patient=zeros(1N);
num_of_health=zeros(1N);
num_of_recover=zeros(1N);
num_of_newpatient=zeros(1N);
num_of_newdeath=zeros(1N);
get_medicane=0;
p =0.009;%感染率
q = 0.955;%死亡率
r = 0.005;%复原率
glrate=0.7;%隔离率
r1=5*r;%吃药后复原率
ym=100;%ym为每日接种疫苗数
medicane =10;%药的数目 
flag=0;
%  pp=medicane;
% if j==2
%     medicane=pp-10;
% elseif j==3
%     medicane=pp+10;
% end
%     

cell_color=zeros(nn3);%颜色矩阵
amount_of_step =0;
% imh = image(cell_color);
% set(imh ‘erasemode‘ ‘none‘)
% axis equal
% axis tight
rate_of_infected = zeros(1N);
rate_of_death = zeros(1N);
aa = zeros(n-2n-2);
 delay=0;
for i=1:N

    getmedicane=0;
    num_of_infected(i)=sum(sum(cell==1|(cell>4&cell<9)|cell==12|cell==11));
%     glrate = 2.5*log2(i)/log2(3000);
    cell_color=zeros(nn3);%颜色矩阵
    cell_crnl(::) = 0;
    cell = cell(1:n1:n);
    cell_crnl(cell==1|(cell>4&cell<9)|cell==12) = p;
%     cell(cell==12)=11*(rand()>=0.5)+rand()<0.5;
     ymrate = ym/sum(sum(cell==0));
    
    x = 2:n-1;
    y = 2:n-1;
%     if rand()<0.1
%         p=p+0.5;
%     end
%     healthy = find(cell==0);
%     healthy_position = [mod(healthy./n);floor(mod(healthy./n))];

    rand_cell = rand(nn);
    rand_cell2 = rand(n-2n-2);
    
    ff=12*(rand_cell    ff(ff==0)=1;
    cell_new(cell_new==1)=ff(cell_new==1);
    ff(ff==1)=11;
    cell_new(cell_new==11)=ff(cell_new==11);
    fff(i)=sum(sum(cell_new==12));
    
    %常人患病
    cell_new(cell_new>5&cell_new<10)= cell_new(cell_new>5&cell_new<10)-1;
    num_of_newpatient(i) = sum(sum(cell_new==5));
    cell_new(cell==5)=1;

       %显病复原
    bb=2*(rand_cell    bb(bb==0)=1;
    cell_new(cell_new==1) = bb(cell_new==1);
    %隔离复原
    bb(bb==1)=11;
    cell_new(cell_new==11)=bb(cell_new==11);
     gg=2*(rand_cell     gg(gg==0)=12;
     cell_new(cell_new==12) = gg(cell_new==12);
    %接种疫苗
    dd = 4*(rand_cell    cell_new(cell_new==0)=dd(cell_new==0);
    
   
    %各种死亡
    cc=3*(rand_cell>q);
    cc(cc==0)=1;
    cell_new(cell_new==1)=cc(cell_new==1);
     cc(cc==1)=11;
    cell_new(cell_new==11)=cc(cell_new==11);
     cc(cc==11)=12;
    cell_new(cell_new==12)=cc(cell_new==12);

    
   
    %隔离
    ee=11*(rand_cell-r    ee(ee==0)=1;
    cell_n

评论

共有 条评论