为什么这两种查找特征向量的方法在python中有所不同?

为什么这两种查找特征向量的方法在python中有所不同?,python,numpy,matrix,sympy,eigenvector,Python,Numpy,Matrix,Sympy,Eigenvector,为什么这两种方法在寻找特征向量的目标相同时会产生不同的结果?已经提到,Eignevolds仅在标量倍数内是唯一的。这是一个数学事实。为了深入了解所使用方法的实现,返回标准化特征向量(即向量的范数为1),而symphy的eignvects()不会标准化向量 在某种意义上,规范化向量是唯一的,因为它们具有单位范数。它们可以定义一个单位本征方向(几何),就像坐标几何中的单位向量一样。(不一定要知道)特征向量不是唯一的。这两种方法之间的特征向量是彼此的线性倍数。 import numpy as np #

为什么这两种方法在寻找特征向量的目标相同时会产生不同的结果?

已经提到,Eignevolds仅在标量倍数内是唯一的。这是一个数学事实。为了深入了解所使用方法的实现,返回标准化特征向量(即向量的范数为1),而
symphy的
eignvects()
不会标准化向量


在某种意义上,规范化向量是唯一的,因为它们具有单位范数。它们可以定义一个单位本征方向(几何),就像坐标几何中的单位向量一样。(不一定要知道)

特征向量不是唯一的。这两种方法之间的特征向量是彼此的线性倍数。
import numpy as np
#first way
A = np.array([[1, 0, 1], [-2, 1, 0]])
print(A)
B = A@A.transpose()
print(B)
eig_val, eig_vec = np.linalg.eig(B)
print(eig_vec)

#second way
from sympy import * 
G = Matrix([[2,-2], [-2,5]])
print(G.eigenvects())