2 votos

Resolver el cuaternión de rotación que gira $x$ en $y$ .

Dados dos cuaterniones $x$ y $y$ con $|x|=|y|$ siendo su parte real cero (es decir, siendo vectores) y sabiendo que $y$ resultado de una rotación de $x$ por cuaternión unitario $q$ es decir $$ y = q x q^{-1}, $$ ¿es posible resolver para $q$ en términos de $x$ y $y$ .

He probado varios tipos de multiplicación por la izquierda y por la derecha con $q$ s, pero la resolución de ecuaciones no conmutativas es bastante desconocida y no puedo conseguir el $q$ separado de ambos, $x$ y $y$ .

0 votos

Piensa en la situación análoga en $\mathbb R^3$ ¿existe una rotación única que mapee un vector $x$ en otro vector $y$ con la misma norma?

0 votos

¿Quieres decir que tengo que añadir que $|x|=|y|$ para conseguir que esto funcione en absoluto. Muy bien.

0 votos

Mi punto principal es que hay un número infinito de rotaciones que mapean $x$ en $y$ .

2voto

amd Puntos 2503

Hay un número infinito de rotaciones que mapean un vector $\vec x$ en otro vector $\vec y$ con la misma norma, una para cada vector que se encuentra en la bisectriz del ángulo de $\vec x$ y $\vec y$ . Si los restringimos al plano definido por $\vec x$ y $\vec y$ es decir, a un eje perpendicular a ambos vectores, entonces en la mayoría de los casos sólo hay dos posibilidades, y siempre podemos elegir la que tiene un ángulo de rotación en el intervalo $[0,\pi]$ .

Es conveniente para lo siguiente representar los cuaterniones como pares ordenados $(r,\vec v)$ de un número real $r$ y el vector $\vec v$ . El producto de dos cuaterniones es entonces $$(r_1,\vec v_1)(r_2,\vec v_2) = (r_1r_2-\vec v_1\cdot\vec v_2,r_1\vec v_2+r_2\vec v_1+\vec v_1\times\vec v_2).\tag 1$$ Como probablemente sepa, la rotación del vector $\vec v$ a través de un ángulo de $\theta$ alrededor del eje dado por el vector unitario $\vec u$ se puede conseguir conjugando el cuaternión puro $\mathbf v = (0,\vec v)$ por $$\mathbf q = \left(\cos{\frac\theta2},\vec u\sin{\frac\theta2}\right).\tag 2$$ Ahora, para un par de cuaterniones puros, el producto (1) se reduce a $$(0,\vec x)(0,\vec y) = (-\vec x\cdot\vec y,\vec x\times\vec y) = \|\vec x\|\|\vec y\|(-\cos\theta,\vec u\sin\theta),$$ donde $\theta$ es el ángulo entre $\vec x$ y $\vec y$ y $\vec u = {\vec x\times\vec y\over\|\vec x\|\|\vec y\|}$ es el vector unitario en la dirección de $\vec x\times\vec y$ . Comparando esto con (2), podemos ver que construyendo un cuaternión de rotación apropiado $\mathbf q$ de $\vec x$ y $\vec y$ se reduce a construir un par de vectores en el plano de $\vec x$ y $\vec y$ tal que el ángulo entre ellos es $\theta/2$ . Tomando $\vec x$ o $\vec y$ y su bisectriz del ángulo $\vec x+\vec y$ hará el truco, resultando en $$\mathbf q = -\left(0,{\vec x+\vec y \over \|\vec x+\vec y\|}\right)\left(0,{\vec x \over \|\vec x\|}\right).$$ Tenga en cuenta que este método falla cuando $\vec x=-\vec y$ . En este caso, $\mathbf q=(0,\vec u)$ , donde $\vec u$ es cualquier vector unitario ortogonal a $\vec x$ .

0 votos

Muchas gracias por los detalles. Si no estoy metiendo la pata, resulta que: si $\vec s= \vec x+ \vec y$ y para cualquier vector $\vec v$ decimos $\vec{v}_e = \vec v/\|\vec v\|$ entonces $q$ sería simplemente $q=(\vec x_e\cdot \vec s_e, \vec x_e \times \vec s_e)$ . Muy bien.

0 votos

@Harald Me parece correcto. Debería haber dado yo mismo ese paso extra en el cálculo. Es aún más fácil de recordar.

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