We know that given a vector $\mathbf{X}\in \mathrm{R}^{n\times 1}$, we can create a matrix $\mathbf{A} = \mathbf{XX}^T$, where $\mathbf{A}\in\mathrm{R}^{n\times n}$. Now let us suppose the reverse case. I am given the matrix $\mathbf{A}$. Is it possible to get the vector $\mathbf{X}$ from it was generated?
Getting back the column vector from which a matrix was generated
122 Views Asked by Bumbble Comm https://math.techqa.club/user/bumbble-comm/detail AtThere are 3 best solutions below
On
No it is not possible to recover $\def\x{\mathbf x}\x$ from $\mathbf A=\x\x^T$ (unless $\x=0$), since replacing $\x$ by $-\x$ will give the exact same value for $\x\x^T$ (the map $\x\mapsto\x\x^T$ is not injective). As others have observed the map is not surjective either (many matrices do not arise this way), but as I read the question, that is not at stake here, since $\mathbf A$ was produced by the above equation to begin with.
On
Not in general, since the rank of $XX^T$ is must be either $0$ or $1$, whereas the rank of $A$ is unconstrained, i.e. we have a priori $1 \le \text{rank}(A) \le n$. To see that $0 \le \text{rank}(XX^T) \le 1$, note that with
$X = (x_1, x_2, \ldots, x_n)^T, \tag{1}$
a column vector, we have
$XX^T = \begin{bmatrix} x_1 X^T \\ x_2X^T \\ \vdots \\ x_nX^T \end{bmatrix}; \tag{2}$
that is, the $i$-th row of $XX^T$ is $x_iX^T$, where $x_iX^T$ denotes ordinary scalar-vector multiplication. If $X = 0$, then $XX^T = 0$ so $\text{rank}(XX^T) = 0$; if $X \ne 0$, then $x_j \ne 0$ for some $j$, so $x_jX^T \ne 0$ and $\text{rank} (XX^T) \ge 1$. But then all the non-zero rows lie in the $1$-dimensional subspace $\text{span} (X^T)$ and the dimansion of the row-space must be at most $1$; thus $\text{rank}(XX^T) = 1$. If $n \ge 2$, $XX^T$ is singular, but obviously, a priori, $A$ need not be. So we can't in general find $X$ with $A = XX^T$.
In light of the above, one might ask if any $A$ with $\text{rank}(A) = 1$ is given by $XX^T$ for some column vector $X$. I don't believe this is the case, since $\text{rank}(A) = 1$ implies that $A$ may be written
$A = \begin{bmatrix} a_1V \\ a_2V \\ \vdots \\ a_nV \end{bmatrix}, \tag{3}$
for some row vector $V \ne 0$ and set of scalars $\{a_1, a_2, \ldots, a_n \}$; but for non-zero $V$ we may always choose $\{a_1, a_2, \ldots, a_n\}$ so that $A$ is not symmetric, as any matrix of the form $XX^T$ must be.
I think these results hold over any field $\Bbb F$, not only over $\Bbb R$.
Just to clarify: as I read the question, we are given any $n \times n$ real matrix $A$ and asked if $A = XX^T$ for some column vector $X$.
Hope this helps. Cheers,
and as always,
Fiat Lux!!!
Not all matrices $A$ arise way. As tetori points out, all matrices of the form $XX^T$ for some vector $X \in \mathbb{R}$ are symmetric, they all have rank (at most) one, and the diagonal entries are all nonnegative.
These properties actually characterize such matrices, however, and we can show this by describing how we can recover $X$ from such $A$---in fact we can only do this up to sign, as $XX^T = (-X)(-X)^T$.
First, the $(a, a)$ entry of a matrix $XX^T$ is $x_a^2$, so for each $a$, $x_i \in \{\pm \sqrt{A_{aa}}\}$. If we fix a choice of sign for $x_1$, then the sign of the remaining entries $x_a$ is determined by the sign of $x_1$ and the signs of $A_{a, b} = x_a x_b$, $a \neq b$.
Edit As Marc points out, there's a faster way to recover $X$. Any column of $A$ is a multiple of $X$. If there is some nonzero column $A^k$ (so that, in particular, $A_{kk} > 0$) we can recover $X$ by $$X := \pm \frac{1}{\sqrt{A_{aa}}} A^a.$$ Of course, if $A = 0$, then $X = 0$ is the only solution