Reuse of SVD of a matrix J to get the SVD of the matrix W J W^T

387 Views Asked by At

I hope I don't ask something with an obvious answer, but my search so far gave me no satisfactory one.

I have a real symmetric positive definite $n \times n$ matrix $\bf{J}$ of which I have computed the SVD. Since the matrix is symmetric the left and right singular vectors are identical and in this way I can obtain a "symmetric" decomposition by absorbing the square root the singular values in the singular vectors, so that I get a decomposition like

$\bf{J}=\bar{\bf{U}} \bar{\bf{U}}^T$

Begin of Edit: Sorry the bar is misleading. For the a symmetric matrix the SVD of $\bf J$ of is

$\bf J =U\Sigma U^T$

since the right and left singular vectors. Because for my specific case it is more convenient I absorb the square root of the singular values into the singular vector, which is indicated by the bar.

$U_{nm}=\sqrt{\sigma_m}U_{nm}$

End of Edit

Additionally I compute several real symmetric $k\times k$ matrices $\bf{M}$ as

$\bf{M}=\bf{W}\bf{J}\bf{W}^{T}$

For which I also need this kind of decomposition:

$\bf{M} = \bar{V}\bar{V}^{T}$

At the moment I calculate it as:

${\bar{V}}_{kn} = \sum_{m} W_{k,m} \bar{U}_{mn}$

This avoids to do an expensive SVD all the time (otherwise I have to do it several 1000 times), but the drawback is that in my case $k<<n$ and therefore the size of the matrices $\bf{\bar{V}}$ is much larger than needed.

Is there an easy way to get the SVD of $\bf{M}$? or a similar decomposition? (It is not really important to get the true SVD, but to get a similar decomposition). I realized that the Cholesky decomposition might also be used, but here is the same problem to reuse the already decomposed matrix.

1

There are 1 best solutions below

1
On

I am not sure if this is exactly what you are looking for, but if $J$ is symmetric it is simpler to use the eigendecomposition:

$J=QDQ^T $

Where $Q$ is rothogonal, i.e. $Q^{-1}=Q^T$, and $ D$ is diagonal. This is holds for all symmetric matrices. Then:

$M = WQDQ^TW^T = (WQ)D(WQ)^T$

This way you would only have to perform a single matrix product and its transpose and you reuse all matrices from $J$ eigendecomposition.