使用Python网络x生成一个SIS流行病学模型

2024-05-12 14:23:16 发布

您现在位置:Python中文网/ 问答频道 /正文

有人告诉我python中的networkx库是图论应用程序的标准库,但到目前为止,我发现使用它相当令人沮丧。在

我想做的是: 建立SIS流行病学网络,指定初始接触率和恢复率,然后跟踪疾病进展。在

更准确地说,想象一个由n个体和邻接矩阵a组成的网络。A的值在[0,1]范围内,且接触率。这意味着(i,j)条目显示了疾病从nodei转移到nodej的概率。最初,每个节点被分配一个随机标签,可以是1(对于感染的个体)或0(对于易感的,是尚未感染疾病的节点)。在

在每个时间步,如果节点有一个0标签,那么在概率等于节点的传入边权重的最大值的情况下,它可以变成1。如果节点有一个1标签,那么以其恢复率指定的概率,它可以变成0。恢复率是在模拟开始时分配给每个节点的值,其范围在[0,1]范围内。在

当网络在每一个时间步进化时,我想用不同颜色的每个节点标签来显示网络。在

如果有人知道python中的其他库可以比netrokx更高效地完成这项工作,请告诉我。在


Tags: 网络networkx应用程序标准节点时间条目标签
1条回答
网友
1楼 · 发布于 2024-05-12 14:23:16

您使用networkx进行计算还是可视化?在

不需要使用它进行计算,因为您的模型很简单,并且使用矩阵(向量)运算更容易计算它。那是适合纽比的。在

步骤的主要部分是计算从0切换到1的概率。设N为向量,每个节点根据状态存储0或1。节点n从0切换到1的概率是numpy.amax(A[n,:] * N)。在

如果您需要可视化,那么可能有比networkx更好的库。在

相关问题 更多 >