Fiedler向量#
- fiedler_vector(G, weight='weight', normalized=False, tol=1e-08, method='tracemin_pcg', seed=None)[source]#
返回连通无向图的Fiedler向量。
连通无向图的Fiedler向量是对应于图的拉普拉斯矩阵的第二小特征值的特征向量。
- 参数:
- GNetworkX图
一个无向图。
- weight对象,可选 (默认为: None)
用于确定每条边权重的Data Key。如果为None,则每条边具有单位权重。
- normalized布尔值,可选 (默认为: False)
是否使用归一化拉普拉斯矩阵。
- tol浮点数,可选 (默认为: 1e-8)
特征值计算中相对残差的容差。
- method字符串,可选 (默认为: ‘tracemin_pcg’)
特征值计算方法。它必须是以下TraceMIN选项之一,或'lanczos' (Lanczos迭代),或'lobpcg' (LOBPCG)。
TraceMIN算法使用线性方程组求解器。以下值允许指定要使用的求解器。
值
求解器
‘tracemin_pcg’
预处理共轭梯度法
‘tracemin_lu’
LU分解
- seed整数,random_state,或 None (默认)
随机数生成状态的指示器。参见随机性。
- 返回值:
- fiedler_vectorNumPy浮点数数组。
Fiedler向量。
- 抛出异常:
- NetworkXNotImplemented
如果G是有向图。
- NetworkXError
如果G的节点少于两个或不是连通图。
另请参阅
laplacian_matrix
注意
边权重按其绝对值解释。对于MultiGraph,并行边的权重被求和。零权重的边被忽略。
示例
给定一个连通图,Fiedler向量中值的符号可以用来将图分割成两个分量。
>>> G = nx.barbell_graph(5, 0) >>> nx.fiedler_vector(G, normalized=True, seed=1) array([-0.32864129, -0.32864129, -0.32864129, -0.32864129, -0.26072899, 0.26072899, 0.32864129, 0.32864129, 0.32864129, 0.32864129])
连通分量是杠铃图的两个5节点团。