Note: This page has been translated by MathWorks. Please click here

To view all translated materals including this page, select Japan from the country navigator on the bottom of this page.

To view all translated materals including this page, select Japan from the country navigator on the bottom of this page.

Moore-Penrose pseudoinverse of matrix

`B = pinv(A)`

B = pinv(A,tol)

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.

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

.

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.

Was this topic helpful?