SI传染模型的单个节点感染延迟率代码案例
时间: 2024-02-25 19:58:35 浏览: 78
代码 传染病的SI SIS SIR 三种数学建模模型
5星 · 资源好评率100%
以下是一个基于SI传染模型的单个节点感染延迟率的Python代码案例,该模型使用了NetworkX库来构建图形和模拟传播过程:
```python
import networkx as nx
import random
# Parameters
n = 1000 # Number of nodes
p = 0.2 # Infection probability
# Construct graph
G = nx.erdos_renyi_graph(n, 0.1)
# Infect random node
start_node = random.randint(0, n-1)
infected_nodes = [start_node]
# Simulate infection
while True:
new_infected_nodes = []
for node in infected_nodes:
for neighbor in G.neighbors(node):
if neighbor not in infected_nodes and random.random() < p:
new_infected_nodes.append(neighbor)
if len(new_infected_nodes) == 0:
break
else:
infected_nodes += new_infected_nodes
infection_rate = len(infected_nodes) / n
print("Infection rate:", infection_rate)
```
在这个例子中,我们使用 `nx.erdos_renyi_graph()` 函数构建一个随机图形,并使用 `random.randint()` 函数随机选择一个节点进行感染。然后,我们使用一个 `while` 循环来模拟传播过程,直到没有新的节点被感染为止。在每个迭代中,我们遍历所有已感染的节点并尝试感染其邻居节点。如果邻居节点还没有被感染,并且以概率 `p` 被感染,则将其添加到新感染节点列表中。最终,我们计算感染率并输出结果。
值得注意的是,这个例子中使用了比较简单的传播模型和感染机制。在实际应用中,传播模型和感染机制往往会更加复杂,需要根据具体情况进行调整。
阅读全文