2 votos

Encontrar todas las rotaciones que envían un vector a otro

En un comentario sobre una respuesta que di en Rotación de un vector 3d a otro , @victorvalbert pregunta "¿Qué hay de encontrar todas las matrices de rotación que giran un punto a otro?"

Quería dar una respuesta, así que la he puesto aquí para poder responder a mi propia pregunta, teniendo un poco más de espacio para hacerlo.

2voto

John Hughes Puntos 27780

$$ \newcommand{\bn}{\mathbf n} \newcommand{\bu}{\mathbf u} \newcommand{\bv}{\mathbf v} \newcommand{\bR}{\mathbf R} \newcommand{\bM}{\mathbf M} \newcommand{\bA}{\mathbf A} \newcommand{\bK}{\mathbf K} \newcommand{\bD}{\mathbf D} $$

Primer paso: las rotaciones conservan la distancia, por lo que si $P$ y $Q$ son puntos cuyas distancias al origen no son iguales, entonces no hay ninguna matriz de rotación que lleve uno a otro. Así que vamos a restringir a los pares de puntos del mismo radio. Al reducir la escala por este radio, también podríamos suponer que el radio es $1$ . Así que en realidad estamos preguntando "Dados los puntos de la esfera unitaria, ¿cuáles son todas las matrices de rotación que llevan uno a otro?" Voy a sustituir el punto $P$ en la esfera por el vector $v$ desde el origen hasta $P$ Sólo para ser pedante, la pregunta es ahora

"Dado un par de vectores unitarios $\bu$ y $\bv$ encontrar todas las matrices de rotación $\bM$ tal que $\bM\bu = \bv$ ."

Consideremos primero un caso sencillo: ¿cuáles son todas las matrices que giran $\bn = \pmatrix {0\\0\\1}$ a sí mismo? Eso es bastante fácil (geométricamente): son rotaciones en el $xy$ -es decir, cada uno de ellos tiene la forma $$ \bR_t = \pmatrix{\cos t & -\sin t & 0 \\ \sin t & \cos t & 0 \\ 0 & 0 & 1} $$ para algunos $0 \le t < 2\pi$ .

Mantén ese pensamiento.

Ahora veamos el caso general. De la respuesta a la pregunta relacionada, hay una matriz $\bM$ tal que $\bM\bu = \bn$ , donde $\bn$ es el vector del "polo norte", como en el caso anterior. Podemos calcular $\bv' = \bM\bv$ y si podemos encontrar una matriz $\bA$ tal que $$ \bA\bn = \bv' $$ entonces tenemos $$ \bA(\bM\bu) = \bM \bv, $$ para que $$ \bM^{-1} \bA\bM\bu = \bv, $$ es decir, cada matriz de rotación que envía $\bu$ a $\bv$ es en realidad el conjugado de una matriz que envía $\bn$ a $\bv'$ (y viceversa, lo cual es igualmente fácil de demostrar). Ahora vamos a encontrar otra rotación (de nuevo, utilizando la respuesta a la pregunta original) $\bK$ enviando $\bn$ a $\bv$ es decir $$ \bK \bn = \bv. $$ Entonces podemos crear una rotación a partir de $\bu$ a $\bv$ como sigue: rotar $\bu$ al polo norte $\bn$ ; girar el polo norte hacia sí mismo por alguna rotación $\bR$ ; entonces girar el polo norte a $\bv$ es decir, podemos construir al menos una de las rotaciones deseadas generando $$ \bD = \bK\bR\bM $$ Pero al mover las cosas en esta ecuación, obtenemos que $$ \bK^{-1}\bD\bM^{-1} = \bR. $$ De hecho, si $\bD$ es cualquier toma de rotación $\bu$ a $\bv$ entonces $\bK^{-1}\bD\bM^{-1}$ debe ser una rotación que tome $\bn$ a $\bn$ es decir, debe ser $\bR_t$ para algunos $t$ . Así que las matrices de rotación que estamos buscando son exactamente $$ \bD_t = \bK\bR_t\bM $$ donde $0 \le t < 2\pi$ . En otras palabras: el conjunto de matrices de rotación en $SO(3)$ que envían $\bu$ a $\bv$ es siempre (topológicamente) un círculo en $SO(3)$ .

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X