function [pCount_X pCount_Y pCount_Z] = discreteSIR(N,beta,gamma,T,K)
% discrete-time, discrete-space, run 200times
% if a individual is a susceptible, the value is 0, infected 1, recovery 2;
rand('state',sum(100*clock)); %random seed
%Initialize
for k = 1 : K
Population_List = zeros(1,N);
P_Zero = randperm(100);%random 100 infected individuals
for i = 1 : size(P_Zero,2)
Population_List(P_Zero(i)) = 1;
end
Count_X{k} = []; % calculate the susceptible individuals in each time step;
Count_Y{k} = []; % calculate the infected individuals in each time step;
Count_Z{k} = []; % calculate the recovery individuals in each time step;
pCount_X{k} = []; %probability of X;
pCount_Y{k} = []; %probability of Y;
pCount_Z{k} = []; %probability of Z;
new_Y{k} = [];%the newly cases in each time step
new_Y{k}(1,1) = 0;
new_R{k} = [];%the newly recovery in each time step
new_R{k}(1,1) = 0;
Count_Y{k}(1,1) = sum(Population_List == 1);
Count_X{k}(1,1) = N - Count_Y{k}(1,1);
while sum(Population_List == 1) > 0
sumX = 0;
sumY = 0;
temp_X = [];
temp_X = find(Population_List == 0);
for i = 1 : size(temp_X,2)
if rand < 0.4 && (Population_List(1 + floor(rand() * N)) == 1)
Population_List(temp_X(i)) = 1;
sumX = sumX + 1;
end
end
new_Y{k} = [new_Y{k}, sumX];
temp_Y = [];
temp_Y = find(Population_List == 1);
for j = 1 : size(temp_Y,2)
if rand < gamma
Population_List(temp_Y(j)) = 2;
sumY = sumY + 1;
end
end
new_R{k} = [new_R{k}, sumY];
end
%calculate the number of Susceptible, Infected and recovery
for i = 2 : T
Count_X{k}(i) = Count_X{k}(i-1) - new_Y{k}(i);
Count_Y{k}(i) = Count_Y{k}(i-1) + new_Y{k}(i)- new_R{k}(i);
end
Count_Z{k} = N - Count_X{k} - Count_Y{k};
pCount_X{k} = Count_X{k} / N;
pCount_Y{k} = Count_Y{k} / N;
pCount_Z{k} = Count_Z{k} / N;
end
%figure
%for k = 1 : 200
% plot(pCount_X{k},'ok','MarkerSize',3);
% hold on
% plot(pCount_Y{k},'ok','MarkerSize',3);
%hold on
%plot(pCount_Z{k},'ok','MarkerSize',3);
%end
没有合适的资源?快使用搜索试试~ 我知道了~
传统传染病建模的matlab程序
共5个文件
m:4个
ds_store:1个
5星 · 超过95%的资源 需积分: 42 187 下载量 33 浏览量
2016-03-15
21:14:40
上传
评论 11
收藏 7KB ZIP 举报
温馨提示
该程序为传染病建模的随机,微分,差分方程的matlab代码
资源推荐
资源详情
资源评论
收起资源包目录
YBJAN1916_SIR model in whole population.zip (5个子文件)
YBJAN1916_SIR model in whole population
.DS_Store 12KB
SIR
differentialSIR.m 2KB
discreteSIR.m 2KB
SIR.m 1KB
mean_fieldSIR.m 910B
共 5 条
- 1
资源评论
- Asama浅间2023-07-27通过这个文件,我不仅学到了传统传染病建模的方法,还深入了解了传染病传播的机理,对我进行相关研究和工作提供了很大的帮助。
- yiyi分析亲密关系2023-07-27这个文件通过直观的图表展示了传染病传播的模拟结果,帮助我更好地理解不同因素对传染病传播的影响。
- 王者丶君临天下2023-07-27这个文件提供了丰富的参数调节选项,使我能够根据不同的传染病特性进行个性化的建模和模拟,增强了程序的适用性和灵活性。
- 耄先森吖2023-07-27这个文件提供了一个简单而可靠的传统传染病建模的matlab程序,帮助我们更好地理解和预测传染病的传播趋势。
- 首席程序IT2023-07-27该文件以简单易懂的语言描述了传统传染病建模的原理和步骤,使我能够迅速上手并进行相应的模拟分析。
yuanfangdeliwu
- 粉丝: 2
- 资源: 2
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功