Re: [math-fun] Robert Smith's vector problem...
Smith's original question involved finding the unit quaternion q s.t. qAq*=A', qBq*=B', and |A|=|A'|=|B|=|B'|=1. The previous postings didn't fully explore the space of all quaternions which could rotate A->A'. The _smallest angle_ rotation is about the axis AxA', but these are not the only axes that rotate A->A'. Consider all q's s.t. qAq*=A'. But we can utilize any axis for q that lies in the plane bisecting the angle AOA', where O is the origin. Since |A|=|A'|, this bisecting plane is spanned by the vectors (A+A') and cross(A,A'). Indeed, calculations show us that for any real m,n, the quaternion q = m(A+A') + n(A.(A+A') + AxA') will rotate A->A'. Similarly, the quaternion q' = m'(B+B') + n'(B.(B+B') + BxB') rotates B->B'. Thus, we need to find the intersection of these two planes, one of which bisects AOA' and the other of which bisects BOB'; this will be our desired axis. The plane bisecting AOA' consists of all those vectors which are perpendicular to A'-A, while the lane bisecting BOB' consists of all those vectors which are perpendicular to B'-B. The only vectors perpendicular to both are multiples of (A'-A)x(B'-B), so this is the axis that we desire. Refer to the previous postings for the actual quaternion expressions for the desired quaternion. BTW, I finally broke down & wrote a quaternion expression simplifier for Maxima that enables me to check my results much more efficiently. I was surprised that no one else had apparently written such a simplifier, even though Maxima/Macsyma has been around for 40+ years.
participants (1)
-
Henry Baker