# Solving vv^T = M

by daviddoria
Tags: solving
 P: 97 I have a known matrix M and an unknown vector outer product: ie v is 3x1 unknown and M is 3x3 known. Clearly there are 9 equations (each entry in vv^T must equal the corresponding entry in M) - but how do you solve this without manually writing those equations? Thanks, Dave
Emeritus
PF Gold
P: 16,091
 Quote by daviddoria I have a known matrix M and an unknown vector outer product: ie v is 3x1 unknown and M is 3x3 known. Clearly there are 9 equations (each entry in vv^T must equal the corresponding entry in M) - but how do you solve this without manually writing those equations? Thanks, Dave
Sheesh, it's only 9 of them! It won't take long -- and if you do so and then try to solve them, a shorter method should present itself.

You can always try the 2x2 case first, if you want to start smaller....
 P: 97 The idea of not just writing it out and looking for a pattern is that even if I see one, should the same problem arise in the 200x1 vector case I am clearly not going to write it out then - I know there are some fancy operators (ie Kroneker product) that do stuff like this and I was hoping someone would have a nice explanation in a "one sentence" kind of math statement instead of writing a big loop or something like I would do. Dave
 Math Emeritus Sci Advisor Thanks PF Gold P: 39,569 Solving vv^T = M There are two problems with solving vvT= M: 1) The mapping is not one-to-one. Different v may give the same M. 2) The mapping is not onto. Since vvT is necessarily symmetric, for most M there is NO v such that vvT= M.
 P: 97 HallsofIvy: you are exactly right. However, in this case I am looking for multiple solutions and I know that M is such that these solutions exist. This is a problem in computer vision - namely 3d reconstruction from two images. It is known that there are 4 solutions to vv^T = M in this case, so you are supposed to get the 4 solutions and then decide which one is physically realizable. Dave
Emeritus
PF Gold
P: 16,091
 Quote by daviddoria The idea of not just writing it out and looking for a pattern is that even if I see one, should the same problem arise in the 200x1 vector case I am clearly not going to write it out then
... because you already know a pattern, having discovered it by studying the 3x1 case.

(or even having discovered it from just writing out a few of the equations in the 200x1 case)
 P: 97 Ok so I see the pattern... v_i ^2 on the diagonal and v_ij in the off diagonal entries. Now the problem remains - how do you solve this using matrix techniques (ie in Matlab)? It is now non-linear so I guess there is no chance of doing this (ie. Linear algebra)? Dave
Emeritus