根据 Perron-Frobenius 定理,只有正项的实矩阵(或具有称为不可约性的非负项的矩阵)将具有仅包含正项的唯一特征向量。其对应的特征值将是实数和正数,并且将是最大量级的特征值。
我有一种情况,我对这样的特征向量感兴趣。我目前正在使用 numpy 来查找所有特征值,然后取对应于最大量值的特征向量。问题在于,对于我的问题,当矩阵的大小变大时,结果开始变得疯狂,例如,以这种方式找到的特征向量可能没有所有正项。我想这是由于舍入错误。
因此,我想知道是否有一种算法可以通过利用以下事实来提供更好的结果:矩阵具有非负项并且不可约,以及我们只寻找特征向量其条目是积极的。由于存在可以利用其他矩阵属性(例如对称性)的算法,因此认为这是可能的似乎是合理的。
在写这个问题时,我突然想到只迭代将起作用(从带有正条目的初始开始),但想象一下一个大矩阵收敛会很慢,所以我想我正在寻找比这更有效的算法。(不过我会试试的!)
当然,如果算法很容易实现和/或已经以可以从 Python 轻松调用的形式实现,那将是一个巨大的好处。
顺便说一句,如果它有任何不同,我的问题就是这个。我发现当我增加矩阵大小(如上所述使用 Numpy 查找特征向量)时,它看起来正在收敛,但随后突然开始到处跳跃。的值越小,这种不稳定性就越严重。