# Documentation

### This is machine translation

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

# `linalg`::`pseudoInverse`

Moore-Penrose inverse of a matrix

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

## Syntax

```linalg::pseudoInverse(`A`)
```

## Description

`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`.

## Examples

### 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`

## Parameters

 `A` A matrix of category `Cat::Matrix`

## Return Values

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

## Algorithms

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.