计算python中非常大的稀疏矩阵的特征值

时间:2015-08-24 14:32:34

标签: python scipy sparse-matrix eigenvector eigenvalue

我有一个非常大的稀疏矩阵,表示马尔可夫链中的过渡马赛克,即矩阵每行的总和等于1,我有兴趣找到第一个特征值及其相应的小于1的向量。我知道特征值在[-1,1]部分中有界,它们都是真实的(非复杂的)。
我试图使用python的which函数计算值,但是,函数的一个参数是要估计的特征值/向量的数量,每次我增加要估计的参数数量,数字也正好一个特征值也增长了 不用说,我使用值'LR'的{​​{1}}参数来获取k个最大的特征值,其中k是要估计的值的数量。
有没有人知道如何解决这个问题(找到小于1的第一个特征值及其相应的向量)?

1 个答案:

答案 0 :(得分:1)

我同意@pv。如果矩阵S是对称的,则可以将其视为矩阵I - S的拉普拉斯矩阵。 I - S的连通分量的数量是该矩阵的零特征值的数量(即,与S的特征值1相关联的空间的维数)。您可以检查相似矩阵为I - S*S'的图表的连接组件的数量,例如:与scipy.sparse.csgraph.connected_components