我有一个3x3矩阵,我感兴趣的是求本征值和相应的本征向量。我知道对于较小的系统,我们可以采用行列式来求解行列式方程,从而得到本征值。但是我有一个很大的矩阵大小,比如说1000x1000。为了显示问题,我选择了3x3 (这是实际问题的虚拟表示)。现在如何计算python的本征值和本征向量。
import numpy as np
eg_matrix=np.array([[-2-x, -4, 2], [-2, 1-x, 2],[4,2,5-x]])与我的问题相似的系统是: lambda_3对应于本征值。

发布于 2022-01-06 12:17:33
你只把你的矩阵给特征值求解者。
import numpy as np
A=np.array([[-2, -4, 2], [-2, 1, 2],[4,2,5]])
x, V = np.linalg.eig(A)
assert np.allclose(V @ np.diag(x), A @ V)对于您的示例,它给出了x = array([-5., 3., 6.]),插入表达式np.det(A - x * np.eye(len(A)))中的每个x元素都将接近于零。
例如
np.linalg.det(A - np.eye(len(A))*x[0])给出4.849454171562702e-13
V是特征向量矩阵。
https://stackoverflow.com/questions/70556590
复制相似问题