networkx+python实现复杂网络经典的传染病SIR模型(根据度中心性,介数中心性,接近中心性指标选择感染源)

使用networkx库,结合度中心性、介数中心性和接近中心性指标,选取感染源,模拟传染病SIR模型在复杂网络中的传播过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

import networkx as nx
import matplotlib.pyplot as plt
import random
import numpy as np
#来生成一个有N个节点,连接概率为p的随机网络
N = 200
p = 0.02
er=nx.erdos_renyi_graph(N,p)

for i in range(N):
    er.nodes[i]['state'] = 'S'
gama = 0.5
beta = 0.1
ps=nx.spring_layout(er)#布置框架
colors={
   "R":'b',"I":'r',"S":'g'}
states= nx.get_node_attributes(er, 'state')############ 获得节点的isCore属性     
color=[colors[states[i]] for i in range(N)]

nx.draw(er,ps,node_color =color ,with_labels=True,node_size=300)
plt.show()

在这里插入图片描述

def centrality(G):
    #计算度中心性,降序
    dc = nx.algorithms.centrality.degree_centrality(G)
    return    sorted(dc.items(), key=lambda x: x[
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值