【发布时间】:2017-12-13 21:53:04
【问题描述】:
我正在使用 numpy 中的 linalg 来计算有符号实数矩阵的特征值和特征向量。 我读过this previous question,但仍然没有掌握特征向量的归一化。 这是一个直接来自Wikipedia:的示例
import numpy as np
from numpy import linalg as la
a = np.matrix([[2, 1], [1, 2]], dtype=np.float)
eigh_vals, eigh_vects = np.linalg.eig(a)
print 'eigen_values='
print eigh_vals
print 'eigen_vectors='
print eigh_vects
特征值为 1 和 3。 对于特征向量,我们期望 [1, -1] 和 [1, 1] 的标量倍数,我得到:
eig_vals=
[ 3. 1.]
eig_vets=
[[ 0.70710678 -0.70710678]
[ 0.70710678 0.70710678]]
我知道 1/sqrt(2) 因子是 norm=1,但为什么呢? 标准化可以“关闭”吗? 谢谢!
【问题讨论】:
-
关掉会有什么结果?否则
eig_vets.dot(eig_vals).dot(eig_vets.conj().T)不会给你正确的答案。
标签: numpy eigenvalue eigenvector