Solving vv^T = M: Solve Unknown Vector & Matrix Equation

  • Thread starter daviddoria
  • Start date
In summary: DaveWell, it's a quadratic equation, so it would be unlikely that it could be solved purely by solving linear systems. But MATLAB let's you take square roots, doesn't it? So all that's left is to work out what the signs are supposed to be. Incidentally, I think (but am not sure) there's another trick you can do to avoid having to do even that much work -- I think you can manage by just doing a couple divisions for each element of v.As an aside, I wouldn't be surprised if Matlab already has a built-in function that computes what you want (if it exists).In summary, you can solve vvT=M
  • #1
daviddoria
97
0
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
 
Physics news on Phys.org
  • #2
daviddoria said:
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...
 
  • #3
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
 
  • #4
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.
 
  • #5
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
 
  • #6
daviddoria said:
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)
 
  • #7
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
 
  • #8
daviddoria said:
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

Well, it's a quadratic equation, so it would be unlikely that it could be solved purely by solving linear systems. But MATLAB let's you take square roots, doesn't it? So all that's left is to work out what the signs are supposed to be. Incidentally, I think (but am not sure) there's another trick you can do to avoid having to do even that much work -- I think you can manage by just doing a couple divisions for each element of v.



As an aside, I wouldn't be surprised if Matlab already has a built-in function that computes what you want (if it exists).
 

What is the purpose of solving the equation vv^T = M?

The purpose of solving the equation vv^T = M is to find the unknown vector and matrix that satisfy the equation. This can help in various applications such as data analysis, signal processing, and linear algebra problems.

What are the steps involved in solving vv^T = M?

The steps involved in solving vv^T = M are as follows:

  1. Expand the equation to get a system of linear equations.
  2. Use the properties of vector and matrix multiplication to simplify the equations.
  3. Solve the resulting equations to find the unknown vector and matrix.
  4. Verify the solution by substituting the values into the original equation.

Can vv^T = M be solved for any vector and matrix?

Yes, vv^T = M can be solved for any vector v and matrix M, as long as the dimensions of the vector and matrix are compatible for multiplication. The solution may not always be unique, but it is possible to find a solution.

What are the applications of solving vv^T = M?

The applications of solving vv^T = M include:

  • Principal Component Analysis in data analysis.
  • Signal decomposition in signal processing.
  • Eigenvalue problems in linear algebra.

Can vv^T = M be solved using computational methods?

Yes, vv^T = M can be solved using computational methods such as Gaussian Elimination, LU decomposition, or matrix inversion. These methods can provide an efficient and accurate solution to the equation.

Similar threads

  • Linear and Abstract Algebra
Replies
2
Views
493
  • Linear and Abstract Algebra
Replies
1
Views
2K
Replies
4
Views
601
  • Linear and Abstract Algebra
Replies
7
Views
1K
  • Linear and Abstract Algebra
Replies
2
Views
1K
  • Linear and Abstract Algebra
Replies
2
Views
1K
Replies
2
Views
1K
  • General Math
Replies
11
Views
1K
  • Linear and Abstract Algebra
Replies
2
Views
1K
Replies
3
Views
2K
Back
Top