用法:
scipy.linalg.pinv2(a, cond=None, rcond=None, return_rank=False, check_finite=True)
計算矩陣的(Moore-Penrose)pseudo-inverse。
使用singular-value分解並包括所有‘large’奇異值來計算矩陣的廣義逆。
參數:
- a:(M, N) array_like
矩陣為pseudo-inverted。
- cond, rcond:float 或 None
‘small’奇異值的截止值;小於此值的奇異值將被視為零。如果兩者都省略,則為默認值
max(M,N)*largest_singular_value*eps
用在其中eps
是的數據類型的機器精度值a
。在1.3.0版中進行了更改:以前默認的截止值是
eps*f
其中f
原為1e3
單精度和1e6
雙精度。- return_rank:bool, 可選參數
如果為True,則返回矩陣的有效等級。
- check_finite:bool, 可選參數
是否檢查輸入矩陣僅包含有限數。禁用可能會提高性能,但是如果輸入中確實包含無窮大或NaN,則會導致問題(崩潰,終止)。
返回值:
- B:(N,M)ndarray
矩陣a的pseudo-inverse。
- rank:整型
矩陣的有效等級。如果return_rank為True,則返回。
異常:
- LinAlgError
如果SVD計算不收斂。
例子:
>>> from scipy import linalg >>> a = np.random.randn(9, 6) >>> B = linalg.pinv2(a) >>> np.allclose(a, np.dot(a, np.dot(B, a))) True >>> np.allclose(B, np.dot(B, np.dot(a, B))) True
源碼:
scipy.linalg.pinv2的API實現見:[源代碼]
注:本文由純淨天空篩選整理自 scipy.linalg.pinv2。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。