图的拉普拉斯算子。
用法
laplacian_matrix(
graph,
weights = NULL,
sparse = igraph_opt("sparsematrices"),
normalization = c("unnormalized", "symmetric", "left", "right"),
normalized
)
详细信息
图的拉普拉斯矩阵是一个对称矩阵,其行数和列数与图中顶点的数量相同,元素 (i,j) 是 d[i],顶点 i 的度数,如果 i==j,则为 -1 如果 i!=j 且顶点 i 和 j 之间存在边,否则为 0。
拉普拉斯矩阵也可以归一化,有几种传统的归一化方法。 请参阅此页面上的“归一化方法”部分。
拉普拉斯算子的加权版本只需使用加权度数而不是普通度数。 即 (i,j) 是 d[i],顶点 i 的加权度数,如果 i==j,则为 -w 如果 i!=j 且顶点 i 和 j 之间存在权重为 w 的边,否则为 0。 顶点的加权度数是其相邻边的权重的总和。
归一化方法
拉普拉斯矩阵 \(L\) 根据邻接矩阵 \(A\) 和包含度数的对角矩阵 \(D\) 定义如下
"unnormalized": 未归一化的拉普拉斯算子,\(L = D - A\)。
"symmetric": 对称归一化的拉普拉斯算子,\(L = I - D^{-\frac{1}{2}} A D^{-\frac{1}{2}}\)。
"left": 左随机归一化的拉普拉斯算子,\({L = I - D^{-1} A}\)。
"right": 右随机归一化的拉普拉斯算子,\(L = I - A D^{-1}\)。
作者
Gabor Csardi csardi.gabor@gmail.com
示例
g <- make_ring(10)
laplacian_matrix(g)
#> 10 x 10 sparse Matrix of class "dgCMatrix"
#>
#> [1,] 2 -1 . . . . . . . -1
#> [2,] -1 2 -1 . . . . . . .
#> [3,] . -1 2 -1 . . . . . .
#> [4,] . . -1 2 -1 . . . . .
#> [5,] . . . -1 2 -1 . . . .
#> [6,] . . . . -1 2 -1 . . .
#> [7,] . . . . . -1 2 -1 . .
#> [8,] . . . . . . -1 2 -1 .
#> [9,] . . . . . . . -1 2 -1
#> [10,] -1 . . . . . . . -1 2
laplacian_matrix(g, normalization = "unnormalized")
#> 10 x 10 sparse Matrix of class "dgCMatrix"
#>
#> [1,] 2 -1 . . . . . . . -1
#> [2,] -1 2 -1 . . . . . . .
#> [3,] . -1 2 -1 . . . . . .
#> [4,] . . -1 2 -1 . . . . .
#> [5,] . . . -1 2 -1 . . . .
#> [6,] . . . . -1 2 -1 . . .
#> [7,] . . . . . -1 2 -1 . .
#> [8,] . . . . . . -1 2 -1 .
#> [9,] . . . . . . . -1 2 -1
#> [10,] -1 . . . . . . . -1 2
laplacian_matrix(g, normalization = "unnormalized", sparse = FALSE)
#> [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]
#> [1,] 2 -1 0 0 0 0 0 0 0 -1
#> [2,] -1 2 -1 0 0 0 0 0 0 0
#> [3,] 0 -1 2 -1 0 0 0 0 0 0
#> [4,] 0 0 -1 2 -1 0 0 0 0 0
#> [5,] 0 0 0 -1 2 -1 0 0 0 0
#> [6,] 0 0 0 0 -1 2 -1 0 0 0
#> [7,] 0 0 0 0 0 -1 2 -1 0 0
#> [8,] 0 0 0 0 0 0 -1 2 -1 0
#> [9,] 0 0 0 0 0 0 0 -1 2 -1
#> [10,] -1 0 0 0 0 0 0 0 -1 2