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, optional
廣義特徵值問題中的右手邊矩陣。如果省略,則假定為單位矩陣。
- overwrite_abool, optional
是否覆寫 a 中的資料 (可能提高效能)
- check_finitebool, optional
是否檢查輸入矩陣僅包含有限數字。 停用可能會提高效能,但如果輸入包含無限或 NaN,可能會導致問題(崩潰、無法終止)。
- homogeneous_eigvalsbool, optional
如果為 True,則以齊次座標返回特徵值。 在這種情況下,
w
是一個 (2, M) 陣列,因此w[1,i] a vr[:,i] = w[0,i] b vr[:,i]
預設值為 False。
- 返回值:
- w(M,) or (2, M) double or complex ndarray
特徵值,每個特徵值根據其重數重複,但不按任何特定順序排列。 形狀為 (M,),除非
homogeneous_eigvals=True
。
- 拋出:
- 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]])