Decomposing a square matrix into two non-square matrices

747 Views Asked by At

I have a matrix $A$ with dimensions $(m \times m)$ and it is positive definite. I want to find the matrix $B$ with dimensions $(n \times m), (n \ll m)$, which follows the following expression: $$A = B'B$$ Here $B'$ is the transpose of $B$.

I was also thinking of SVD to re-write $A$ as: $$A = QDQ'$$ but I am not sure how to proceed from there on wards.

Any help to find the matrix $B$ is highly appreciated.

2

There are 2 best solutions below

0
On

If $A$ is positive definite (all eigen-values positive) then you will not ever be able to find such $B$ that gives you exactly $A = B'B$ because $A$ is invertible but $B'B$ is not (it will have rank at most $n < m$). However, you can use the SVD to come up with an approximation as $A = B'B$ with $B = \sqrt{D_n} Q'$, where $D_n$ is the sub-matrix of $D$ with the all but the top $n$ singular values set to $0$. You can rewrite such $B$ as $n \times m$ as desired, and the approximation to $A$ will be as close as possible in terms of $L_2$ norm

1
On

If the matrix $A$ is real and positive defined, use the Cholesky decomposition.

$$A=B \cdot B'$$

$$B_{j,j}=\sqrt{A_{j,j}-\sum_{k=1}^{j-1} B_{j,k}^2}$$

$$B_{i,j}=\frac{1}{B_{j,j}} \left (A_{i,j}-\sum_{k=1}^{j-1} B_{i,k}B_{j,k} \right)$$