我想知道是否有一个 Python 包,numpy 或其他,它具有计算小矩阵的第一个特征值和特征向量的函数,比如 2x2。我可以在 numpy 中使用 linalg 包,如下所示。
import numpy as np
def whatever():
A = np.asmatrix(np.rand(2, 2))
evals, evecs = np.linalg.eig(A)
#Assume that the eigenvalues are ordered from large to small and that the
#eigenvectors are ordered accordingly.
return evals[0], evecs[:, 0]
但这需要很长时间。我怀疑这是因为 numpy 通过某种迭代过程计算特征向量。所以我想知道是否有更快的算法只返回第一个(最大)特征值和特征向量,因为我只需要第一个。
对于 2x2 矩阵,我当然可以自己编写一个函数,以解析方式计算特征值和特征向量,但是浮点计算存在问题,例如,当我将一个非常大的数字除以一个非常小的数字时,我得到无穷大或 NaN . 有人对这个有了解吗?请帮忙!先感谢您!