本文简要介绍 python 语言中 scipy.linalg.eigh_tridiagonal
的用法。
用法:
scipy.linalg.eigh_tridiagonal(d, e, eigvals_only=False, select='a', select_range=None, check_finite=True, tol=0.0, lapack_driver='auto')#
求解实对称三对角矩阵的特征值问题。
求特征值w和可选的右特征向量v的
a
:a v[:,i] = w[i] v[:,i] v.H v = identity
对于实对称矩阵
a
具有对角线元素d和非对角元素e.- d: ndarray,形状(ndim,)
数组的对角元素。
- e: ndarray,形状(ndim-1,)
数组的非对角元素。
- eigvals_only: 布尔型,可选
仅计算特征值而不计算特征向量。 (默认:还计算特征向量)
- select: {‘a’, ‘v’, ‘i’},可选
计算哪些特征值
选择
计算出来的
‘a’
所有特征值
‘v’
区间内的特征值 (min, max]
‘i’
具有索引 min <= i <= max 的特征值
- select_range: (最小,最大),可选
所选特征值的范围
- check_finite: 布尔型,可选
是否检查输入矩阵是否仅包含有限数。禁用可能会提高性能,但如果输入确实包含无穷大或 NaN,则可能会导致问题(崩溃、非终止)。
- tol: 浮点数
每个特征值所需的绝对容差(仅当 ‘stebz’ 为lapack_driver)。如果特征值(或簇)位于该宽度的区间内,则认为该特征值已收敛。如果 <= 0(默认),则该值
eps*|a|
用于其中 eps 是机器精度,并且|a|
是矩阵的 1-范数a
.- lapack_driver: str
要使用的LAPACK函数,可以是‘auto’, ‘stemr’, ‘stebz’, ‘sterf’,或‘stev’。当‘auto’(默认)时,如果
select='a'
则使用‘stemr’,否则使用‘stebz’。当使用 ‘stebz’ 查找特征值和eigvals_only=False
时,将使用第二个 LAPACK 调用(到?STEIN
)来查找相应的特征向量。 ‘sterf’只能在eigvals_only=True
和select='a'
时使用。 ‘stev’只能在select='a'
时使用。
- w: (M,) ndarray
特征值按升序排列,每个都根据其多重性重复。
- v: (M, M) ndarray
与特征值
w[i]
对应的归一化特征向量是列v[:,i]
。仅在eigvals_only=False
时返回。
- LinAlgError
如果特征值计算不收敛。
参数 ::
返回 ::
抛出 ::
注意:
此函数使用 LAPACK
S/DSTEMR
例程。例子:
>>> import numpy as np >>> from scipy.linalg import eigh_tridiagonal >>> d = 3*np.ones(4) >>> e = -1*np.ones(3) >>> w, v = eigh_tridiagonal(d, e) >>> A = np.diag(d) + np.diag(e, k=1) + np.diag(e, k=-1) >>> np.allclose(A @ v - v @ np.diag(w), np.zeros((4, 4))) True
相关用法
- Python SciPy linalg.eigh用法及代码示例
- Python SciPy linalg.eigvalsh_tridiagonal用法及代码示例
- Python SciPy linalg.eig_banded用法及代码示例
- Python SciPy linalg.eigvalsh用法及代码示例
- Python SciPy linalg.eig用法及代码示例
- Python SciPy linalg.eigs用法及代码示例
- Python SciPy linalg.eigvals用法及代码示例
- Python SciPy linalg.eigvals_banded用法及代码示例
- Python SciPy linalg.eigsh用法及代码示例
- Python SciPy linalg.expm用法及代码示例
- Python SciPy linalg.expm_multiply用法及代码示例
- Python SciPy linalg.expm_frechet用法及代码示例
- Python SciPy linalg.expm_cond用法及代码示例
- Python SciPy linalg.cdf2rdf用法及代码示例
- Python SciPy linalg.LaplacianNd用法及代码示例
- Python SciPy linalg.solve_circulant用法及代码示例
- Python SciPy linalg.polar用法及代码示例
- Python SciPy linalg.clarkson_woodruff_transform用法及代码示例
- Python SciPy linalg.rsf2csf用法及代码示例
- Python SciPy linalg.hessenberg用法及代码示例
- Python SciPy linalg.tril用法及代码示例
- Python SciPy linalg.triu用法及代码示例
- Python SciPy linalg.svd用法及代码示例
- Python SciPy linalg.ishermitian用法及代码示例
- Python SciPy linalg.invhilbert用法及代码示例
注:本文由纯净天空筛选整理自scipy.org大神的英文原创作品 scipy.linalg.eigh_tridiagonal。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。