scipy.linalg.
pinvh#
- scipy.linalg.pinvh(a, atol=None, rtol=None, lower=True, return_rank=False, check_finite=True)[源代码]#
计算埃尔米特矩阵的(Moore-Penrose)伪逆。
使用复埃尔米特/实对称矩阵的特征值分解计算广义逆,并包括所有具有“大”绝对值的特征值。
- 参数:
- a(N, N) 类数组
要进行伪逆运算的实对称或复埃尔米特矩阵
- atolfloat,可选
绝对阈值项,默认值为 0。
在 1.7.0 版本中添加。
- rtolfloat,可选
相对阈值项,默认值为
N * eps
,其中eps
是a
数据类型的机器精度值。在 1.7.0 版本中添加。
- lowerbool,可选
是否从 a 的下三角或上三角中提取相关数组数据。(默认值:lower)
- return_rankbool,可选
如果为 True,则返回矩阵的有效秩。
- check_finitebool,可选
是否检查输入矩阵是否仅包含有限数字。禁用可能会提高性能,但如果输入包含无穷大或 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