首页 > 解决方案 > python中eig到底输出了什么?

问题描述

我正在尝试检索所有(常规)特征向量以及足够的广义特征向量来完成我的平方 NxN 矩阵的基础。我的问题是,这个输出到底是什么特征向量?:

evals, levecs = eig(Mnp, left=True,right=False)

我能找到的文档只说“解决方阵的普通或广义特征值问题。找到一般矩阵的特征值 w 和右或左特征向量”。

谁能告诉我这是否意味着我的左特征向量既是常规特征向量又是广义特征向量?我将不胜感激任何信息。

标签: pythonlinear-algebra

解决方案


文档

w : (…, M) 数组

特征值,每个都根据其多重性重复。特征值不一定是有序的。结果数组将是复数类型,除非虚部为零,在这种情况下它将被强制转换为实数类型。当 a 为实数时,得到的特征值将是实数(0 虚部)或以共轭对形式出现

v : (…, M, M) 数组

归一化(单位“长度”)特征向量,使得列 v[:,i] 是对应于特征值 w[i] 的特征向量。

从该页面的注释部分

这是使用 _geev LAPACK 例程来实现的,该例程计算一般方阵的特征值和特征向量。

如果存在满足 dot(a,v) = w * v 的向量 v,则数字 w 是 a 的特征值。因此,数组 a、w 和 v 满足方程 dot(a[:,:], v [:,i]) = w[i] * v[:,i] 对于 i \in {0,...,M-1}。

特征向量数组 v 可能不是最大秩,也就是说,某些列可能是线性相关的,尽管舍入误差可能会掩盖这一事实。如果特征值都不同,那么理论上特征向量是线性无关的。同样,如果矩阵 a 是正规的,即如果 dot(a, aH) = dot(aH, a),则特征向量 v 的(复值)矩阵是酉矩阵,其中 aH 表示 a 的共轭转置。

最后,强调 v 由 a 的右侧(如右侧)特征向量组成。对于某个数 z,满足 dot(yT, a) = z * yT 的向量 y 称为 a 的左特征向量,并且通常,矩阵的左特征向量和右特征向量不一定是每个矩阵的(可能是共轭的)转置其他。


推荐阅读