# Documentation

### This is machine translation

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

# pinv

Moore-Penrose pseudoinverse of matrix

## Syntax

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

## Definitions

The Moore-Penrose pseudoinverse is a matrix `B` of the same dimensions as `A'` satisfying four conditions:

```A*B*A = A B*A*B = B A*B is Hermitian B*A is Hermitian```

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))*eps(norm(A))`.

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

`minimize norm(A*x-b) `

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

`x = pinv(A)*b `

and

`y = A\b `

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

`A = magic(8); A = A(:,1:6) `

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)`,

```b = 260 260 260 260 260 260 260 260```

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

`x = pinv(A)*b `

which is

```x = 1.1538 1.4615 1.3846 1.3846 1.4615 1.1538```

and

`y = A\b`

which produces this result.

```Warning: Rank deficient, rank = 3 tol = 1.8829e-013. y = 4.0000 5.0000 0 0 0 -1.0000```

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

`norm(x) = 3.2817 `

is smaller than the norm of any other solution, including

`norm(y) = 6.4807 `

On the other hand, the solution `y` is special because it has only three nonzero components.

## See Also

#### Introduced before R2006a

Was this topic helpful?

Watch now