本文簡要介紹 python 語言中 numpy.linalg.slogdet
的用法。
用法:
linalg.slogdet(a)
計算數組行列式的符號和(自然)對數。
如果數組具有非常小或非常大的行列式,則對
det
的調用可能會上溢或下溢。該例程對此類問題更加穩健,因為它計算行列式的對數而不是行列式本身。- a: (…, M, M) 數組
輸入數組,必須是一個方形二維數組。
- sign: (…)數組
代表行列式符號的數字。對於實數矩陣,這是 1、0 或 -1。對於複數矩陣,這是一個絕對值為 1 的複數(即它在單位圓上),否則為 0。
- logdet: (…)數組
行列式絕對值的自然對數。
- 如果行列式為零,則numpy.sign將為 0 並且日誌將會
- -Inf。在所有情況下,行列式都等於
sign * np.exp(logdet)
。
參數:
返回:
注意:
廣播規則適用,有關詳細信息,請參閱
numpy.linalg
文檔。使用 LAPACK 例程
z/dgetrf
通過 LU 分解計算行列式。例子:
二維數組
[[a, b], [c, d]]
的行列式是ad - bc
:>>> a = np.array([[1, 2], [3, 4]]) >>> (sign, logdet) = np.linalg.slogdet(a) >>> (sign, logdet) (-1, 0.69314718055994529) # may vary >>> sign * np.exp(logdet) -2.0
為一堆矩陣計算log-determinants:
>>> a = np.array([ [[1, 2], [3, 4]], [[1, 2], [2, 1]], [[1, 3], [3, 1]] ]) >>> a.shape (3, 2, 2) >>> sign, logdet = np.linalg.slogdet(a) >>> (sign, logdet) (array([-1., -1., -1.]), array([ 0.69314718, 1.09861229, 2.07944154])) >>> sign * np.exp(logdet) array([-2., -3., -8.])
此例程在普通
det
不成功的情況下成功:>>> np.linalg.det(np.eye(500) * 0.1) 0.0 >>> np.linalg.slogdet(np.eye(500) * 0.1) (1, -1151.2925464970228)
相關用法
- Python numpy linalg.svd用法及代碼示例
- Python numpy linalg.solve用法及代碼示例
- Python numpy linalg.pinv用法及代碼示例
- Python numpy linalg.eigh用法及代碼示例
- Python numpy linalg.tensorinv用法及代碼示例
- Python numpy linalg.LinAlgError用法及代碼示例
- Python numpy linalg.matrix_rank用法及代碼示例
- Python numpy linalg.det用法及代碼示例
- Python numpy linalg.cond用法及代碼示例
- Python numpy linalg.inv用法及代碼示例
- Python numpy linalg.eig用法及代碼示例
- Python numpy linalg.lstsq用法及代碼示例
- Python numpy linalg.norm用法及代碼示例
- Python numpy linalg.multi_dot用法及代碼示例
- Python numpy linalg.tensorsolve用法及代碼示例
- Python numpy linalg.qr用法及代碼示例
- Python numpy linalg.matrix_power用法及代碼示例
- Python numpy linalg.cholesky用法及代碼示例
- Python numpy linalg.eigvals用法及代碼示例
- Python numpy linalg.eigvalsh用法及代碼示例
- Python numpy linspace用法及代碼示例
- Python numpy lib.NumpyVersion用法及代碼示例
- Python numpy lib.Arrayterator用法及代碼示例
- Python numpy legendre.legint用法及代碼示例
- Python numpy laguerre.lagone用法及代碼示例
注:本文由純淨天空篩選整理自numpy.org大神的英文原創作品 numpy.linalg.slogdet。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。