This is machine translation

Translated by Microsoft
Mouse over text to see original. Click the button below to return to the English verison of the page.


Moore-Penrose inverse of a matrix

MuPAD® notebooks are not recommended. Use MATLAB® live scripts instead.

MATLAB live scripts support most MuPAD functionality, though there are some differences. For more information, see Convert MuPAD Notebooks to MATLAB Live Scripts.




linalg::pseudoInverse(A) computes the Moore-Penrose inverse of A.

If the Moore-Penrose inverse of A does not exist, then FAIL is returned.

The component ring of the matrix A must be a field, i.e., a domain of category Cat::Field.


Example 1

The Moore-Penrose inverse of the 2×3 matrix:

A := Dom::Matrix(Dom::Complex)([[1, I, 3], [1, 3, 2]])

is the 3×2 matrix:

Astar := linalg::pseudoInverse(A)

Note that in this example, only:

A * Astar

yields the identity matrix, but not (see "Backgrounds" below):

Astar * A



A matrix of category Cat::Matrix

Return Values

Matrix of the same domain type as A, or the value FAIL.


For an invertible matrix A, the Moore-Penrose inverse A* of A coincides with the inverse of A. In general, only AA*A = A and A*AA* = A* holds.

If A is of dimension m×n, then A* is of dimension n×m.

The computation of the Moore-Penrose inverse requires the existence of a scalar product on the vector space Kn, where K is the coefficient field of the matrix A. This is only the case for some fields K in theory, but linalg::scalarProduct works also for vectors over other fields (e.g. finite fields). The computation of a Moore-Penrose inverse may fail in such cases.

See Also

MuPAD Functions

Was this topic helpful?