pinv

Purpose

Moore-Penrose pseudoinverse of a matrix.

Synopsis

X = pinv(A)
X = pinv(A,tol)

Description

X = pinv(A) produces the Moore-Penrose pseudoinverse, which is a matrix X of the same dimensions as A' satisfying four conditions:

A*X*A = A
X*A*X = X
A*X is Hermitian
X*A is Hermitian
The computation is based on svd(A) and any singular values less than a tolerance are treated as zero. The default tolerance is

tol = max(size(A))*norm(A)*eps
This tolerance can be overridden with X = pinv(A,tol).

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 which 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 1s. With only six columns, the equations are still consistent, so a solution exists, but it is not all 1s. 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 is

y =
    3.0000
    4.0000
         0
         0
    1.0000
         0
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

inv, qr, rank, svd

(c) Copyright 1994 by The MathWorks, Inc.