用si模型感染数据集代码怎么写
时间: 2023-12-29 15:06:16 浏览: 134
代码 传染病的SI SIS SIR 三种数学建模模型.rar
SI模型是一种简单的流行病学模型,用于模拟传染病的传播过程。在SI模型中,所有人都是易感者,如果一个人被感染,他将一直保持感染状态,直到病愈或死亡。以下是用Python实现SI模型的代码示例:
```python
import networkx as nx
import numpy as np
import matplotlib.pyplot as plt
# 创建一个图形,指定图的大小
G = nx.fast_gnp_random_graph(1000, 0.1)
# 初始化每个节点的状态,所有节点都是易感者
status = np.zeros(len(G.nodes()))
# 选取一个初始感染节点
initial_node = np.random.randint(0, len(G.nodes()))
status[initial_node] = 1
# 模拟传播过程,直到所有节点都被感染
while np.sum(status) < len(G.nodes()):
# 选择被感染节点的邻居节点
infected_nodes = np.where(status == 1)[0]
for node in infected_nodes:
neighbors = list(G.neighbors(node))
for n in neighbors:
# 如果邻居节点是易感者,则以一定概率感染他
if status[n] == 0:
if np.random.random() < 0.1:
status[n] = 1
# 绘制感染图
nx.draw(G, node_color=status, cmap=plt.cm.Reds)
plt.show()
```
在上述代码中,我们使用了Python中的NetworkX库来创建图形,并使用numpy和matplotlib库绘制感染图。代码中的参数可以根据需要进行修改,例如,可以更改图形大小、感染概率等参数。
阅读全文