From ab8cc85adde879fb963c94d15675783f2cf4b183 Mon Sep 17 00:00:00 2001 From: dos-reis Date: Tue, 14 Aug 2007 05:14:52 +0000 Subject: Initial population. --- src/input/kuipers.input.pamphlet | 518 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 518 insertions(+) create mode 100644 src/input/kuipers.input.pamphlet (limited to 'src/input/kuipers.input.pamphlet') diff --git a/src/input/kuipers.input.pamphlet b/src/input/kuipers.input.pamphlet new file mode 100644 index 00000000..b9a5847f --- /dev/null +++ b/src/input/kuipers.input.pamphlet @@ -0,0 +1,518 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{Quaternions and Rotation Sequences} +\author{Timothy Daly} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{Rotations in 3-space} +Orthogonal groups are used in Quantum Field Theory. Conway highlights +4 kinds of orthogonal groups. First is the General Orthogonal group +$GO_n$ which is the set of all isometries of n-dimensional Euclidean +space $R^n$ that fix the origin. This would imply rotations and +reflections but not translations. + +The determinant of any element in $GO_n$ is $+1$ or $-1$. Reflections +have a determinant of $-1$. The elements of determinant $+1$ +(rotations) form a subgroup of index 2, the Special Orthogonal group +$SO_n$. The product of any two reflections forms a rotation so +grouping reflections in pairs generates $SO_n$. + +Conway also defines two groups derived from $GO_n$ and $SO_n$. From +$GO_n$ we get the Projective General Orthogonal group. From $SO_n$ we +get the Projective Special Orthogonal group. Annoyingly, he's +introduced these groups without explaining them. And based their +definition on an undefined $\alpha$. + +It is a consequence of the existence of complex numbers that $SO_2$ +and $PSO_2$ are commutative; of the existence of quaternions that +$PSO_4$ is equivalent to $PSO_3 \times PSO_3$; and of the existence of +octonions that $PSO_8$>= +R1:=matrix([[cos a, sin a, 0],[-sin a, cos a, 0],[0, 0, 1]]) + +@ + +\begin{verbatim} + + cos(a) sin(a) 0+ + | | + (1) |- sin(a) cos(a) 0| + | | + + 0 0 1+ + + Type: Matrix Expression Integer +\end{verbatim} + +Next we define a rotation around the Y axis by a rotation angle of $b$. + +<>= +R2:=matrix([[cos b, 0, -sin b],[0, 1, 0],[sin b, 0, cos b]]) + +@ + +\begin{verbatim} + +cos(b) 0 - sin(b)+ + | | + (2) | 0 1 0 | + | | + +sin(b) 0 cos(b) + + + Type: Matrix Expression Integer +\end{verbatim} + +Then we compose them (order is important) to form the single rotation +equivalent to first rotating around $X$, then around the new, +displaced $Y$. + +<>= +R:=R2*R1 + +@ + +\begin{verbatim} + +cos(a)cos(b) cos(b)sin(a) - sin(b)+ + | | + (3) | - sin(a) cos(a) 0 | + | | + +cos(a)sin(b) sin(a)sin(b) cos(b) + + + Type: Matrix Expression Integer +\end{verbatim} + +To find the axis of this single rotation we define the vector $V$ + +<>= +V:=matrix([[x1],[y1],[z1]]) +@ + +\begin{verbatim} + +x1+ + | | + (4) |y1| + | | + +z1+ + + Type: Matrix Polynomial Integer +\end{verbatim} + +And this is the equation we need to solve. Since we rotate around the +vector $V$ it is unchanged when operated on by the rotation $R$, or in +equation form we get + +<>= +E:=R*V=V + +@ + +\begin{verbatim} + +- z1 sin(b) + y1 cos(b)sin(a) + x1 cos(a)cos(b)+ +x1+ + | | | | + (5) | - x1 sin(a) + y1 cos(a) |= |y1| + | | | | + + (y1 sin(a) + x1 cos(a))sin(b) + z1 cos(b) + +z1+ + + Type: Equation Matrix Expression Integer +\end{verbatim} + +We can subtract the right hand side from the left hand side thus + +<>= +F:=lhs(E)-rhs(E) + +@ + +\begin{verbatim} + +- z1 sin(b) + y1 cos(b)sin(a) + x1 cos(a)cos(b) - x1+ + | | + (6) | - x1 sin(a) + y1 cos(a) - y1 | + | | + + (y1 sin(a) + x1 cos(a))sin(b) + z1 cos(b) - z1 + + + Type: Matrix Expression Integer +\end{verbatim} + +and form the equation setting the result to zero. This has two solutions. +The trivial solution is when $V$ is zero. +We solve for the nontrivial solution. + +<>= +G:=F=matrix([[0],[0],[0]]) + +@ + +\begin{verbatim} + +- z1 sin(b) + y1 cos(b)sin(a) + x1 cos(a)cos(b) - x1+ +0+ + | | | | + (7) | - x1 sin(a) + y1 cos(a) - y1 |= |0| + | | | | + + (y1 sin(a) + x1 cos(a))sin(b) + z1 cos(b) - z1 + +0+ + + Type: Equation Matrix Expression Integer +\end{verbatim} + + +If we pick out the second equation + +<>= +H:=elt(F,2,1) + +@ + +\begin{verbatim} + (8) - x1 sin(a) + y1 cos(a) - y1 + + Type: Expression Integer +\end{verbatim} + +and let x1 = k + +<>= +x1:=k + +@ + +\begin{verbatim} + (9) k + + Type: Variable k +\end{verbatim} + +and substitute this into the second equation + +<>= +J:=subst(H,'x1=k) + +@ + +\begin{verbatim} + (10) - k sin(a) + y1 cos(a) - y1 + + Type: Expression Integer +\end{verbatim} + +we can solve this equation for y1. + +<>= +L:=solve(J,y1) + +@ + +\begin{verbatim} + k sin(a) + (11) [y1= ----------] + cos(a) - 1 + + Type: List Equation Expression Integer +\end{verbatim} + +and we can assign the solution to the variable y1 + +<>= +y1:=rhs(first(solve(J,y1))) + +@ + +\begin{verbatim} + k sin(a) + (12) ---------- + cos(a) - 1 + + Type: Expression Integer +\end{verbatim} + +Now we turn our attention to the third equation + +<>= +H1:=elt(F,3,1) + +@ + +\begin{verbatim} + (13) (y1 sin(a) + x1 cos(a))sin(b) + z1 cos(b) - z1 + + Type: Expression Integer +\end{verbatim} + +and substitute the known values for x1 and y1 + +<>= +J1:=subst(H1,['x1=x1, 'y1=y1]) + +@ + +\begin{verbatim} + (14) + 2 2 + (k sin(a) + k cos(a) - k cos(a))sin(b) + (z1 cos(a) - z1)cos(b) + + + - z1 cos(a) + z1 + / + cos(a) - 1 + + Type: Expression Integer +\end{verbatim} + +and then solve for z1, assigning it to the variable z1 + + +<>= +z1:=simplify(rhs(first(solve(J1,z1)))) + +@ + +\begin{verbatim} + k sin(b) + (15) ---------- + cos(b) - 1 + + Type: Expression Integer +\end{verbatim} + +So the axis of rotation is + +<>= +[x1,y1,z1] + +@ + +\begin{verbatim} + k sin(a) k sin(b) + (16) [k,----------,----------] + cos(a) - 1 cos(b) - 1 + + Type: List Expression Integer +\end{verbatim} + +We can choose a specific value of $k = -1$ so that $y1$ becomes + +<>= +y1:=eval(y1,[k=-1]) + +@ + +\begin{verbatim} + sin(a) + (17) - ---------- + cos(a) - 1 + + Type: Expression Integer +\end{verbatim} + +and $z1$ becomes + +<>= +z1:=eval(z1,[k=-1]) + +@ + +\begin{verbatim} + sin(b) + (18) - ---------- + cos(b) - 1 + + Type: Expression Integer +\end{verbatim} + +So the axis of rotation is + +<>= +[x1,y1,z1] + +@ + +\begin{verbatim} + sin(a) sin(b) + (19) [k,- ----------,- ----------] + cos(a) - 1 cos(b) - 1 + + Type: List Expression Integer +\end{verbatim} + +We need the trace of the matrix which is only defined for square matrices. +So we create a new version of the R matrix as a square matrix $RSQ$ + +<>= +RSQ:SQMATRIX(3,EXPR(INT)):=R + +@ + +\begin{verbatim} + +cos(a)cos(b) cos(b)sin(a) - sin(b)+ + | | + (20) | - sin(a) cos(a) 0 | + | | + +cos(a)sin(b) sin(a)sin(b) cos(b) + + + Type: SquareMatrix(3,Expression Integer) +\end{verbatim} + +Now we compute the trace + +<>= +TR:=trace(RSQ) + +@ + +\begin{verbatim} + (21) (cos(a) + 1)cos(b) + cos(a) + + Type: Expression Integer +\end{verbatim} + +and we can obtain the angle of rotation by equating the trace to 1-2*cos(c) + +<>= +TREQ:=TR=1+2*cos(c) + +@ + +\begin{verbatim} + (22) (cos(a) + 1)cos(b) + cos(a)= 2cos(c) + 1 + + Type: Equation Expression Integer +\end{verbatim} + +which we can solve for c + +<>= +c:=rhs(first(solve(TREQ,c))) + +@ + +\begin{verbatim} + (cos(a) + 1)cos(b) + cos(a) - 1 + (23) acos(-------------------------------) + 2 + + Type: Expression Integer +\end{verbatim} + +assuming $k=-1$, heading $a=\pi/6$, and elevation $b=\pi/3$ we can +compute numeric values for the axis of rotation thus. First a numeric +$x1$ + +<>= +x1v:=eval(x1,k=-1) + +@ + +\begin{verbatim} + (24) - 1 + + Type: Polynomial Integer +\end{verbatim} + +then a numeric y1 + +<>= +y1v:=numeric(eval(y1,[a=%pi/6])) + +@ + +\begin{verbatim} + (25) 3.7320508075 688772936 + + Type: Float +\end{verbatim} + +then a numeric z1 + +<>= +z1v:=numeric(eval(z1,[k=-1,b=%pi/3])) + +@ + +\begin{verbatim} + (26) 1.7320508075 688772935 + + Type: Float +\end{verbatim} + +giving us the vector for the axis of rotation + +<>= +[x1v, y1v, z1v] + +@ + +\begin{verbatim} + (27) [- 1.0,3.7320508075 688772936,1.7320508075 688772935] + + Type: List Polynomial Float +\end{verbatim} + +with a rotation angle (in radians) given by + +<>= +c1v:=numeric(eval(c,[a=%pi/6,b=%pi/3])) + +@ + +\begin{verbatim} + (28) 1.1598041770 494147762 + + Type: Float +\end{verbatim} + +in degrees this is + +<>= +c1v*180/%pi + +@ + +\begin{verbatim} + (29) 66.4518844065 75160021 + + Type: Float +\end{verbatim} + +We can evaluate the combined rotation matrix under our assumed values + +<>= +rv:=eval(R,[a=%pi/6,b=%pi/3]) + +@ + +\begin{verbatim} + + +-+ +-++ + |\|3 1 \|3 | + |---- - - ----| + | 4 4 2 | + | | + | +-+ | + (30) | 1 \|3 | + |- - ---- 0 | + | 2 2 | + | | + | +-+ | + | 3 \|3 1 | + | - ---- - | + + 4 4 2 + + + Type: Matrix Expression Integer +\end{verbatim} +<<*>>= +<> +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} -- cgit v1.2.3