scipy.linalg.
eigvals#
- scipy.linalg.eigvals(a, b=None, overwrite_a=False, check_finite=True, homogeneous_eigvals=False)[source]#
从普通或广义特征值问题计算特征值。
查找一般矩阵的特征值
a vr[:,i] = w[i] b vr[:,i]
- 参数:
- a(M, M) array_like
将计算其特征值和特征向量的复数或实数矩阵。
- b(M, M) array_like, 可选
广义特征值问题中的右手边矩阵。如果省略,则假设为单位矩阵。
- overwrite_abool, 可选
是否覆盖数据(可能提高性能)
- check_finitebool, 可选
是否检查输入矩阵是否仅包含有限数字。禁用可能会提高性能,但如果输入包含无穷大或 NaN,则可能会导致问题(崩溃,不终止)。
- homogeneous_eigvalsbool, 可选
如果为 True,则以齐次坐标返回特征值。在这种情况下,
w
是一个 (2, M) 数组,因此w[1,i] a vr[:,i] = w[0,i] b vr[:,i]
默认值为 False。
- 返回:
- w(M,) 或 (2, M) 双精度或复数 ndarray
特征值,每个特征值根据其重数重复,但不按任何特定顺序。除非
homogeneous_eigvals=True
,否则形状为 (M,)。
- 引发:
- LinAlgError
如果特征值计算不收敛
另请参阅
eig
一般数组的特征值和右特征向量。
eigvalsh
对称或 Hermitian 数组的特征值
eigvals_banded
对称/Hermitian 带矩阵的特征值
eigvalsh_tridiagonal
对称/Hermitian 三对角矩阵的特征值
示例
>>> import numpy as np >>> 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]])