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