SEIR模型案例


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('易感者','潛伏者','傳染者','康復者')

在這里插入圖片描述


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM