[math-fun] qAq*=A', qBq*=B' quaternion problem
I've been fascinated by this problem, because what should be a relatively simply problem is remarkably difficult to prove symbolically. Given 3D vectors A, A', B, B', q is a quaternion such that qAq*=A' and qBq*=B', where q* is the conjugate of q, and |A|=|A'|, |B|=|B'|. It is simpler to deal with non-unit quaternions, so the constraints on q are qA=A'q and qB=B'q. The answer is remarkably elegant: q = (B'-B)A + A'(B'-B) = dB A + A' dB -q = (A'-A)B + B'(A'-A) = dA B + B' dA (Juxtaposition here means quaternion multiplication.) *** Believe it or not, these two expressions represent the _same_ quaternion(!), because rigid rotations preserve dot products, and so A'.B'=A.B. *** Proof: Here are the same expressions in terms of dot and cross products: q = -(A'+A).dB + dAxdB = dA.(B'+B) + dAxdB QED Given q = dB A + A' dB, it is now easy to prove that qA=A'q: qA = (dB A + A' dB)A = dB A^2 + A' dB A = A^2 dB + A' dB A (A^2 is scalar) = A'^2 dB + A' dB A (|A'|=|A|) = A'(A' dB + dB A) = A'(dB A + A' dB) = A'q Similarly, since q = - dA B - B' dA, qB = (- dA B - B' dA)B = - dA B^2 - B' dA B = - B'^2 dA - B' dA B = B'(- B' dA - dA B) = B'(- dA B - B' dA) = B'q Now the next problem is trying to come up with a general method for solving the simultaneous equations qA=A'q, qB=B'q, which would lead to these types of solutions: q = (B'-B)A + A'(B'-B) = dB A + A' dB -q = (A'-A)B + B'(A'-A) = dA B + B' dA I wrote a quaternion and vector expression simplifier in Maxima to be able to manipulate these various expressions, but it is still missing an automatic solution procedure for simultaneous quaternion equations of this sort.
participants (1)
-
Henry Baker