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$

  • $\begingroup$ If your matrix has rank one, the singular value decomposition gives you exactly that. $\endgroup$ – cangrejo Jul 6 '19 at 11:41
  • $\begingroup$ 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$ $\endgroup$ – Henry Jul 6 '19 at 11:43
  • $\begingroup$ see also: math.stackexchange.com/questions/326008/… $\endgroup$ – Wouter Jul 6 '19 at 11:47
  • $\begingroup$ @broncoAbierto and since $\mathbf{bx}$ has rank $1$ or $0$, a matrix $\mathbf{A}$ with higher rank cannot be decomposed this way $\endgroup$ – Henry Jul 6 '19 at 11:57
  • $\begingroup$ @Henry Of course. $\endgroup$ – 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

| cite | improve this answer | |
  • $\begingroup$ It does not even work for $N=2$ if $\mathbf A$ has a non-zero determinant $\endgroup$ – Henry Jul 6 '19 at 11:52
  • $\begingroup$ 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 $\endgroup$ – George Hulme Jul 6 '19 at 12:45

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.