當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Python numpy linalg.eigvalsh用法及代碼示例


本文簡要介紹 python 語言中 numpy.linalg.eigvalsh 的用法。

用法:

linalg.eigvalsh(a, UPLO='L')

計算複數 Hermitian 或實對稱矩陣的特征值。

與 eigh 的主要區別:不計算特征向量。

參數

a (…, M, M) 數組

要計算其特征值的複數或實數矩陣。

UPLO {‘L’, ‘U’},可選

指定是使用 a 的下三角部分(“L”,默認)還是上三角部分(“U”)進行計算。不管這個值如何,在計算中隻考慮對角線的實部,以保留 Hermitian 矩陣的概念。因此,對角線的虛部將始終被視為零。

返回

w (..., M,) ndarray

特征值按升序排列,每個都根據其多重性重複。

拋出

LinAlgError

如果特征值計算不收斂。

注意

廣播規則適用,有關詳細信息,請參閱 numpy.linalg 文檔。

使用 LAPACK 例程 _syevd_heevd 計算特征值。

例子

>>> from numpy import linalg as LA
>>> a = np.array([[1, -2j], [2j, 5]])
>>> LA.eigvalsh(a)
array([ 0.17157288,  5.82842712]) # may vary
>>> # demonstrate the treatment of the imaginary part of the diagonal
>>> a = np.array([[5+2j, 9-2j], [0+2j, 2-1j]])
>>> a
array([[5.+2.j, 9.-2.j],
       [0.+2.j, 2.-1.j]])
>>> # with UPLO='L' this is numerically equivalent to using LA.eigvals()
>>> # with:
>>> b = np.array([[5.+0.j, 0.-2.j], [0.+2.j, 2.-0.j]])
>>> b
array([[5.+0.j, 0.-2.j],
       [0.+2.j, 2.+0.j]])
>>> wa = LA.eigvalsh(a)
>>> wb = LA.eigvals(b)
>>> wa; wb
array([1., 6.])
array([6.+0.j, 1.+0.j])

相關用法


注:本文由純淨天空篩選整理自numpy.org大神的英文原創作品 numpy.linalg.eigvalsh。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。