MATLAB Function Reference |

Moore-Penrose pseudoinverse of a matrix

**Syntax**

**Definition**

The Moore-Penrose pseudoinverse is a matrix `B`

of the same dimensions as `A'`

satisfying four conditions:

The computation is based on `svd(A)`

and any singular values less than `tol`

are treated as zero.

**Description**

```
B = pinv(A)
```

returns the Moore-Penrose pseudoinverse of `A`

.

```
B = pinv(A,tol)
```

returns the Moore-Penrose pseudoinverse and overrides the default tolerance, `max(size(A))*norm(A)*eps`

.

**Examples**

If `A`

is square and not singular, then `pinv(A)`

is an expensive way to compute `inv(A)`

. If `A`

is not square, or is square and singular, then `inv(A)`

does not exist. In these cases, `pinv(A)`

has some of, but not all, the properties of `inv(A)`

.

If `A`

has more rows than columns and is not of full rank, then the overdetermined least squares problem

does not have a unique solution. Two of the infinitely many solutions are

These two are distinguished by the facts that `norm(x)`

is smaller than the norm of any other solution and that `y`

has the fewest possible nonzero components.

For example, the matrix generated by

is an 8-by-6 matrix that happens to have `rank(A)`

`=`

`3`

.

A = 64 2 3 61 60 6 9 55 54 12 13 51 17 47 46 20 21 43 40 26 27 37 36 30 32 34 35 29 28 38 41 23 22 44 45 19 49 15 14 52 53 11 8 58 59 5 4 62

The right-hand side is `b`

`=`

`260*ones(8,1)`

,

The scale factor 260 is the 8-by-8 magic sum. With all eight columns, one solution to `A*x`

`=`

`b`

would be a vector of all `1`

's. With only six columns, the equations are still consistent, so a solution exists, but it is not all `1`

's. Since the matrix is rank deficient, there are infinitely many solutions. Two of them are

Both of these are exact solutions in the sense that `norm(A`

*`x-b)`

and `norm(A`

*`y-b`

) are on the order of roundoff error. The solution `x`

is special because

is smaller than the norm of any other solution, including

On the other hand, the solution `y`

is special because it has only three nonzero components.

**See Also**

pie3 | planerot |