本文簡要介紹 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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。