| MATLAB Function Reference | Search  Help Desk |
| pinv | Examples See Also |
Moore-Penrose pseudoinverse of a 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 HermitianThe 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))*norm(A)*eps.
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)*band
y = A\bThese 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)*bwhich is
x =
1.1538
1.4615
1.3846
1.3846
1.4615
1.1538
and
y = A\bwhich 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.2817is smaller than the norm of any other solution, including
norm(y) = 5.0990On the other hand, the solution
y is special because it has only three nonzero components.
inv Matrix inverse
qr Orthogonal-triangular decomposition
rank Rank of a matrix
svd Singular value decomposition