# pinv

Moore-Penrose pseudoinverse

## Description

`B = pinv(`

returns the Moore-Penrose Pseudoinverse of matrix
`A`

)`A`

.

## Examples

## Input Arguments

## More About

## Tips

You can replace most uses of

`pinv`

applied to a vector`b`

, as in`pinv(A)*b`

, with`lsqminnorm(A,b)`

to get the minimum-norm least-squares solution of a system of linear equations.`lsqminnorm`

is generally more efficient than`pinv`

, and it also supports sparse matrices.

## Algorithms

`pinv`

uses the singular value decomposition to form the
pseudoinverse of `A`

. Singular values along the diagonal of
`S`

that are smaller than `tol`

are treated as
zeros, and the representation of `A`

becomes:

$$\begin{array}{l}A=US{V}^{*}=\left[{U}_{1}\text{\hspace{0.17em}}\text{\hspace{0.17em}}{U}_{2}\right]\left[\begin{array}{cc}{S}_{1}& 0\\ 0& 0\end{array}\right]{\left[{V}_{1}\text{\hspace{0.17em}}\text{\hspace{0.17em}}{V}_{2}\right]}^{*}\\ A={U}_{1}{S}_{1}{V}_{1}^{*}\text{\hspace{0.17em}}.\end{array}$$

The pseudoinverse of `A`

is then equal to:

$$B={V}_{1}{S}_{1}^{-1}{U}_{1}^{*}\text{\hspace{0.17em}}.$$

## Compatibility Considerations

## Extended Capabilities

## See Also

`inv`

| `qr`

| `rank`

| `svd`

| `lsqminnorm`

| `decomposition`

**Introduced before R2006a**