大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。
Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺
SEIR模型案例
原理说明
https://zhuanlan.zhihu.com/p/142117573
%N是群体总样本数
E=0; %潜伏期人数
I=1; %患者人数
S=N-I; %易感者人数
R=0; %康复者人数
r=20; %每个患者平均每天能接触的人数
B=0.03; %患者每天接触的人中被感染的概率
a=0.1; %潜伏期装变为患者的概率
y=0.1; %患者痊愈概率
r2=20; %处于潜伏期的人每天接触的人数
B2=0.03; %潜伏期的人每天接触的人中被感染的概率
T=1:140; %模拟从第一天到第140天的状况
for idx =1:length(T)-1 %循环遍历
S(idx+1) = S(idx)- r*B*S(idx)*I(idx)/N - r2*B2*S(idx)*E(idx)/N;
E(idx+1) = E(idx) + r*B*S(idx)*I(idx)/N - a*E(idx) + r2*B2*S(idx)*E(idx)/N;
I(idx+1) = I(idx) + a*E(idx) - y*I(idx);
R(idx+1) = R(idx) + y*I(idx);
end
%{迭代计算每天的感染情况 idx代表天数
S(idx+1) = S(idx)- r*B*S(idx)*I(idx)/N -r2*B2*S(idx)*E(idx)/N;
这里S(idx+1)代表第idx+1天的易感者人数
其数值等于第idx天的易感者人数减去由于 潜伏者接触易感染者所造成的感染人数 和 患者接触易感染者所造成的感染人数
r*I(idx)表示所有患者每天接触的人的总数 S(idx)/N表示所有人中易感染者占比
r*B*S(idx)*I(idx)/N 即所有患者一天因为易感染者所造成的感染数
同理r2*B2*S(idx)*E(idx)/N 即所有潜伏者一天因为易感染者所造成的感染数
E(idx+1) = E(idx) + r*B*S(idx)*I(idx)/N - a*E(idx) + r2*B2*S(idx)*E(idx)/N;
第idx+1天的潜伏者人数等于
第idx天的潜伏者人数 加上 潜伏者接触易感染者所造成的感染人数 和 患者接触易感染者所造成的感染人数
减去由潜伏者转化为患者的人数
y*I(idx)第idx天的患者痊愈人数
以下分析同理
%}
plot(T,S,T,E,T,I,T,R);grid on; %以下是绘图部分
xlabel('天');ylabel('人数')
legend('易感者','潜伏者','传染者','康复者')
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/166783.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...