Dismiss Notice
Join Physics Forums Today!
The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

Decompose matrix into outer product of vectors

  1. Sep 17, 2012 #1
    Hi. I'm wondering if anyone can point me to any information on techniques to decompose a matrix (actually a 3D matrix) into an outer product of vectors. Particularly, given [tex]M_{i,j,k}[/tex], I want to find vectors [tex]a_{i}[/tex], [tex]b_{i}[/tex] and [tex]c_{i}[/tex] such that

    [tex]
    M_{i,j,k} = a_{i}b_{i}c_{i}
    [/tex]
    where the multiplication on the right is an outer product.

    I've read that this is only possible if the matrix M has a rank of one, but I can find anything on how to actually decompose the matrix, only that it CAN BE done. Also, if M has rank one, does that mean that there is a "unique" decomposition? What if the rank is something other than one? In that case would it be possible to find a family of solutions?

    Thanks for any help.
     
  2. jcsd
  3. Sep 17, 2012 #2
    Edit: strike all this, you meant a different outer product. Lemme think on this a bit more.
     
    Last edited: Sep 17, 2012
  4. Sep 17, 2012 #3
    Consider the matrix [tex]a_ib_j[/tex]. This matrix is rank 1 since only one row and one column of this matrix is independently determined. The others rows(columns) bear constant ratios to this one row(column). Now if you take the ratio of successive elements in each row, it is easy to calculate [tex]a_1/a_2,b_2/b_3\ldots[/tex] etc.

    Now write these ratios in terms of say [tex]a_1[/tex] and [tex]b_1[/tex]. We name the ratios with the letter [tex]k[/tex], e.g., [tex]a_2=k^a_2a_1[/tex] (superscript does not denote exponent). Once you substitute all the [tex]k^a[/tex]s and the [tex]k^b[/tex]s, you get a matrix where [tex]a_1b_1[/tex] can be factored out and its value is known.

    At this point, we cannot determine [tex]a_1[/tex] and [tex]b_1[/tex] individually. You can select [tex]a_1=p[/tex] and [tex]b_1=a_1b_1/p[/tex] and the resulting vector pairs will all work.

    With a little extra work, this approach can be extended to higher order matrices.
     
  5. Sep 17, 2012 #4
    That's great Bavid! Is there ANYTHING that can be done if the matrix is not of rank 1? Or is it the case that no such decomposition exists, even up to undetermined coefficients, if the rank is anything other than 1?
     
  6. Sep 17, 2012 #5
    It appears to me that rank 1 is necessary but not sufficient for a matrix to be represented as a_ib_j. For example, rank one matrices may have rows differing by a constant, as in (row_i)=m*(row_j)+c which could be rank 1 but not decomposable to a_ib_j.

    Vector outer product ALWAYS produces a rank 1 matrix, at least among 3*3 matrices..think about it, there are 6 independent components in the constituent vectors but 9 components in the resulting matrix. So there is a well-defined interdependence of the matrix components. You cannot hope for any random matrix to be expressed as an outer product.
     
  7. Sep 17, 2012 #6
    That's great. Thanks.
     
  8. Sep 17, 2012 #7

    Stephen Tashi

    User Avatar
    Science Advisor

    One way to look at the Singular Value Decomposition (SVD) of a matrix is that it tells you how to express the matrix as a linear combination of outer products of vectors. Thus it may suggest away to approximate a matrix by using only some of the outer products in the linear combination.

    I don't know what the SVD tells us about 3D arrays. We'd have to think about that.
     
Know someone interested in this topic? Share this thread via Reddit, Google+, Twitter, or Facebook




Similar Discussions: Decompose matrix into outer product of vectors
Loading...