0

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 06 '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 06 '19 at 11:43
  • see also: https://math.stackexchange.com/questions/326008/is-it-possible-to-decompose-a-matrix-as-the-product-of-two-vectors – Wouter Jul 06 '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 06 '19 at 11:57
  • @Henry Of course. – cangrejo Jul 06 '19 at 12:24

1 Answers1

0

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

Wouter
  • 7,673
  • It does not even work for $N=2$ if $\mathbf A$ has a non-zero determinant – Henry Jul 06 '19 at 11:52
  • Thanks for the answer. I thought this might be the case, but I'm an engineer, not a mathematician, so I wanted to check with someone who might know more – George Hulme Jul 06 '19 at 12:45