Python 中的特征向量对应的欧根值

Eigenvectors' corresponding eugenvalues in Python

我有一个对称的 3*3 矩阵,A:

A = np.mat("1, 2, 1; 2, 5, 0; 1, 0, 5")

我算出了A的特征值,分别是0、6、5。 我现在被告知 A 具有以下三个特征向量,并要求我找到相应的三个特征值。我如何在 Python 中执行此操作?

   v1=np.array([[-5],[2], [1]])
   v2=np.array([[0],[-1], [2]])
   v3=np.array([[1],[2], [1]])

然后我要证明这三个特征向量是线性无关的,我也不知道如何证明Python?

我不确定您尝试了什么,但这里是 link 描述了该主题的理论方面。

在python代码方面,你可以试试这个

import numpy as np
from numpy.linalg import eig
from numpy.linalg import det

A = np.mat("1, 2, 1; 2, 5, 0; 1, 0, 5")
values, vector = eig(A)
det(vector)

要找到给定特征向量的特征值,有一个众所周知的公式(瑞利商):

eigenvalue

并找出特征向量是否线性无关,你可以证明它们的行列式不为零:

import numpy as np

A = np.array([[1, 2, 1], [2, 5, 0], [1, 0, 5]])

v1 = np.array([[-5], [2], [1]])
v2 = np.array([[0], [-1], [2]])
v3 = np.array([[1], [2], [1]])

# eigenvalues
l1 = (v1.T@A@v1/(v1.T@v1))[0, 0]
l2 = (v2.T@A@v2/(v2.T@v2))[0, 0]
l3 = (v3.T@A@v3/(v3.T@v3))[0, 0]

# Are linearly independent?
tol = 1e-8
if np.abs(np.linalg.det(np.concatenate((v1, v2, v3), axis=1))) < tol:
    print('eigenvector are linearly dependent')
else:
    print('eigenvector are linearly independent')