我见过this https://stackoverflow.com/questions/13739186/compute-eigenvector-using-a-dominant-eigenvalue问题,这与我尝试使用 numPy 计算 Python 中的主导特征向量有关。
我正在尝试计算 n x n 矩阵的主特征向量,而不必涉及太多的线性代数。我对行列式、特征值、特征向量和特征多项式进行了粗略的研究,但我更愿意依靠 numPy 实现来查找特征值,因为我相信它比我自己的更有效。
我遇到的问题是我使用了这段代码:
markov = array([[0.8,0.2],[.1,.9]])
print eig(markov)
...作为测试,并得到以下输出:
(array([ 0.7, 1. ]), array([[-0.89442719, -0.70710678],
[ 0.4472136 , -0.70710678]]))
我对此感到担忧的是,根据佩隆-弗罗贝尼乌斯定理,第二个特征向量的所有分量都应该为正(因为,根据维基百科,“具有正项的实方矩阵具有唯一的最大实特征值,并且相应的特征向量具有严格的正分量”)。
有人知道这是怎么回事吗? numPy 错了吗?我是否发现 ZFC 中存在不一致之处?或者只是我是线性代数、Python、numPy 或三者组合的菜鸟?
感谢您提供的任何帮助。另外,这是我的第一个 SO 问题(尽管我曾经在 cstheory.se 上很活跃),所以任何有关提高我的问题清晰度的建议也将不胜感激。