How do we split the matrix in Divide and Conquer for SVD?

370 Views Asked by At

I am learning the Divide and Conquer algorithm for SVD. Consider for example a random upper bidiagonal 6-by-6 matrix $$B=\begin{bmatrix} * & * & 0 & 0 & 0 & 0\\ 0 & * & * & 0 & 0 & 0\\ 0 & 0 & * & * & 0 & 0\\ 0 & 0 & 0 & * & * & 0\\ 0 & 0 & 0 & 0 & * & *\\ 0 & 0 & 0 & 0 & 0 & * \end{bmatrix}$$
The first step of the Divide and Conquer algorithm for SVD is splitting the matrix $B$ into two submatrices $B_1 \in \mathbb R^{(k-1) \times k}$ and $B_2 \in \mathbb R^{(n-k) \times (n-k)}$ plus the matrix with elements in the k-th row. The logical choice for $k$ would be $k\approx \frac{m}{2}.$ So we have $B_1=\begin{bmatrix} * & * & 0 \\ 0 & * & * \\ \end{bmatrix}$ and $B_2=\begin{bmatrix} * & * & 0\\ 0 & * & *\\ 0 & 0 & * \end{bmatrix}.$ Then we recursive calls to the divide-and-conquer algorithm, so we proceed with splitting $B_1$ and $B_2$. I understand how to divide $B_2:$ we "ignore" the second row and we end up with 1-by-2 and 1-by-1 submatrices(the elements of the first row and the element of the third row). My question is how do we split $B_1$ then, since we need to "ignore" 1 row?

1

There are 1 best solutions below

0
On

You do not split $B_1$. Instead you compute the singular value decomposition of $B_1$ using an algorithm which is not recursive. The divide-and-conquer SVD glues two smaller SVD together and it does not matter how these smaller SVDs are computed.