# Can we find the 1D vectors whose product is a previously specified matrix (in a practical timespan)?

Is it possible to find two (or more) 1 dimensional vectors that when multiplied produce an already specified matrix? If so, how would I go about doing/programming that?

For example:

Given a matrix, $$A$$, of size $$(N$$x$$N)$$, find the vectors, $$b~(N$$x$$1)$$ and $$x~(1$$x$$N)$$, such that $$A=b~$$x$$~x$$

• If your matrix has rank one, the singular value decomposition gives you exactly that. – cangrejo Jul 6 '19 at 11:41
• For a random matrix $\mathbf A$ there will usually not be such a decomposition, since $N^2 \gt 2N-1$ when $N\ge 2$. Even if there is, there will be others, for example multiplying $\mathbf b$ by a scalar $k$ and $\mathbf x$ by $\frac1k$ – Henry Jul 6 '19 at 11:43
• – Wouter Jul 6 '19 at 11:47
• @broncoAbierto and since $\mathbf{bx}$ has rank $1$ or $0$, a matrix $\mathbf{A}$ with higher rank cannot be decomposed this way – Henry Jul 6 '19 at 11:57
• @Henry Of course. – cangrejo Jul 6 '19 at 12:24

The problem does not have a solution in general, because you solve $$N^2$$ equations in $$2N$$ unknowns. The best approximation of a solution, which is the solution when it exists, is a low-rank approximation based on the singular value decomposition
• It does not even work for $N=2$ if $\mathbf A$ has a non-zero determinant – Henry Jul 6 '19 at 11:52