scipy.linalg.eigvals

scipy.linalg.eigvals(a, b=None, overwrite_a=False, check_finite=True, homogeneous_eigvals=False)[源代码]

从普通或广义特征值问题计算特征值。

查找一般矩阵的特征值::

a   vr[:,i] = w[i]        b   vr[:,i]
参数
a(M,M)类数组

将计算其特征值和特征向量的复矩阵或实矩阵。

b(M,M)array_like,可选

广义特征值问题中的右手边矩阵。如果省略,则假定为单位矩阵。

overwrite_a布尔值,可选

是否覆盖中的数据(可能会提高性能)

check_finite布尔值,可选

是否检查输入矩阵是否仅包含有限个数字。禁用可能会带来性能提升,但如果输入确实包含无穷大或NAN,则可能会导致问题(崩溃、非终止)。

homogeneous_eigvals布尔值,可选

如果为True,则返回齐次坐标中的特征值。在这种情况下 w 是(2,M)数组,因此::

w[1,i] a vr[:,i] = w[0,i] b vr[:,i]

默认值为False。

退货
w(M,)或(2,M)双或复数ndarray

特征值,每个特征值根据其重数而不是以任何特定的顺序重复。形状为(M,),除非 homogeneous_eigvals=True

加薪
LinAlgError

如果特征值计算不收敛

参见

eig

一般阵列的特征值和右特征向量。

eigvalsh

对称阵列或厄米阵列的特征值

eigvals_banded

对称/厄米特带状矩阵的特征值

eigvalsh_tridiagonal

对称/厄米特三对角阵的特征值

示例

>>> from scipy import linalg
>>> a = np.array([[0., -1.], [1., 0.]])
>>> linalg.eigvals(a)
array([0.+1.j, 0.-1.j])
>>> b = np.array([[0., 1.], [1., 1.]])
>>> linalg.eigvals(a, b)
array([ 1.+0.j, -1.+0.j])
>>> a = np.array([[3., 0., 0.], [0., 8., 0.], [0., 0., 7.]])
>>> linalg.eigvals(a, homogeneous_eigvals=True)
array([[3.+0.j, 8.+0.j, 7.+0.j],
       [1.+0.j, 1.+0.j, 1.+0.j]])