【发布时间】:2018-08-22 08:13:24
【问题描述】:
我有这个矩阵a -
array([[2, 1],
[1, 2]])
这个矩阵有[1, 3]特征值和以下特征向量:
array([1, -1])
array([1, 1])
但是当我使用 Scipy 的 linalg.eig 函数时,它会产生以下结果:
>>> linalg.eig(a)
(array([3.+0.j, 1.+0.j]), array([[ 0.70710678, -0.70710678],
[ 0.70710678, 0.70710678]]))
特征值与上面相同,但这里产生的特征向量与前面提到的不同。
我在这里缺少什么?另外,如何找出一个矩阵可以有多少个特征向量?
【问题讨论】:
-
特征向量被归一化;你看到的是
1/sqrt(2)乘以你期望的特征向量。由于特征向量的任意倍数也是特征向量,因此这是库通常采用的约定。 -
可能你的特征向量是四舍五入的,因为函数的答案是正确的
-
@hiro protagonist 好像是这样。仔细阅读文档,它实际上说函数会返回归一化的特征向量。
-
@Alex 否。正如另一条评论中提到的,函数返回归一化的特征向量。 Scipy 文档还提到了归一化特征向量。
-
您能回答并接受您的问题,以便我们关闭它吗?
标签: python scipy eigenvector