所以我一直在 SIRS 流行病模型中工作(作为一名本科生,工作我的意思是“重做我的教授所做的一些事情”)。SIRS 在这里代表:
易感 -> 感染 -> 恢复 -> 易感。
因此,支配该模型的一阶微分方程组是:
所以我打算在Python3中使用欧拉方法求解这些方程,这是我的代码:
while t<140:
Sold = S
Iold = I
S = S + dt*(u*R - B*I*S)
I = I + dt*(B*I*S - G*I)
R = R + dt*(G*I - u*R)
t = t + dt
Arq.write("{} {} {} {} {} \n".format(t,S,I,R,R+I+S))
请注意,有一个旧变量的定义。在将函数用于另一个方程之前,我使用它们来保存函数的先前值。(我的意思是,而不是更新使用新值, 使用旧值, 在上面的行中更新之前)。我停止使用旧变量,并且从图形上来说没有任何变化。如果您希望代码使用旧变量运行,这里是:
while t<140:
Sold = S
Iold = I
S = S + dt*(u*R - B*I*S)
I = I + dt*(B*I*Sold - G*I)
R = R + dt*(G*Iold - u*R)
t = t + dt
Arq.write("{} {} {} {} {} \n".format(t,S,I,R,R+I+S))
好的。所以现在让我们谈谈正在发生的事情。我每次都使用“标准化”人口,即 S + I + R = 1。所以,我为常数选择了 0 到 1 之间的任意值和,并设置以下初始值和:,和. 我在图形人口中得到了以下结果时间:

(对不起,我不知道如何在这里减小图像大小)。所以现在,我将初始值更改为非常不同的值:,, 和. 结果如下:
我们在这里可以看到,尽管初始值非常不同,但这两种情况似乎收敛到三个总体的相同值。我不会在这里放其他图片,否则这个问题会长达一公里,但我放的所有初始条件都没有改变结果。(或似乎没有)。
为什么是这样?我的模型是否正确?如果不是,它有什么问题?如果它是正确的,这可以用数学来解释吗?这是一个试图模拟疾病的模型。是否有任何具有(或具有)这种特性的非致命疾病的例子?
提前致谢。(我想补充一点,非常感谢为代码添加颜色并减小图像大小的编辑(特别是如果这样做的人解释了如何!:))
