MATLAB Function Reference    
pinv

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

and

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.

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


 pie3 plot