计算特征向量时没有得到预期的输出
Not getting expected output when calculating eigenvectors
我正在尝试 numpy.linalg.eig
,但结果与预期不同
Ax = λx 其中
- A是一个矩阵
- λ 为特征值
- x 是特征向量
这是代码
import numpy as np
from numpy import linalg
A = np.array([[2,3],[-1,3]])
eigenvalues,eigenvectors = linalg.eig(A)
leftside = A[0]*eigenvectors[:,0]
rightside = eigenvalues[0]*eigenvectors[:,0]
print(leftside)
print(rightside)
我预计左侧与右侧相等,但输出不同?
[1.73205081+0.j 0.4330127 +1.43614066j]
[ 2.16506351+1.43614066j -0.4330127 +1.43614066j]
为什么会出现这种情况?
我如何使等式起作用? (因为在左侧将等于右侧)
要进行矩阵向量乘法,请使用 A @ ...
而不是 A[0] * ...
,后者会乘以向量 A[0]
。代码:
import numpy as np
from numpy import linalg
A = np.array([[2, 3], [-1, 3]])
eigenvalues, eigenvectors = linalg.eig(A)
leftside = A @ eigenvectors[:, 0]
rightside = eigenvalues[0] * eigenvectors[:, 0]
print(leftside)
print(rightside)
打印:
[ 2.16506351+1.43614066j -0.4330127 +1.43614066j]
[ 2.16506351+1.43614066j -0.4330127 +1.43614066j]
我正在尝试 numpy.linalg.eig
,但结果与预期不同
Ax = λx 其中
- A是一个矩阵
- λ 为特征值
- x 是特征向量
这是代码
import numpy as np
from numpy import linalg
A = np.array([[2,3],[-1,3]])
eigenvalues,eigenvectors = linalg.eig(A)
leftside = A[0]*eigenvectors[:,0]
rightside = eigenvalues[0]*eigenvectors[:,0]
print(leftside)
print(rightside)
我预计左侧与右侧相等,但输出不同?
[1.73205081+0.j 0.4330127 +1.43614066j]
[ 2.16506351+1.43614066j -0.4330127 +1.43614066j]
为什么会出现这种情况? 我如何使等式起作用? (因为在左侧将等于右侧)
要进行矩阵向量乘法,请使用 A @ ...
而不是 A[0] * ...
,后者会乘以向量 A[0]
。代码:
import numpy as np
from numpy import linalg
A = np.array([[2, 3], [-1, 3]])
eigenvalues, eigenvectors = linalg.eig(A)
leftside = A @ eigenvectors[:, 0]
rightside = eigenvalues[0] * eigenvectors[:, 0]
print(leftside)
print(rightside)
打印:
[ 2.16506351+1.43614066j -0.4330127 +1.43614066j]
[ 2.16506351+1.43614066j -0.4330127 +1.43614066j]