numpy.linalg.eig 特征向量疑问

numpy.linalg.eig()得到的特征向量为什么有时候是相同的,而不是两个线性无关的基础解析?例如矩阵:
[[ 1, -3, 3], [ 3, -5, 3], [ 6, -6, 4]] ,求得的特征向量是[-0.4,-0.4,-0.8],[0.24,-0.41,-0.66],[0.24,-0.41,-0.66], 而手动计算出来的是[1,1,2], 另外两个重根对应的基础解系是[1,1,0]和[-1,0,1] ,为什么不选两个线性无关的组合,而是选了两个相同的向量?
谢谢!

以下内容部分参考ChatGPT模型:


numpy.linalg.eig函数得到的特征向量有时候会存在重根,即对应同一个特征值的特征向量不止一个。这是因为一个矩阵的特征向量是由该矩阵的特征多项式所决定的,而特征多项式的根(即特征值)的个数等于矩阵的秩,而每个特征值对应的特征向量的个数也等于该特征值对应的特征多项式的重根的个数。因此,存在重根的情况是很常见的。

在上述例子中,该矩阵的特征多项式为λ^3 - λ^2 - 9λ + 9,其中λ=3是一个重根,对应的特征向量为[0.24,-0.41,-0.66]。因此,numpy.linalg.eig函数得到两个相同的特征向量是合理的。

至于为什么不选两个线性无关的组合,而是选了两个相同的向量,这是因为选取特征向量时需要满足线性无关的条件,而两个相同的特征向量显然是线性无关的。而另外两个基础解系[1,1,0]和[-1,0,1]不是特征向量,不能用来表示该矩阵的特征分解。


如果我的建议对您有帮助、请点击采纳、祝您生活愉快