二维传染病模型.doc
文本预览下载声明
数学模型实验二
传染病模型实验
姓 名:
学科专业: 电气信息类创新实验班
学号:
完成日期: 2012/07/07
大连理工大学
Dalian University of Technology
目 录
问题重述 1
模型假设 1
相关函数命令 2
符号约定 2
实现过程 3
结果与讨论 5
总结与心得体会 7
问题重述
最近,随着传染病在世界范围内的爆发,传染病也就越来越受到人们的广泛关注也越来越受到人们的重视,为了研究传染病在人群中的传播机制,我们建立了模型进行模拟传染病在人群中的传播,从而对传染病有进一步的认识和了解。为预防和控制传染病提供有力的帮助和支持!
模型假设
假设一:假设该群体不会再受到外部其他群体的影响;
假设二:假设该群体严格按照约定的演化机制进行演化,该传染病不会变异;
假设三:假设该群体中的个体不存在个体的流动;
假设四:假设该群体随时间演化一百步;
假设五:假设该群体中共有100*101个个体,每个个体的下一个状态仅仅有上下左右四个邻居和自身上一个时间的状态决定,且位于边界上的个体不会受到边界为因素的影响,其状态仅仅由其有效邻居决定;
假设六:假设该传染病仅仅在潜伏期具有传染性,患病个体不再具有传染病,且显示患病后下一个时间步会无条件治愈,并且治愈后不会重复患病;
假设六:假设该传染病的潜伏期为3个时间步,三个时间步后会在、显示为患病;
相关函数命令
列举在解决问题的过程中用到的Matlab命令,并举例说明每个命令的用法。
a=zeros(m,n);
b=ones(m,n);
for … end;
4)if … else … end ;
5)r=rand(1);
6)imagesc(a);
7)pause(t)
举例说明:
a=zeros(m,n);生产一个m行n列的零矩阵;
b=ones(m,n);生成一个m行n列的内部元素全为1的矩阵;
for … end;该命令表示一个循环体,如for i=1:10 a=i;end表示给数组a赋值;
if … else … end;该命令表示一个条件语句,如if ( a1) t=1; else a=0;表示若数据a大于1,则数据t的值为1,否则为0;
imagesc(a);该命令表示绘制矩阵a的快照图;
pause(t); 该命令表示每隔t时间会绘制下一时刻的图像。
符号约定
a(i,j)表示位于第i行第j列的个体所处的状态;
A为为了实现同步更新机制而定义的一个缓存矩阵;
a(i,j)=0 表示该时刻该位置的个体为已免疫状态;
a(i,j)=1 表示该时刻该位置的个体为易感状态;
a(i,j)=2表示该时刻该位置的个体为潜伏期状态;
a(i,j)=3 表示该时刻该位置的个体为患病状态;实现过程
首先我生产了一个102*103的矩阵,用来表示100*101个个体在同一时刻的状态,首先我确定了初始状态时各个个体的状态,不妨假设该群体中90%的个体都是易感人群,2%的个体为已免疫个体,6%的个体为处于第一步潜伏期的个体,2%的个体为患病的个体。根据为的假设有:如果一个个体为已免疫个体,则在后续的时间段内该个体不再会患病,如果该个体为易感人群,且周围四邻居无人患病,那么他下一状态感染的概率为0.1%,若四邻居中仅仅有一人患病,那么该个体下一个状态感染的概率为0.7;若四邻居中仅有两人患病,那么该个体下一个状态感染的概率为0.8;若四邻居中仅仅有三人患病,那么该个体下一个状态感染的概率为0.85;若四邻居全患病,那么该个体下一个状态感染的概率为99.9%;
在matlab中的代码实现过程为:
clc;
clear all;
a=ones(102,103);
A=ones(102,103);
s=ones(102,103);
b=ones(100,101);
t=zeros(102,103);
for i=1:102
for j=1:103
a(1,j)=0;
a(102,j)=0;
a(i,1)=0;
a(i,103)=0;
end
end
for i=2:101
for j=2:102
d=rand(1);
if d0.9
a(i,j)=1;
end
if d0.9d0.92
a(i,j)=0;
end
if d0.
显示全部