scipy.linalg.
pinvh#
- scipy.linalg.pinvh(a, atol=None, rtol=None, lower=True, return_rank=False, check_finite=True)[源代码]#
计算(Moore-Penrose)厄米矩阵的伪逆。
使用其特征值分解计算复厄米/实对称矩阵的广义逆,并包含具有“大”绝对值的全部特征值。
文档编写时假设数组参数具有指定的“核心(core)”形状。但是,此函数的数组参数可以在核心形状之前添加额外的“批次(batch)”维度。在这种情况下,数组被视为低维切片的批次;详情请参阅 批量线性运算。请注意,不支持零大小批次的调用,否则将引发
ValueError。- 参数:
- a(N, N) array_like
要伪逆的实对称或复厄米矩阵
- atolfloat, 可选
绝对阈值项,默认值为 0。
版本 1.7.0 中新增。
- rtolfloat, optional
相对阈值项,默认值为
N * eps,其中eps是a的数据类型的机器精度值。版本 1.7.0 中新增。
- lowerbool, 可选
确定从 a 的下三角还是上三角获取相关数组数据。 (默认:lower)
- return_rankbool, optional
如果为 True,则返回矩阵的有效秩。
- check_finitebool, optional
是否检查输入矩阵是否只包含有限数值。禁用此选项可能会提高性能,但如果输入确实包含无穷大或 NaN,则可能导致问题(崩溃、非终止)。
- 返回:
- B(N, N) ndarray
矩阵 a 的伪逆。
- rankint
矩阵的有效秩。如果 return_rank 为 True,则返回。
- 引发:
- LinAlgError
如果特征值算法未收敛。
另请参阅
pinv矩阵的 Moore-Penrose 伪逆。
示例
有关更详细的示例,请参阅
pinv。>>> import numpy as np >>> from scipy.linalg import pinvh >>> rng = np.random.default_rng() >>> a = rng.standard_normal((9, 6)) >>> a = np.dot(a, a.T) >>> B = pinvh(a) >>> np.allclose(a, a @ B @ a) True >>> np.allclose(B, B @ a @ B) True