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 62The right-hand side is
b
=
260
*ones(8,1)
,
b = 260 260 260 260 260 260 260 260The 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.1538and
y = A\bwhich is
y = 3.0000 4.0000 0 0 1.0000 0Both 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