Moore-Penrose inverse of a matrix
This functionality does not run in MATLAB.
linalg::pseudoInverse(A) computes the Moore-Penrose
inverse of A.
If the Moore-Penrose inverse of
A does not
FAIL is returned.
The component ring of the matrix
A must be
a field, i.e., a domain of category
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
Matrix of the same domain type as
A, or the
For an invertible matrix A, the Moore-Penrose inverse A* of A coincides with the inverse of A. In general, only A A* A = A and A* A A* = 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
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.