scipy.linalg.
eigvals_banded#
- scipy.linalg.eigvals_banded(a_band, lower=False, overwrite_a_band=False, select='a', select_range=None, check_finite=True)[source]#
解決實對稱或複 Hermitian 帶狀矩陣特徵值問題。
找出 a 的特徵值 w
a v[:,i] = w[i] v[:,i] v.H v = identity
矩陣 a 儲存在 a_band 中,可以是下對角線或上對角線有序形式
a_band[u + i - j, j] == a[i,j] (if upper form; i <= j) a_band[ i - j, j] == a[i,j] (if lower form; i >= j)
其中 u 是對角線上方帶狀的數量。
a_band 的範例 (a 的形狀為 (6,6), u=2)
upper form: * * a02 a13 a24 a35 * a01 a12 a23 a34 a45 a00 a11 a22 a33 a44 a55 lower form: a00 a11 a22 a33 a44 a55 a10 a21 a32 a43 a54 * a20 a31 a42 a53 * *
標記 * 的儲存格未使用。
- 參數:
- a_band(u+1, M) 類陣列
M x M 矩陣 a 的帶狀。
- lowerbool, 選項性
矩陣是否為下三角形式。(預設為上三角形式)
- overwrite_a_bandbool, 選項性
捨棄 a_band 中的資料 (可能提升效能)
- select{‘a’, ‘v’, ‘i’}, 選項性
要計算哪些特徵值
select
計算值
‘a’
所有特徵值
‘v’
區間 (min, max] 中的特徵值
‘i’
索引 min <= i <= max 的特徵值
- select_range(min, max), 選項性
選定特徵值的範圍
- check_finitebool, 選項性
是否檢查輸入矩陣僅包含有限數字。停用此選項可能會提高效能,但如果輸入包含無限或 NaN 值,可能會導致問題 (崩潰、無法終止)。
- 回傳值:
- w(M,) ndarray
特徵值,以升序排列,每個值根據其重數重複。
- 引發:
- LinAlgError
如果特徵值計算不收斂。
另請參閱
eig_banded
對稱/Hermitian 帶狀矩陣的特徵值和右特徵向量
eigvalsh_tridiagonal
對稱/Hermitian 三對角矩陣的特徵值
eigvals
通用陣列的特徵值
eigh
對稱/Hermitian 陣列的特徵值和右特徵向量
eig
非對稱陣列的特徵值和右特徵向量
範例
>>> import numpy as np >>> from scipy.linalg import eigvals_banded >>> A = np.array([[1, 5, 2, 0], [5, 2, 5, 2], [2, 5, 3, 5], [0, 2, 5, 4]]) >>> Ab = np.array([[1, 2, 3, 4], [5, 5, 5, 0], [2, 2, 0, 0]]) >>> w = eigvals_banded(Ab, lower=True) >>> w array([-4.26200532, -2.22987175, 3.95222349, 12.53965359])