如果您从 R 中使用 igraph,请使用此选项
spectrum {igraph} | R 文档 |
计算(可能稀疏的)图的选定特征值和特征向量。
spectrum(
graph,
algorithm = c("arpack", "auto", "lapack", "comp_auto", "comp_lapack", "comp_arpack"),
which = list(),
options = arpack_defaults
)
图 |
输入图,可以是定向图或无向图。 |
algorithm |
要使用的算法。目前只实现了 |
which |
用于指定要计算哪些特征值和特征向量的列表。默认情况下,计算主导(即最大幅度)特征值和相应的特征向量。 |
选项 |
ARPACK 求解器的选项。参见 |
which
参数是一个列表,它指定要计算哪些特征值和相应的特征向量:有八个选项
具有最大幅度的特征值。将 pos
设置为 LM
,并将 howmany
设置为所需的特征值数量。
具有最小幅度的特征值。将 pos
设置为 SM
,并将 howmany
设置为所需的特征值数量。
最大特征值。将 pos
设置为 LA
,并将 howmany
设置为所需的特征值数量。
最小特征值。将 pos
设置为 SA
,并将 howmany
设置为所需的特征值数量。
来自频谱两端的特征值。将 pos
设置为 BE
,并将 howmany
设置为所需的特征值数量。如果 howmany
是奇数,则从较大端返回多一个特征值。
选定的特征值。目前尚未实现。
区间内的特征值。尚未实现。
所有特征值。尚未实现。无论如何,标准的 eigen
函数在这方面做得更好。
请注意,ARPACK 对于具有多个组件的图(例如,具有孤立顶点的图)可能不稳定。
取决于使用的算法。
对于 arpack
,返回一个包含三个条目的列表
选项 |
有关完整描述,请参见 |
values |
数值向量,特征值。 |
vectors |
数值矩阵,特征向量作为列。 |
Gabor Csardi csardi.gabor@gmail.com
as_adj
用于创建(稀疏)邻接矩阵。
## Small example graph, leading eigenvector by default
kite <- make_graph("Krackhardt_kite")
spectrum(kite)[c("values", "vectors")]
## Double check
eigen(as_adj(kite, sparse=FALSE))$vectors[,1]
## Should be the same as 'eigen_centrality' (but rescaled)
cor(eigen_centrality(kite)$vector, spectrum(kite)$vectors)
## Smallest eigenvalues
spectrum(kite, which=list(pos="SM", howmany=2))$values