用法:
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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。