Derivation of equivalent angle-axis rotation matrix

Multiply elementary rotation matrices

rk = rZ[α] . rY[β] . rZ[θ] . rY[-β] . rZ[-α] ; rk // Nice

(                             2                                                        ...                                                            cos (β) + cos(θ) sin (β)

Substitute angles in terms of Overscript[k,^]

substitutionRules = {Cos[α] ->kx/Sqrt[kx^2 + ky^2], <br />    &nbs ... ;  Cos[β] ->kz, Sin[β] ->Sqrt[kx^2 + ky^2]} ; substitutionRules // Nice

(                            kx        )           cos(α)  ------ ... kz                                          2     2           sin(β)  Sqrt[kx  + ky ]

rk2 = rk /. substitutionRules ; rk2 // Nice

(            2     2           kx kz cos(θ)   ky sin(θ)           ky cos(	 ...                                                                      kz  + (kx  + ky ) cos(θ)

Simplify, for cryin' out loud!

rk3 = Simplify[rk2] ; rk3 // Nice

(   4     2   2     2               2     2                                     2      ... ky kz - ky cos(θ) kz + kx sin(θ)                           kz  + (kx  + ky ) cos(θ)

Fine tune...

subRule2 = kz^2 -> (1 - kx^2 - ky^2) ; subRule3 = (kx^2 + ky^2) -> (1 - kz^2) ; rk4 = rk ... b33 = rk3[[3, 3]] /. subRule3 // Simplify ; rk4 = ReplacePart[rk4, rksub33, {3, 3}] ; rk4 // Nice

(                2     2                                                               ... ky sin(θ)   ky kz - ky cos(θ) kz + kx sin(θ)   -cos(θ) kz  + kz  + cos(θ)


Created by Mathematica  (September 7, 2003)