Dejemos que A⊂M3×3(R) sea el espacio de 3×3 matrices simétricas reales. Es un tramo de tres matrices
Lx=[00000−1010],Ly=[001000−100],Lz=[0−10100000] Para cada A∈A podemos ampliar A como xLx+yLy+zLz y asociado un vector →A∈R3 y un cuaternión ˜A∈H a ella.
A=xLx+yLy+zLz↔→A=(x,y,z)↔˜A=xi+yj+zk
Dejemos que Au={A∈A:|→A|=1} . Dada cualquier matriz de rotación M∈SO(3) podemos encontrar un θ∈[0,π] y L∈Au tal que
M=eθL=I3+sinθL+(1−cosθ)L2
El θ es el ángulo de rotación asociado a M y →L será un vector unitario en la dirección del eje de rotación.
Cuando θ≠0 ni π podemos extraer L tomando la parte antisimétrica de M y luego "normalizar" el vector correspondiente porque
sinθL=12(M−MT)
Para fijar el valor de θ podemos utilizar la relación Tr(M)=1+2cosθ .
Una vez θ y L es conocida, el cuaternión correspondiente a la matriz de rotación M viene dada por
eθ2˜L=cosθ2+sinθ2˜L=√1+Tr(M)2[1+~M−MT1+Tr(M)]