7分钟
求解特征值和特征向量
求解特征值和特征向量:
scipy.linalg.eig(a, b=None, left=False, right=True, overwrite_a=False,
overwrite_b=False, check_finite=True)
a
:一个方阵,形状为(M,M)
。待求解特征值和特征向量的矩阵。b
:默认为None
,表示求解标准的特征值问题:Ax=λx 。 也可以是一个形状与a
相同的方阵,此时表示广义特征值问题:left
:一个布尔值。如果为True
,则计算左特征向量right
:一个布尔值。如果为True
,则计算右特征向量overwrite_a
:一个布尔值,指定是否将结果写到a
的存储区。overwrite_b
:一个布尔值,指定是否将结果写到b
的存储区。check_finite
:如果为True
,则检测输入中是否有nan
或者inf
返回值:
w
:一个一维数组,代表了M
特特征值。vl
:一个数组,形状为(M,M)
,表示正则化的左特征向量(每个特征向量占据一列,而不是一行)。仅当left=True
时返回vr
:一个数组,形状为(M,M)
,表示正则化的右特征向量(每个特征向量占据一列,而不是一行)。仅当right=True
时返回
numpy
提供了numpy.linalg.eig(a)
来计算特征值和特征向量
右特征值:Ax_r=λx_r ;左特征值:A^Hx_l=conj(λ)x_l ,其中 conj(λ) 为特征值的共轭。
令 P=[x_r1,x_r2,...,x_rM],令
则有:
学员评价