Singular value decomposation orthogonal to another matrix

14 Views Asked by At

I have two real matrices $A^{k\times m}$ and $B^{k\times n}$, let's assume $k\gg m$ and $m>n$. Let's also introduce an augmented matrix $C = [A \quad qB]$.

I want to get the 'almost' singular values of $A$, subject to the constraint that the left singular vectors must be orthogonal to the vectors comprising $B$. In other words, I want the singular values of $C$ with $q\to\infty $, discarding the highest $n$ singular values.

Right now, that's exactly how I've implemented it, using a 'sufficiently' high $q$, but I feel that this might be computationally inefficient and prone to round-off errors. I'm looking for a more direct way to get the same result.

1

There are 1 best solutions below

0
On

I think I figured out a simple way (let me know if there are others):

Let $Q$ be a basis orthogonal to $B$, i.e., $Q=\textrm{null}(B^T)$. Then $QQ^T$ is a coordinate transform that explicitly 'drops out' the basis of $B$. So then we can simply calculate $\textrm{svd}(QQ^TA)$ to get the desired result.