scipy.linalg.pinv2

scipy.linalg.pinv2(a, cond=None, rcond=None)[source]

Compute the (Moore-Penrose) pseudo-inverse of a matrix.

Calculate a generalized inverse of a matrix using its singular-value decomposition and including all ‘large’ singular values.

Parameters :

a : array, shape (M, N)

Matrix to be pseudo-inverted.

cond, rcond : float or None

Cutoff for ‘small’ singular values. Singular values smaller than rcond*largest_singular_value are considered zero. If None or -1, suitable machine precision is used.

Returns :

B : array, shape (N, M)

The pseudo-inverse of matrix a.

Raises :

LinAlgError :

If SVD computation does not converge.

Examples

>>> a = np.random.randn(9, 6)
>>> B = linalg.pinv2(a)
>>> np.allclose(a, dot(a, dot(B, a)))
True
>>> np.allclose(B, dot(B, dot(a, B)))
True

Previous topic

scipy.linalg.pinv

Next topic

scipy.linalg.kron