Express a matrix as a vector multiplied by its transpose

366 Views Asked by At

Suppose I have an $n \times n$ matrix $A$ with positive real entries. Is it possible to find an $n \times 1$ vector $v$ such that

$$ vv^T = A $$

where $v^T$ is the transpose of $v$?

Is it possible to use singular value decomposition or any technique to achieve this?

2

There are 2 best solutions below

6
On BEST ANSWER

The rank of $vv^T$ is 1 or 0, so only square matrices of rank 1 or 0 can have such a representation.

If $A=0$ then $v=\vec 0$.

In general if $v=(a_1,...,a_n)^T$ then $vv^T$ has rows $a_1v^T,..., a_nv^T$, so you can find $v$ by looking at the diagonal entries of $A$.

5
On

$vv^T$ has rank $\le 1,$ so such a decomposition exists only if $A$ has rank $\le 1.$

If the decomposition exists, $v$ is formed from taking square roots of the entries on the diagonal of $A$ since $a_{i,i}=v_i^2.$ You will get $2^k$ possible $v$'s where $k$ is the number of non-zero entries.