| 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 | ![]() |