【发布时间】:2015-11-18 00:44:34
【问题描述】:
我有一个非常大的稀疏矩阵,它表示马尔可夫链中的一个转换矩阵,即矩阵的每一行之和等于 1,我有兴趣找到第一个特征值及其对应的小于 1 的向量.我知道特征值在 [-1, 1] 部分有界,它们都是实数(非复数)。
我正在尝试使用 python 的 scipy.sparse.eigs 函数计算值,但是,函数的参数之一是要估计的特征值/向量的数量,并且每次我增加要估计的参数数量时,特征值的数量这也是一个成长的。
不用说,我使用带有值 'LR' 的 which 参数来获得 k 个最大特征值,其中 k 是要估计的值的数量。
有谁知道如何解决这个问题(找到小于 1 的第一个特征值及其对应的向量)?
【问题讨论】:
-
您可能需要研究底层 ARPACK 代码的文档。
-
@hpaulj,我已经这样做了,没有太大帮助
-
您是否理解问题和矩阵,足以知道是否有多个
eigs具有此值?换句话说,这是矩阵的真实属性,还是代码中的错误? -
您可能首先将您的链拆分为强连接的组件(参见stackoverflow.com/questions/21308848/…),然后计算每个组件的第二大特征值。 IIUC,您正在寻找的答案是其中最大的一个。 (对于一般矩阵,这样的问题在数值上是相当困难的,但是矩阵的马尔可夫链结构使它变得容易得多。)
-
也许你应该向 scipy 报告一个错误。
标签: python scipy sparse-matrix eigenvector eigenvalue