当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python scipy linalg.pinv2用法及代码示例


用法:

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, rcondfloat 或 None

‘small’奇异值的截止值;小于此值的奇异值将被视为零。如果两者都省略,则为默认值max(M,N)*largest_singular_value*eps用在其中eps是的数据类型的机器精度值a

在1.3.0版中进行了更改:以前默认的截止值是eps*f其中f原为1e3单精度和1e6双精度。

return_rankbool, 可选参数

如果为True,则返回矩阵的有效等级。

check_finitebool, 可选参数

是否检查输入矩阵仅包含有限数。禁用可能会提高性能,但是如果输入中确实包含无穷大或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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。