File Exchange

image thumbnail

Pseudo-inverse

version 1.5.0.0 (7.12 KB) by Bruno Luong
Factorize a matrix for pseudo-inverse calculation purpose

3 Downloads

Updated 19 Oct 2009

View Version History

View License

Factorize a matrix for pseudo-inverse to solve the normal equation:

A*x = b

There are two advantages of pseudo-inverse compared to MATLAB pinv:
- PINV requires costly SVD
- PINV does not operated with sparse matrix.

The solution x minimize the 2-norm of the residual |Ax - b|.

In case of underdetermined system, i.e., rank(A) < length(x), the solution returned by pseudoinverse(A)*b is the least 2-norm among all solutions. Note that this property does *not* meet if backslash operator is used: x = A\b.

Method: Use QR factorization on both source and destination space. The factorized result is stored in object that can be used later to multiply with any target space vectors (RHS).

Inspired from FACTORIZE http://www.mathworks.com/matlabcentral/fileexchange/24119

Cite As

Bruno Luong (2021). Pseudo-inverse (https://www.mathworks.com/matlabcentral/fileexchange/25453-pseudo-inverse), MATLAB Central File Exchange. Retrieved .

Comments and Ratings (3)

Gert Kruger

Thanks!

Daniel Vasilaky

One big problem with pseudo-inverse; it’s a discontinuous mapping of the data when the matrix is not full rank. In other words, the pseudo-inverse of a rank deficient matrix is sensitive to noisy data. See Golub , Matrix Computation 4th edition section 5.5.5. You need regularization.

dm

MATLAB Release Compatibility
Created with R2009b
Compatible with any release
Platform Compatibility
Windows macOS Linux
Acknowledgements

Inspired: Free-knot spline approximation

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

PseudoInverseFolder/@pseudoinverse/