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


Python SciPy linalg.eigvals用法及代碼示例


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

用法:

scipy.linalg.eigvals(a, b=None, overwrite_a=False, check_finite=True, homogeneous_eigvals=False)#

從普通或廣義特征值問題計算特征值。

求一般矩陣的特征值:

a   vr[:,i] = w[i]        b   vr[:,i]

參數

a (M, M) 數組

將計算其特征值和特征向量的複數或實數矩陣。

b (M, M) 數組,可選

廣義特征值問題中的右側矩陣。如果省略,則假定單位矩陣。

overwrite_a 布爾型,可選

是否覆蓋 a 中的數據(可能會提高性能)

check_finite 布爾型,可選

是否檢查輸入矩陣是否僅包含有限數。禁用可能會提高性能,但如果輸入確實包含無窮大或 NaN,則可能會導致問題(崩潰、非終止)。

homogeneous_eigvals 布爾型,可選

如果為 True,則返回齊次坐標中的特征值。在這種情況下,w 是一個 (2, M) 數組,因此:

w[1,i] a vr[:,i] = w[0,i] b vr[:,i]

默認為假。

返回

w (M,) 或 (2, M) 雙精度或複數 ndarray

特征值,每個都根據其多重性重複,但沒有任何特定的順序。形狀為 (M,) 除非 homogeneous_eigvals=True

拋出

LinAlgError

如果特征值計算不收斂

例子

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

相關用法


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