本文主要是介绍matlab病毒扩散,[MATLAB数学相关] 现有Allen的病毒扩散模型SIRS的马尔科夫过程程序,求指导...,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
现有Allen的病毒扩散模型SIRS的马尔科夫过程程序,求指导
由Allen编写的SIRS模型的马尔可夫过程如下:
for k=1:4 % 解马尔科夫链的样本轨迹
clear t s i r
t(1)=0; i(1)=i0; s(1)=N-i0;r(1)=0;
j=1;
while i(j)>0 && t(j)
nn=s(j)+i(j)+r(j);
u1=rand;u2=rand;
den=((beta/nn)*i(j)*s(j)+gam*i(j)+alpha*i(j)+delta*r(j));%所有patch的概率之和
t(j+1)=-log(u1)/den+t(j); % Time to next event
e1=(beta/nn)*s(j)*i(j)/den;%以下是每个patch概率与总概率之比
e2=e1+gam*i(j)/den;
e3=e2+alpha*i(j)/den;
e4=e3+delta*r(j)/den;
if (u2<=e1) %每个patch情况下的个体变化情况
s(j+1)=s(j)-1;
i(j+1)=i(j)+1;
r(j+1)=r(j);
elseif (u2>e1 && u2<=e2)
s(j+1)=s(j);
i(j+1)=i(j)-1;
r(j+1)=r(j)+1;
elseif (u2>e2 && u2<=e3)
s(j+1)=s(j);
i(j+1)=i(j)-1;
r(j+1)=r(j);
else
s(j+1)=s(j)+1;
i(j+1)=i(j);
r(j+1)=r(j)-1;
end
j=j+1;
end
(省略出图部分)
end
本人菜鸟,对上述标黄部分的分支概率不太理解,变量“den”是各个转换概率之和,e1-e4分别是四种转换概率与“den”的比值,请问各位大神,e1-e4的顺序有区别么?另附本程序的转换图,见“SIR模型”图,若想在本程序的基础上,改写成“SIRP模型”图所应用的程序,应该怎么写呢?
目前存在两个问题:1.S→I之间有两种转换概率的情况该怎么解决呢?
2. P作为独立变量,对S→I有影响,但其增加或减少的变动情况与S,I,R相对独立,P的每一步数量应该单独统计么?
感谢各位!论文卡在这里很久了,请大家帮忙。
SIR模型.jpg
SIRP模型.jpg
这篇关于matlab病毒扩散,[MATLAB数学相关] 现有Allen的病毒扩散模型SIRS的马尔科夫过程程序,求指导...的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!