Vector orthogonalisation that keeps (as many as possible) zero elements

43 Views Asked by At

I have a matrix $\bf{A}$ of orthonormal vectors (columns of that matrix). Most of these vectors have some elements which have a numerical value close to zero. For every column of $\bf{A}$, I go through all elements and whenever the element is smaller than a threshold $\alpha$, I set it to zero. Usually, after this process about 10% of elements get zeroed and of course the vectors are no longer orthonormal.

Is there a method that I could use to re-normalize and re-orthogonalise the columns, but one that promotes keeping many* of the set-to-zero elements still equal to zero?

For now I only re-normalize every column dividing by its norm and I tried Gram-Schmidt orthogonalisation with this algorithm. It seems to maintain the zero elements only in the first vector. This is a good start, as *in fact, it is most important for me if the set-to-zero elements are maintained only in about first 50% of the columns. I wonder if I can do better using a different technique.