numpy.linalg.eigvals#
- linalg.eigvals(a)[原始碼]#
計算一般矩陣的特徵值。
eigvals
和eig
之間的主要差異:不傳回特徵向量。- 參數:
- a(…, M, M) array_like
一個複數或實數值的矩陣,將計算其特徵值。
- 傳回值:
- w(…, M,) ndarray
特徵值,每個都根據其重數重複。它們不一定排序,對於實數矩陣也不一定是實數。
- 引發:
- LinAlgError
如果特徵值計算不收斂。
另請參閱
eig
一般陣列的特徵值和右特徵向量
eigvalsh
實數對稱或複數 Hermitian(共軛對稱)陣列的特徵值。
eigh
實數對稱或複數 Hermitian(共軛對稱)陣列的特徵值和特徵向量。
scipy.linalg.eigvals
SciPy 中類似的函數。
註解
廣播規則適用,請參閱
numpy.linalg
文件以了解詳細資訊。這是使用
_geev
LAPACK 常式實作的,該常式計算一般方陣的特徵值和特徵向量。範例
說明,使用對角矩陣的特徵值是其對角元素的事實,將矩陣從左側乘以正交矩陣 Q,從右側乘以 Q.T(Q 的轉置),保留「中間」矩陣的特徵值。換句話說,如果 Q 是正交的,則
Q * A * Q.T
與A
具有相同的特徵值>>> 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