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 |
© 1994-2005 The MathWorks, Inc.