bundles / scipy 1.17.1 / scipy / linalg / _basic / pinvh
function
scipy.linalg._basic:pinvh
source: /scipy/linalg/_basic.py :1937
Signature
def pinvh ( a , atol = None , rtol = None , lower = True , return_rank = False , check_finite = True ) Summary
Compute the (Moore-Penrose) pseudo-inverse of a Hermitian matrix.
Extended Summary
Calculate a generalized inverse of a complex Hermitian/real symmetric matrix using its eigenvalue decomposition and including all eigenvalues with 'large' absolute value.
The documentation is written assuming array arguments are of specified "core" shapes. However, array argument(s) of this function may have additional "batch" dimensions prepended to the core shape. In this case, the array is treated as a batch of lower-dimensional slices; see linalg_batch for details. Note that calls with zero-size batches are unsupported and will raise a ValueError.
Parameters
a: (N, N) array_likeReal symmetric or complex hermetian matrix to be pseudo-inverted
atol: float, optionalAbsolute threshold term, default value is 0.
rtol: float, optionalRelative threshold term, default value is
N * epswhereepsis the machine precision value of the datatype ofa.lower: bool, optionalWhether the pertinent array data is taken from the lower or upper triangle of
a. (Default: lower)return_rank: bool, optionalIf True, return the effective rank of the matrix.
check_finite: bool, optionalWhether to check that the input matrix contains only finite numbers. Disabling may give a performance gain, but may result in problems (crashes, non-termination) if the inputs do contain infinities or NaNs.
Returns
B: (N, N) ndarrayThe pseudo-inverse of matrix
a.rank: intThe effective rank of the matrix. Returned if
return_rankis True.
Raises
: LinAlgErrorIf eigenvalue algorithm does not converge.
Examples
For a more detailed example see `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) np.allclose(B, B @ a @ B)✓
See also
- pinv
Moore-Penrose pseudoinverse of a matrix.
Aliases
-
scipy.linalg.pinvh