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]])