matlab病毒扩散,[MATLAB数学相关] 现有Allen的病毒扩散模型SIRS的马尔科夫过程程序,求指导...

编程入门 行业动态 更新时间:2024-10-27 01:25:18

matlab<a href=https://www.elefans.com/category/jswz/34/1767900.html style=病毒扩散,[MATLAB数学相关] 现有Allen的病毒扩散模型SIRS的马尔科夫过程程序,求指导..."/>

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的马尔科夫过程程序,求指导...

本文发布于:2024-02-12 23:35:04,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1689849.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:病毒   马尔   科夫   模型   过程

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!