PSD rank 1 matrix decomposition into product of two vectors

827 Views Asked by At

Assume that I'm given with matrix $\textbf{Q} = \textbf{q}\textbf{q}^H$. Assume I only have $\textbf{Q}$, is there any way for me to find vector $\textbf{q}$? Thanks!

2

There are 2 best solutions below

9
On BEST ANSWER

Let $x$ be such that $x^H Q x > 0$. Then $\dfrac{Qx}{\sqrt{x^H Q x}} = \dfrac{q^H x}{\|q^Hx\|} q = cq$ where $\|c\| = 1.$

Next note if $q \neq 0$ then for some $i$ we must have $ e_i^H Q e_i = || e^H q||^2 = |q_i|^2 > 0$, where $e_i$ is the $i^{\text{th}}$ canonical basis vector and $q=(q_1,\dots,q_n)^T$.

Next note that $q$ can only be determined upto a constant $c$ with $\|c\| = 1$ since $(cq) (cq)^H = \|c\|^2 qq^H = qq^H$ so we can assume wlog $c = 1$ above.

We can choose a $q$ as $\dfrac{Qe_i}{\sqrt{e_i^H Q e_i}}$ for the $e_i$ for which $e_i^H Q e_i > 0.$ If no such $i$ exists we must have $Q =0$ and we can choose $q=0.$

0
On

Here's the quickest approach I can think of: let $\mathbf x$ be any non-zero column of $Q$. Then, it suffices to take $$ \mathbf q = \frac{\sqrt{\operatorname{trace}(Q)}}{\|\mathbf x\|} \cdot \mathbf x $$ Note, however, that if $z$ is a complex number with $|z| = 1$, then $(z\mathbf q)(z\mathbf q)^H = \mathbf q \mathbf q^H$.