I have used the SVD to find the rotation matrix between two sets of points. I know that R = Transpose(U) * V
but I do not understand what U and V stand for and why this multiplication results in the rotation matrix.
As your question is theoretical and makes no reference to any programmes or a specific problem, you would be best off writing your question in MathOverflow.
Nevertheless, to give you a general idea, (which you should definitely reinforce with solid facts): The linear algebra behind the singular value decomposition (svd) essentially describes (in the simplest case) what happens to a vector, when it is multiplied by a matrix.
At a small scale, if you multiply a vector(v) by a matrix (R), you obtain a second vector (u). Unless the matrix 'R' is unitary, the new vector you get will have a different direction and magnitude to the first. In other words, the product of matrix 'R' on the vector 'v' will produce a Rotation and a Stretching (or Compressing) of vector 'v', which will transform into vector 'u'.
If you make vector 'u' be unitary, and multiply it by a new variable (σ) that holds its original magnitude, you are basically doing: R·v=u·σ
At a larger scale, when v and u are no longer vectors but big matrices, the formula is: R·V=U·∑
The reason why it was useful to make 'u' become unitary is that unitary matrices have a cool property: There transposed is equal to their inverse!
So, you can re-arrange the formula to look like: R=U·∑·V(transposed)
Hence, you can obtain the 'Rotation matrix' with this formula, where U and V(t) are orthonormal matrices that hold vector directions, and ∑ holds the magnitudes (or singular values) of said vector directions.
For a more detailed explanation, I suggest this lecture to you: Lecture: The Singular Value Decomposition (SVD)
© 2022 - 2024 — McMap. All rights reserved.