Given its pseudo-inverse, is there a fast way to measure the degree of full-rankness of a nonsquare matrix?

331 Views Asked by At

update: I realized the core of question is about ill-conditioning of the matrix (aka Multicollinearity). In a computer, with floating point arithmetic, it is impossible to talk about full-rankness. We can only measure the degree in which it occurs. Thus, I still have a question. Better rewritten.

I have seen in StackOverflow suggestions of dividing the biggest singular value by the smallest. Is performing an entire SVD really the fastest solution?


I am writing a software that needs to check the full-rankness of a matrix M. It makes use of a fast linear algebra library (LAPACK). Since it also needs the pseudo-inverse of the matrix, it performs Singular Value Decomposition first, to be able to calculate the rank. After that it calculates the pseudo-inverse.

However, if we measure only the SVD part of the calculation, it is already twice slower than my entire previous pseudo-inverse calculation "pinvRR" (which was based on ridge regression theory).

Can I take advantage of the pinvRR result to check if the matrix is full-rank?