numpy.linalg.eigvals#

linalg.eigvals(a)[原始碼]#

計算一般矩陣的特徵值。

eigvalseig 之間的主要差異:不傳回特徵向量。

參數:
a(…, M, M) array_like

一個複數或實數值的矩陣,將計算其特徵值。

傳回值:
w(…, M,) ndarray

特徵值,每個都根據其重數重複。它們不一定排序,對於實數矩陣也不一定是實數。

引發:
LinAlgError

如果特徵值計算不收斂。

另請參閱

eig

一般陣列的特徵值和右特徵向量

eigvalsh

實數對稱或複數 Hermitian(共軛對稱)陣列的特徵值。

eigh

實數對稱或複數 Hermitian(共軛對稱)陣列的特徵值和特徵向量。

scipy.linalg.eigvals

SciPy 中類似的函數。

註解

廣播規則適用,請參閱 numpy.linalg 文件以了解詳細資訊。

這是使用 _geev LAPACK 常式實作的,該常式計算一般方陣的特徵值和特徵向量。

範例

說明,使用對角矩陣的特徵值是其對角元素的事實,將矩陣從左側乘以正交矩陣 Q,從右側乘以 Q.TQ 的轉置),保留「中間」矩陣的特徵值。換句話說,如果 Q 是正交的,則 Q * A * Q.TA 具有相同的特徵值

>>> import numpy as np
>>> from numpy import linalg as LA
>>> x = np.random.random()
>>> Q = np.array([[np.cos(x), -np.sin(x)], [np.sin(x), np.cos(x)]])
>>> LA.norm(Q[0, :]), LA.norm(Q[1, :]), np.dot(Q[0, :],Q[1, :])
(1.0, 1.0, 0.0)

現在將對角矩陣從一側乘以 Q,另一側乘以 Q.T

>>> D = np.diag((-1,1))
>>> LA.eigvals(D)
array([-1.,  1.])
>>> A = np.dot(Q, D)
>>> A = np.dot(A, Q.T)
>>> LA.eigvals(A)
array([ 1., -1.]) # random