gpt4 book ai didi

python - 为什么由 Networkx 和关联矩阵计算的拉普拉斯算子不同

转载 作者:太空宇宙 更新时间:2023-11-04 03:40:34 25 4
gpt4 key购买 nike

import networkx as bx
import numpy as np
G1 = nx.erdos_renyi_graph(20, .3)
L1 = nx.linalg.laplacian_matrix(G1)
A1=nx.incidence_matrix(G1)
L1_inc = A1*np.transpose(A1)
L1_inc == L1

但答案并非对所有元素都为真。由于拉普拉斯算子没有方向性,有什么问题?

如果您需要更多信息,请告诉我。

最佳答案

函数 nx.incidence_matrix() 默认给出一个无向关联矩阵。您可以传递 oriented=True 以返回定向版本。例如:

In [1]: import networkx as nx

In [2]: G = nx.path_graph(4)

In [3]: I = nx.incidence_matrix(G,oriented=True)

In [4]: I.todense()
Out[4]:
matrix([[-1., 0., 0.],
[ 1., -1., 0.],
[ 0., 1., -1.],
[ 0., 0., 1.]])

In [5]: L = nx.laplacian_matrix(G)

In [6]: L.todense()
Out[6]:
matrix([[ 1, -1, 0, 0],
[-1, 2, -1, 0],
[ 0, -1, 2, -1],
[ 0, 0, -1, 1]])

In [7]: (I*I.T).todense()
Out[7]:
matrix([[ 1., -1., 0., 0.],
[-1., 2., -1., 0.],
[ 0., -1., 2., -1.],
[ 0., 0., -1., 1.]])

关于python - 为什么由 Networkx 和关联矩阵计算的拉普拉斯算子不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26644431/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com