01
Finite rotations, 2D case
Consider a vector v 0 \htmlClass{fea-math-bold-italic}{\boldsymbol v}_0 v 0 , having length v v v , and rotate it by an angle φ \varphi φ about the z z z -axis (the axis perpendicular to the plane). This gives the vector v \htmlClass{fea-math-bold-italic}{\boldsymbol v} v .
Figure 1. Finite rotation in the plane.
We can write successively:
v 0 = { v c o s α v s i n α } \htmlClass{fea-math-bold-italic}{\boldsymbol v}_0=\begin{Bmatrix}v\mathop{\mathit{cos}}\alpha\\v\mathop{\mathit{sin}}\alpha\end{Bmatrix} v 0 = { v cos α v sin α }
v = { v c o s ( α + φ ) v s i n ( α + φ ) } = { v ( c o s α c o s φ − s i n α s i n φ ) v ( c o s α s i n φ + s i n α c o s φ ) } = [ c o s φ − s i n φ s i n φ c o s φ ] ⏟ R { v c o s α v s i n α } ⏟ v 0 . \begin{aligned}\htmlClass{fea-math-bold-italic}{\boldsymbol v}&=\begin{Bmatrix}v\mathop{\mathit{cos}}(\alpha+\varphi)\\v\mathop{\mathit{sin}}(\alpha+\varphi)\end{Bmatrix}\\&=\begin{Bmatrix}v(\mathop{\mathit{cos}}\alpha\mathop{\mathit{cos}}\varphi-\mathop{\mathit{sin}}\alpha\mathop{\mathit{sin}}\varphi)\\v(\mathop{\mathit{cos}}\alpha\mathop{\mathit{sin}}\varphi+\mathop{\mathit{sin}}\alpha\mathop{\mathit{cos}}\varphi)\end{Bmatrix}\\&=\underbrace{\begin{bmatrix}\mathop{\mathit{cos}}\varphi&-\mathop{\mathit{sin}}\varphi\\\mathop{\mathit{sin}}\varphi&\mathop{\mathit{cos}}\varphi\end{bmatrix}}_{\htmlClass{fea-math-bold-italic}{\boldsymbol R}}\underbrace{\begin{Bmatrix}v\mathop{\mathit{cos}}\alpha\\v\mathop{\mathit{sin}}\alpha\end{Bmatrix}}_{\htmlClass{fea-math-bold-italic}{\boldsymbol v}_0}.\end{aligned} v = { v cos ( α + φ ) v sin ( α + φ ) } = { v ( cos α cos φ − sin α sin φ ) v ( cos α sin φ + sin α cos φ ) } = R [ cos φ sin φ − sin φ cos φ ] v 0 { v cos α v sin α } .
And finally:
v = R v 0 , R = [ c o s φ − s i n φ s i n φ c o s φ ] . \htmlClass{fea-math-bold-italic}{\boldsymbol v}=\htmlClass{fea-math-bold-italic}{\boldsymbol R}\htmlClass{fea-math-bold-italic}{\boldsymbol v}_0,\qquad\htmlClass{fea-math-bold-italic}{\boldsymbol R}=\begin{bmatrix}\mathop{\mathit{cos}}\varphi&-\mathop{\mathit{sin}}\varphi\\\mathop{\mathit{sin}}\varphi&\mathop{\mathit{cos}}\varphi\end{bmatrix}. v = R v 0 , R = [ cos φ sin φ − sin φ cos φ ] .
If the angle φ \varphi φ is very small, we can write, considering that c o s φ ≈ 1 \mathop{\mathit{cos}}\varphi\approx1 cos φ ≈ 1 and s i n φ ≈ φ \mathop{\mathit{sin}}\varphi\approx\varphi sin φ ≈ φ :
R ≈ [ 1 − φ φ 1 ] . \htmlClass{fea-math-bold-italic}{\boldsymbol R}\approx\begin{bmatrix}1&-\varphi\\\varphi&1\end{bmatrix}. R ≈ [ 1 φ − φ 1 ] .
02
Infinitesimal rotations
A rotation is represented by a magnitude, the angle of rotation, and a direction, the axis of rotation. Let’s consider the magnitude φ \varphi φ and the axis defined by the unit vector n \htmlClass{fea-math-bold-italic}{\boldsymbol n} n .
For an infinitesimal rotation, the rotation can be represented by a vector:
φ = φ n , o r φ = { φ x φ y φ z } . \htmlClass{fea-math-bold-italic}{\boldsymbol{\varphi}}=\varphi\htmlClass{fea-math-bold-italic}{\boldsymbol n},\qquad\mathit{or}\qquad\htmlClass{fea-math-bold-italic}{\boldsymbol{\varphi}}=\begin{Bmatrix}\varphi_x\\\varphi_y\\\varphi_z\end{Bmatrix}. φ = φ n , or φ = ⎩ ⎨ ⎧ φ x φ y φ z ⎭ ⎬ ⎫ .
And:
φ = ∥ φ ∥ = φ x 2 + φ y 2 + φ z 2 . \varphi=\lVert\htmlClass{fea-math-bold-italic}{\boldsymbol{\varphi}}\rVert=\sqrt{\varphi_x^2+\varphi_y^2+\varphi_z^2}. φ = ∥ φ ∥ = φ x 2 + φ y 2 + φ z 2 .
The components of rotation, φ x \varphi_x φ x , φ y \varphi_y φ y , φ z \varphi_z φ z , are very small and are treated as infinitesimal values. The corresponding rotation matrix is:
R = R z R y R x = [ 1 − φ z 0 φ z 1 0 0 0 1 ] [ 1 0 φ y 0 1 0 − φ y 0 1 ] [ 1 0 0 0 1 − φ x 0 φ x 1 ] ⟶ R = [ 1 − φ z φ y φ z 1 − φ x − φ y φ x 1 ] . \begin{aligned}\htmlClass{fea-math-bold-italic}{\boldsymbol R}&=\htmlClass{fea-math-bold-italic}{\boldsymbol R}_z\htmlClass{fea-math-bold-italic}{\boldsymbol R}_y\htmlClass{fea-math-bold-italic}{\boldsymbol R}_x\\&=\begin{bmatrix}1&-\varphi_z&0\\\varphi_z&1&0\\0&0&1\end{bmatrix}\begin{bmatrix}1&0&\varphi_y\\0&1&0\\-\varphi_y&0&1\end{bmatrix}\begin{bmatrix}1&0&0\\0&1&-\varphi_x\\0&\varphi_x&1\end{bmatrix}\\&\longrightarrow\quad\htmlClass{fea-math-bold-italic}{\boldsymbol R}=\begin{bmatrix}1&-\varphi_z&\varphi_y\\\varphi_z&1&-\varphi_x\\-\varphi_y&\varphi_x&1\end{bmatrix}.\end{aligned} R = R z R y R x = 1 φ z 0 − φ z 1 0 0 0 1 1 0 − φ y 0 1 0 φ y 0 1 1 0 0 0 1 φ x 0 − φ x 1 ⟶ R = 1 φ z − φ y − φ z 1 φ x φ y − φ x 1 .
The terms of the second and third degrees were neglected, and it was assumed that:
s i n φ ≃ φ , c o s φ ≃ 1. \mathop{\mathit{sin}}\varphi\simeq\varphi,\qquad\mathop{\mathit{cos}}\varphi\simeq1. sin φ ≃ φ , cos φ ≃ 1.
In fact, the rotation φ \htmlClass{fea-math-bold-italic}{\boldsymbol{\varphi}} φ is the resultant of three rotations, the vector sum of three vectors:
φ = { φ x φ y φ z } = { φ x 0 0 } + { 0 φ y 0 } + { 0 0 φ z } . \htmlClass{fea-math-bold-italic}{\boldsymbol{\varphi}}=\begin{Bmatrix}\varphi_x\\\varphi_y\\\varphi_z\end{Bmatrix}=\begin{Bmatrix}\varphi_x\\0\\0\end{Bmatrix}+\begin{Bmatrix}0\\\varphi_y\\0\end{Bmatrix}+\begin{Bmatrix}0\\0\\\varphi_z\end{Bmatrix}. φ = ⎩ ⎨ ⎧ φ x φ y φ z ⎭ ⎬ ⎫ = ⎩ ⎨ ⎧ φ x 0 0 ⎭ ⎬ ⎫ + ⎩ ⎨ ⎧ 0 φ y 0 ⎭ ⎬ ⎫ + ⎩ ⎨ ⎧ 0 0 φ z ⎭ ⎬ ⎫ .
Composition of small (infinitesimal) rotations is commutative!
03
Finite rotations
Let’s find the rotation matrix R \htmlClass{fea-math-bold-italic}{\boldsymbol R} R if the rotation angle is finite. In this case, finite rotations do not follow the parallelogram law of vector addition. Moreover, the composition of rotations is non-commutative.
The problem: consider a vector v 0 \htmlClass{fea-math-bold-italic}{\boldsymbol v}_0 v 0 and rotate it by an angle φ \varphi φ around the axis having the direction of the unit vector n \htmlClass{fea-math-bold-italic}{\boldsymbol n} n ; the new position of the vector is v \htmlClass{fea-math-bold-italic}{\boldsymbol v} v . We have to find the matrix R \htmlClass{fea-math-bold-italic}{\boldsymbol R} R , [1] , [2] , [3] , [4] :
v = R ( φ ) v 0 . \htmlClass{fea-math-bold-italic}{\boldsymbol v}=\htmlClass{fea-math-bold-italic}{\boldsymbol R}(\varphi)\htmlClass{fea-math-bold-italic}{\boldsymbol v}_0. v = R ( φ ) v 0 .
This is called an active rotation : the vector is rotated while the reference frame remains fixed.
Figure 2. Rotation about the axis n \htmlClass{fea-math-bold-italic}{\boldsymbol n} n and the corresponding circular motion.
Vector sum:
v = v 0 + Δ v . \htmlClass{fea-math-bold-italic}{\boldsymbol v}=\htmlClass{fea-math-bold-italic}{\boldsymbol v}_0+\mathit{\Delta}\htmlClass{fea-math-bold-italic}{\boldsymbol v}. v = v 0 + Δ v .
Δ v = P D ‾ + D Q ‾ ⟶ v = v 0 + P D ‾ + D Q ‾ . \mathit{\Delta}\htmlClass{fea-math-bold-italic}{\boldsymbol v}=\overline{PD}+\overline{DQ}\quad\longrightarrow\quad\htmlClass{fea-math-bold-italic}{\boldsymbol v}=\htmlClass{fea-math-bold-italic}{\boldsymbol v}_0+\overline{PD}+\overline{DQ}. Δ v = P D + D Q ⟶ v = v 0 + P D + D Q .
Vector D Q ‾ \overline{DQ} D Q has the direction of the cross product n × v 0 \htmlClass{fea-math-bold-italic}{\boldsymbol n}\times\htmlClass{fea-math-bold-italic}{\boldsymbol v}_0 n × v 0 because D Q ‾ \overline{DQ} D Q is perpendicular to the plane ( n , v 0 ) (\htmlClass{fea-math-bold-italic}{\boldsymbol n},\htmlClass{fea-math-bold-italic}{\boldsymbol v}_0) ( n , v 0 ) .
The modulus of n × v 0 \htmlClass{fea-math-bold-italic}{\boldsymbol n}\times\htmlClass{fea-math-bold-italic}{\boldsymbol v}_0 n × v 0 is:
∥ n × v 0 ∥ = ∥ v ∥ s i n α ⟶ ∥ n × v 0 ∥ = a . \lVert\htmlClass{fea-math-bold-italic}{\boldsymbol n}\times\htmlClass{fea-math-bold-italic}{\boldsymbol v}_0\rVert=\lVert\htmlClass{fea-math-bold-italic}{\boldsymbol v}\rVert\mathop{\mathit{sin}}\alpha\quad\longrightarrow\quad\lVert\htmlClass{fea-math-bold-italic}{\boldsymbol n}\times\htmlClass{fea-math-bold-italic}{\boldsymbol v}_0\rVert=a. ∥ n × v 0 ∥ = ∥ v ∥ sin α ⟶ ∥ n × v 0 ∥ = a .
As:
D Q = a s i n φ , DQ=a\mathop{\mathit{sin}}\varphi, D Q = a sin φ ,
we get:
D Q ‾ = ( n × v 0 ) s i n φ . \overline{DQ}=(\htmlClass{fea-math-bold-italic}{\boldsymbol n}\times\htmlClass{fea-math-bold-italic}{\boldsymbol v}_0)\mathop{\mathit{sin}}\varphi. D Q = ( n × v 0 ) sin φ .
Vector P D ‾ \overline{PD} P D . The modulus:
P D = a − a c o s φ = 2 a s i n 2 φ 2 . PD=a-a\mathop{\mathit{cos}}\varphi=2a\mathop{\mathit{sin}}^2\frac{\varphi}{2}. P D = a − a cos φ = 2 a sin 2 2 φ .
Obviously, n \htmlClass{fea-math-bold-italic}{\boldsymbol n} n is perpendicular to n × v 0 \htmlClass{fea-math-bold-italic}{\boldsymbol n}\times\htmlClass{fea-math-bold-italic}{\boldsymbol v}_0 n × v 0 , and thus n × ( n × v 0 ) \htmlClass{fea-math-bold-italic}{\boldsymbol n}\times(\htmlClass{fea-math-bold-italic}{\boldsymbol n}\times\htmlClass{fea-math-bold-italic}{\boldsymbol v}_0) n × ( n × v 0 ) has the direction of vector P D ‾ \overline{PD} P D . But:
∥ n × ( n × v 0 ) ∥ = ∥ n × v 0 ∥ = a , \lVert\htmlClass{fea-math-bold-italic}{\boldsymbol n}\times(\htmlClass{fea-math-bold-italic}{\boldsymbol n}\times\htmlClass{fea-math-bold-italic}{\boldsymbol v}_0)\rVert=\lVert\htmlClass{fea-math-bold-italic}{\boldsymbol n}\times\htmlClass{fea-math-bold-italic}{\boldsymbol v}_0\rVert=a, ∥ n × ( n × v 0 )∥ = ∥ n × v 0 ∥ = a ,
therefore:
P D ‾ = 2 ( n × ( n × v 0 ) ) s i n 2 φ 2 . \overline{PD}=2\bigl(\htmlClass{fea-math-bold-italic}{\boldsymbol n}\times(\htmlClass{fea-math-bold-italic}{\boldsymbol n}\times\htmlClass{fea-math-bold-italic}{\boldsymbol v}_0)\bigr)\mathop{\mathit{sin}}^2\frac{\varphi}{2}. P D = 2 ( n × ( n × v 0 ) ) sin 2 2 φ .
The relation between v \htmlClass{fea-math-bold-italic}{\boldsymbol v} v and v 0 \htmlClass{fea-math-bold-italic}{\boldsymbol v}_0 v 0 :
v = v 0 + ( n × v 0 ) s i n φ + 2 ( n × ( n × v 0 ) ) s i n 2 φ 2 , \htmlClass{fea-math-bold-italic}{\boldsymbol v}=\htmlClass{fea-math-bold-italic}{\boldsymbol v}_0+(\htmlClass{fea-math-bold-italic}{\boldsymbol n}\times\htmlClass{fea-math-bold-italic}{\boldsymbol v}_0)\mathop{\mathit{sin}}\varphi+2\bigl(\htmlClass{fea-math-bold-italic}{\boldsymbol n}\times(\htmlClass{fea-math-bold-italic}{\boldsymbol n}\times\htmlClass{fea-math-bold-italic}{\boldsymbol v}_0)\bigr)\mathop{\mathit{sin}}^2\frac{\varphi}{2}, v = v 0 + ( n × v 0 ) sin φ + 2 ( n × ( n × v 0 ) ) sin 2 2 φ ,
or:
v = v 0 + ( n × v 0 ) s i n φ + ( n × ( n × v 0 ) ) ( 1 − c o s φ ) . (*) \htmlClass{fea-math-bold-italic}{\boldsymbol v}=\htmlClass{fea-math-bold-italic}{\boldsymbol v}_0+(\htmlClass{fea-math-bold-italic}{\boldsymbol n}\times\htmlClass{fea-math-bold-italic}{\boldsymbol v}_0)\mathop{\mathit{sin}}\varphi+\bigl(\htmlClass{fea-math-bold-italic}{\boldsymbol n}\times(\htmlClass{fea-math-bold-italic}{\boldsymbol n}\times\htmlClass{fea-math-bold-italic}{\boldsymbol v}_0)\bigr)(1-\mathop{\mathit{cos}}\varphi).\tag{*} v = v 0 + ( n × v 0 ) sin φ + ( n × ( n × v 0 ) ) ( 1 − cos φ ) . ( * )
To convert this equation into matrix form, we introduce the notations:
n = { n x n y n z } , n x 2 + n y 2 + n z 2 = 1. \htmlClass{fea-math-bold-italic}{\boldsymbol n}=\begin{Bmatrix}n_x\\n_y\\n_z\end{Bmatrix},\qquad n_x^2+n_y^2+n_z^2=1. n = ⎩ ⎨ ⎧ n x n y n z ⎭ ⎬ ⎫ , n x 2 + n y 2 + n z 2 = 1.
n × v 0 ⟶ [ 0 − n z n y n z 0 − n x − n y n x 0 ] { v 0 x v 0 y v 0 z } . \htmlClass{fea-math-bold-italic}{\boldsymbol n}\times\htmlClass{fea-math-bold-italic}{\boldsymbol v}_0\ \longrightarrow\ \begin{bmatrix}0&-n_z&n_y\\n_z&0&-n_x\\-n_y&n_x&0\end{bmatrix}\begin{Bmatrix}v_{0x}\\v_{0y}\\v_{0z}\end{Bmatrix}. n × v 0 ⟶ 0 n z − n y − n z 0 n x n y − n x 0 ⎩ ⎨ ⎧ v 0 x v 0 y v 0 z ⎭ ⎬ ⎫ .
Or:
n × v 0 ⟶ n ~ v 0 , \htmlClass{fea-math-bold-italic}{\boldsymbol n}\times\htmlClass{fea-math-bold-italic}{\boldsymbol v}_0\ \longrightarrow\ \widetilde{\htmlClass{fea-math-bold-italic}{\boldsymbol n}}\htmlClass{fea-math-bold-italic}{\boldsymbol v}_0, n × v 0 ⟶ n v 0 ,
with:
n ~ = [ 0 − n z n y n z 0 − n x − n y n x 0 ] . \widetilde{\htmlClass{fea-math-bold-italic}{\boldsymbol n}}=\begin{bmatrix}0&-n_z&n_y\\n_z&0&-n_x\\-n_y&n_x&0\end{bmatrix}. n = 0 n z − n y − n z 0 n x n y − n x 0 .
n × ( n × v 0 ) ⟶ n ~ 2 v 0 , \htmlClass{fea-math-bold-italic}{\boldsymbol n}\times(\htmlClass{fea-math-bold-italic}{\boldsymbol n}\times\htmlClass{fea-math-bold-italic}{\boldsymbol v}_0)\ \longrightarrow\ \widetilde{\htmlClass{fea-math-bold-italic}{\boldsymbol n}}^{\,2}\htmlClass{fea-math-bold-italic}{\boldsymbol v}_0, n × ( n × v 0 ) ⟶ n 2 v 0 ,
where:
n ~ 2 = n ~ n ~ = [ − ( n y 2 + n z 2 ) n x n y n z n x n x n y − ( n z 2 + n x 2 ) n y n z n z n x n y n z − ( n x 2 + n y 2 ) ] . \widetilde{\htmlClass{fea-math-bold-italic}{\boldsymbol n}}^{\,2}=\widetilde{\htmlClass{fea-math-bold-italic}{\boldsymbol n}}\widetilde{\htmlClass{fea-math-bold-italic}{\boldsymbol n}}=\begin{bmatrix}-(n_y^2+n_z^2)&n_xn_y&n_zn_x\\n_xn_y&-(n_z^2+n_x^2)&n_yn_z\\n_zn_x&n_yn_z&-(n_x^2+n_y^2)\end{bmatrix}. n 2 = n n = − ( n y 2 + n z 2 ) n x n y n z n x n x n y − ( n z 2 + n x 2 ) n y n z n z n x n y n z − ( n x 2 + n y 2 ) .
This gives:
v = ( E + s i n φ n ~ + ( 1 − c o s φ ) n ~ 2 ) v 0 ⟶ v = R v 0 . \htmlClass{fea-math-bold-italic}{\boldsymbol v}=\bigl(\htmlClass{fea-math-bold-italic}{\boldsymbol E}+\mathop{\mathit{sin}}\varphi\,\widetilde{\htmlClass{fea-math-bold-italic}{\boldsymbol n}}+(1-\mathop{\mathit{cos}}\varphi)\widetilde{\htmlClass{fea-math-bold-italic}{\boldsymbol n}}^{\,2}\bigr)\htmlClass{fea-math-bold-italic}{\boldsymbol v}_0\quad\longrightarrow\quad\htmlClass{fea-math-bold-italic}{\boldsymbol v}=\htmlClass{fea-math-bold-italic}{\boldsymbol R}\htmlClass{fea-math-bold-italic}{\boldsymbol v}_0. v = ( E + sin φ n + ( 1 − cos φ ) n 2 ) v 0 ⟶ v = R v 0 .
E \htmlClass{fea-math-bold-italic}{\boldsymbol E} E is the unit matrix. That is, equation (*) becomes:
R = E + s i n φ n ~ + ( 1 − c o s φ ) n ~ 2 . (**) \htmlClass{fea-math-bold-italic}{\boldsymbol R}=\htmlClass{fea-math-bold-italic}{\boldsymbol E}+\mathop{\mathit{sin}}\varphi\,\widetilde{\htmlClass{fea-math-bold-italic}{\boldsymbol n}}+(1-\mathop{\mathit{cos}}\varphi)\widetilde{\htmlClass{fea-math-bold-italic}{\boldsymbol n}}^{\,2}.\tag{**} R = E + sin φ n + ( 1 − cos φ ) n 2 . ( ** )
Finally:
R = [ c o s φ + n x 2 ( 1 − c o s φ ) n x n y ( 1 − c o s φ ) − n z s i n φ n z n x ( 1 − c o s φ ) + n y s i n φ n x n y ( 1 − c o s φ ) + n z s i n φ c o s φ + n y 2 ( 1 − c o s φ ) n y n z ( 1 − c o s φ ) − n x s i n φ n z n x ( 1 − c o s φ ) − n y s i n φ n y n z ( 1 − c o s φ ) + n x s i n φ c o s φ + n z 2 ( 1 − c o s φ ) ] . \htmlClass{fea-math-bold-italic}{\boldsymbol R}=\begin{bmatrix}\mathop{\mathit{cos}}\varphi+n_x^2(1-\mathop{\mathit{cos}}\varphi)&n_xn_y(1-\mathop{\mathit{cos}}\varphi)-n_z\mathop{\mathit{sin}}\varphi&n_zn_x(1-\mathop{\mathit{cos}}\varphi)+n_y\mathop{\mathit{sin}}\varphi\\n_xn_y(1-\mathop{\mathit{cos}}\varphi)+n_z\mathop{\mathit{sin}}\varphi&\mathop{\mathit{cos}}\varphi+n_y^2(1-\mathop{\mathit{cos}}\varphi)&n_yn_z(1-\mathop{\mathit{cos}}\varphi)-n_x\mathop{\mathit{sin}}\varphi\\n_zn_x(1-\mathop{\mathit{cos}}\varphi)-n_y\mathop{\mathit{sin}}\varphi&n_yn_z(1-\mathop{\mathit{cos}}\varphi)+n_x\mathop{\mathit{sin}}\varphi&\mathop{\mathit{cos}}\varphi+n_z^2(1-\mathop{\mathit{cos}}\varphi)\end{bmatrix}. R = cos φ + n x 2 ( 1 − cos φ ) n x n y ( 1 − cos φ ) + n z sin φ n z n x ( 1 − cos φ ) − n y sin φ n x n y ( 1 − cos φ ) − n z sin φ cos φ + n y 2 ( 1 − cos φ ) n y n z ( 1 − cos φ ) + n x sin φ n z n x ( 1 − cos φ ) + n y sin φ n y n z ( 1 − cos φ ) − n x sin φ cos φ + n z 2 ( 1 − cos φ ) .
04
Another form of the rotation matrix
Now we introduce this vector:
ρ = φ n = { φ x φ y φ z } , \htmlClass{fea-math-bold-italic}{\boldsymbol{\rho}}=\varphi\htmlClass{fea-math-bold-italic}{\boldsymbol n}=\begin{Bmatrix}\varphi_x\\\varphi_y\\\varphi_z\end{Bmatrix}, ρ = φ n = ⎩ ⎨ ⎧ φ x φ y φ z ⎭ ⎬ ⎫ ,
and:
φ = φ x 2 + φ y 2 + φ z 2 . \varphi=\sqrt{\varphi_x^2+\varphi_y^2+\varphi_z^2}. φ = φ x 2 + φ y 2 + φ z 2 .
ρ \htmlClass{fea-math-bold-italic}{\boldsymbol{\rho}} ρ may be called a rotation vector or axis-angle vector. However, finite rotations do not compose by ordinary vector addition. Relation (**) between v \htmlClass{fea-math-bold-italic}{\boldsymbol v} v and v 0 \htmlClass{fea-math-bold-italic}{\boldsymbol v}_0 v 0 becomes:
v = ( E + s i n φ φ ρ ~ + 1 − c o s φ φ 2 ρ ~ 2 ) v 0 . \htmlClass{fea-math-bold-italic}{\boldsymbol v}=\left(\htmlClass{fea-math-bold-italic}{\boldsymbol E}+\frac{\mathop{\mathit{sin}}\varphi}{\varphi}\widetilde{\htmlClass{fea-math-bold-italic}{\boldsymbol{\rho}}}+\frac{1-\mathop{\mathit{cos}}\varphi}{\varphi^2}\widetilde{\htmlClass{fea-math-bold-italic}{\boldsymbol{\rho}}}^{\,2}\right)\htmlClass{fea-math-bold-italic}{\boldsymbol v}_0. v = ( E + φ sin φ ρ + φ 2 1 − cos φ ρ 2 ) v 0 .
And finally:
R = E + s i n φ φ [ 0 − φ z φ y φ z 0 − φ x − φ y φ x 0 ] + 1 − c o s φ φ 2 [ − ( φ y 2 + φ z 2 ) φ x φ y φ z φ x φ x φ y − ( φ z 2 + φ x 2 ) φ y φ z φ z φ x φ y φ z − ( φ x 2 + φ y 2 ) ] . \begin{aligned}\htmlClass{fea-math-bold-italic}{\boldsymbol R}={}&\htmlClass{fea-math-bold-italic}{\boldsymbol E}+\frac{\mathop{\mathit{sin}}\varphi}{\varphi}\begin{bmatrix}0&-\varphi_z&\varphi_y\\\varphi_z&0&-\varphi_x\\-\varphi_y&\varphi_x&0\end{bmatrix}\\&+\frac{1-\mathop{\mathit{cos}}\varphi}{\varphi^2}\begin{bmatrix}-(\varphi_y^2+\varphi_z^2)&\varphi_x\varphi_y&\varphi_z\varphi_x\\\varphi_x\varphi_y&-(\varphi_z^2+\varphi_x^2)&\varphi_y\varphi_z\\\varphi_z\varphi_x&\varphi_y\varphi_z&-(\varphi_x^2+\varphi_y^2)\end{bmatrix}.\end{aligned} R = E + φ sin φ 0 φ z − φ y − φ z 0 φ x φ y − φ x 0 + φ 2 1 − cos φ − ( φ y 2 + φ z 2 ) φ x φ y φ z φ x φ x φ y − ( φ z 2 + φ x 2 ) φ y φ z φ z φ x φ y φ z − ( φ x 2 + φ y 2 ) .
Or:
R = E + s i n φ [ 0 − n z n y n z 0 − n x − n y n x 0 ] + ( 1 − c o s φ ) [ − ( n y 2 + n z 2 ) n x n y n z n x n x n y − ( n z 2 + n x 2 ) n y n z n z n x n y n z − ( n x 2 + n y 2 ) ] . \begin{aligned}\htmlClass{fea-math-bold-italic}{\boldsymbol R}={}&\htmlClass{fea-math-bold-italic}{\boldsymbol E}+\mathop{\mathit{sin}}\varphi\begin{bmatrix}0&-n_z&n_y\\n_z&0&-n_x\\-n_y&n_x&0\end{bmatrix}\\&+(1-\mathop{\mathit{cos}}\varphi)\begin{bmatrix}-(n_y^2+n_z^2)&n_xn_y&n_zn_x\\n_xn_y&-(n_z^2+n_x^2)&n_yn_z\\n_zn_x&n_yn_z&-(n_x^2+n_y^2)\end{bmatrix}.\end{aligned} R = E + sin φ 0 n z − n y − n z 0 n x n y − n x 0 + ( 1 − cos φ ) − ( n y 2 + n z 2 ) n x n y n z n x n x n y − ( n z 2 + n x 2 ) n y n z n z n x n y n z − ( n x 2 + n y 2 ) .
05
Small rotation angles
If the angle of rotation φ \varphi φ is very small:
s i n φ φ ≈ 1. \frac{\mathop{\mathit{sin}}\varphi}{\varphi}\approx1. φ sin φ ≈ 1.
Neglecting second-degree terms:
R = [ 1 − φ z φ y φ z 1 − φ x − φ y φ x 1 ] . \htmlClass{fea-math-bold-italic}{\boldsymbol R}=\begin{bmatrix}1&-\varphi_z&\varphi_y\\\varphi_z&1&-\varphi_x\\-\varphi_y&\varphi_x&1\end{bmatrix}. R = 1 φ z − φ y − φ z 1 φ x φ y − φ x 1 .
If the rotation angle is small and second-order terms are retained, the rotation angles are assumed to be small, but not infinitesimal; therefore, the second-order terms cannot be neglected. Since the rotation matrix contains quadratic terms in the rotation components, the resulting problem is geometrically nonlinear.
s i n φ φ ≈ 1 , 1 − c o s φ φ 2 ≈ 1 2 . \frac{\mathop{\mathit{sin}}\varphi}{\varphi}\approx1,\qquad\frac{1-\mathop{\mathit{cos}}\varphi}{\varphi^2}\approx\frac12. φ sin φ ≈ 1 , φ 2 1 − cos φ ≈ 2 1 .
And:
R = [ 1 − 1 2 ( φ y 2 + φ z 2 ) − φ z + 1 2 φ x φ y φ y + 1 2 φ z φ x φ z + 1 2 φ x φ y 1 − 1 2 ( φ z 2 + φ x 2 ) − φ x + 1 2 φ y φ z − φ y + 1 2 φ z φ x φ x + 1 2 φ y φ z 1 − 1 2 ( φ x 2 + φ y 2 ) ] . \htmlClass{fea-math-bold-italic}{\boldsymbol R}=\begin{bmatrix}1-\frac12(\varphi_y^2+\varphi_z^2)&-\varphi_z+\frac12\varphi_x\varphi_y&\varphi_y+\frac12\varphi_z\varphi_x\\\varphi_z+\frac12\varphi_x\varphi_y&1-\frac12(\varphi_z^2+\varphi_x^2)&-\varphi_x+\frac12\varphi_y\varphi_z\\-\varphi_y+\frac12\varphi_z\varphi_x&\varphi_x+\frac12\varphi_y\varphi_z&1-\frac12(\varphi_x^2+\varphi_y^2)\end{bmatrix}. R = 1 − 2 1 ( φ y 2 + φ z 2 ) φ z + 2 1 φ x φ y − φ y + 2 1 φ z φ x − φ z + 2 1 φ x φ y 1 − 2 1 ( φ z 2 + φ x 2 ) φ x + 2 1 φ y φ z φ y + 2 1 φ z φ x − φ x + 2 1 φ y φ z 1 − 2 1 ( φ x 2 + φ y 2 ) .
06
Example
The 3D part in the figure below must be divided into finite elements. The part can be divided into 12 identical slices. Only one slice will be divided into finite elements, and then, by rotating, reflecting and copying this slice, the entire FE mesh will be obtained.
Figure 3. The 3D part and its finite element mesh.
Figure 4. One slice and the construction of the complete mesh by rotation and reflection.
One “slice” is depicted in the figure above, on the left. Nodal coordinates are known: x \htmlClass{fea-math-bold-italic}{\boldsymbol x} x is a matrix with n n n rows and 3 columns (for the three coordinates x , y , z x,y,z x , y , z ); n n n is the number of nodes. Coordinates x \htmlClass{fea-math-bold-italic}{\boldsymbol x} x are in the global coordinate frame.
Firstly, this slice is rotated around the axis computed using the normalized cross product:
n 1 = n 0 × n ∥ n 0 × n ∥ , \htmlClass{fea-math-bold-italic}{\boldsymbol n}_1=\frac{\htmlClass{fea-math-bold-italic}{\boldsymbol n}_0\times\htmlClass{fea-math-bold-italic}{\boldsymbol n}}{\lVert\htmlClass{fea-math-bold-italic}{\boldsymbol n}_0\times\htmlClass{fea-math-bold-italic}{\boldsymbol n}\rVert}, n 1 = ∥ n 0 × n ∥ n 0 × n ,
with the angle computed using a dot product:
φ = a r c c o s ( n 0 ⋅ n ) . \varphi=\mathop{\mathit{arccos}}(\htmlClass{fea-math-bold-italic}{\boldsymbol n}_0\cdot\htmlClass{fea-math-bold-italic}{\boldsymbol n}). φ = arccos ( n 0 ⋅ n ) .
This gives the rotation matrix R 1 \htmlClass{fea-math-bold-italic}{\boldsymbol R}_1 R 1 :
R 1 = E + s i n φ n ~ 1 + ( 1 − c o s φ ) n ~ 1 2 . \htmlClass{fea-math-bold-italic}{\boldsymbol R}_1=\htmlClass{fea-math-bold-italic}{\boldsymbol E}+\mathop{\mathit{sin}}\varphi\,\widetilde{\htmlClass{fea-math-bold-italic}{\boldsymbol n}}_1+(1-\mathop{\mathit{cos}}\varphi)\widetilde{\htmlClass{fea-math-bold-italic}{\boldsymbol n}}_1^{\,2}. R 1 = E + sin φ n 1 + ( 1 − cos φ ) n 1 2 .
The new coordinates are:
x n = x R 1 T + Δ x , \htmlClass{fea-math-bold-italic}{\boldsymbol x}_n=\htmlClass{fea-math-bold-italic}{\boldsymbol x}\htmlClass{fea-math-bold-italic}{\boldsymbol R}_1^T+\mathit{\Delta}\htmlClass{fea-math-bold-italic}{\boldsymbol x}, x n = x R 1 T + Δ x ,
where Δ x \mathit{\Delta}\htmlClass{fea-math-bold-italic}{\boldsymbol x} Δ x contains the translation components, applied to every row. For our example, the translation is [ 20 10 5 ] \begin{bmatrix}20&10&5\end{bmatrix} [ 20 10 5 ] .
The remaining slices are obtained with the rotation matrix:
R t = R 2 R 1 ⟶ x n = x R t T + Δ x , \htmlClass{fea-math-bold-italic}{\boldsymbol R}_t=\htmlClass{fea-math-bold-italic}{\boldsymbol R}_2\htmlClass{fea-math-bold-italic}{\boldsymbol R}_1\quad\longrightarrow\quad\htmlClass{fea-math-bold-italic}{\boldsymbol x}_n=\htmlClass{fea-math-bold-italic}{\boldsymbol x}\htmlClass{fea-math-bold-italic}{\boldsymbol R}_t^T+\mathit{\Delta}\htmlClass{fea-math-bold-italic}{\boldsymbol x}, R t = R 2 R 1 ⟶ x n = x R t T + Δ x ,
where R 2 \htmlClass{fea-math-bold-italic}{\boldsymbol R}_2 R 2 is a rotation around the axis defined by the unit vector n \htmlClass{fea-math-bold-italic}{\boldsymbol n} n (see the figure above):
R 2 = E + s i n φ 0 n ~ + ( 1 − c o s φ 0 ) n ~ 2 . \htmlClass{fea-math-bold-italic}{\boldsymbol R}_2=\htmlClass{fea-math-bold-italic}{\boldsymbol E}+\mathop{\mathit{sin}}\varphi_0\,\widetilde{\htmlClass{fea-math-bold-italic}{\boldsymbol n}}+(1-\mathop{\mathit{cos}}\varphi_0)\widetilde{\htmlClass{fea-math-bold-italic}{\boldsymbol n}}^{\,2}. R 2 = E + sin φ 0 n + ( 1 − cos φ 0 ) n 2 .
Angle φ 0 \varphi_0 φ 0 is a multiple of π / 3 \pi/3 π /3 . The 12 slices are obtained at six angular positions spaced by π / 3 \pi/3 π /3 , with a reflected and a non-reflected slice at each position. For slices 2, 4, 6, 8, 10 and 12, we need to apply a reflection to obtain the circular holes, with each slice having only a “half-hole”. So the transformation matrix becomes:
R t = R 2 R 1 R a ⟶ x n = x R t T + Δ x , \htmlClass{fea-math-bold-italic}{\boldsymbol R}_t=\htmlClass{fea-math-bold-italic}{\boldsymbol R}_2\htmlClass{fea-math-bold-italic}{\boldsymbol R}_1\htmlClass{fea-math-bold-italic}{\boldsymbol R}_a\quad\longrightarrow\quad\htmlClass{fea-math-bold-italic}{\boldsymbol x}_n=\htmlClass{fea-math-bold-italic}{\boldsymbol x}\htmlClass{fea-math-bold-italic}{\boldsymbol R}_t^T+\mathit{\Delta}\htmlClass{fea-math-bold-italic}{\boldsymbol x}, R t = R 2 R 1 R a ⟶ x n = x R t T + Δ x ,
where:
R a = [ 1 0 0 0 1 0 0 0 − 1 ] . \htmlClass{fea-math-bold-italic}{\boldsymbol R}_a=\begin{bmatrix}1&0&0\\0&1&0\\0&0&-1\end{bmatrix}. R a = 1 0 0 0 1 0 0 0 − 1 .
In fact, the matrix R a \htmlClass{fea-math-bold-italic}{\boldsymbol R}_a R a allows us to build the symmetric slice with respect to the local x y xy x y -plane (reflection).
Figure 5. Interactive 3D view of the example. Drag to rotate; switch Zoom ON to use wheel or pinch zoom. Reset view restores the initial camera position.
A simple MATLAB program is available for download below.
MATLAB Finite rotations in three dimensions Four MATLAB files and README Download ZIP ↓
07
References
Rotation Formula, Wolfram MathWorld. Finite rotations, Math Wiki. Carlos Felippa, NFEM, Nonlinear Finite Element Methods (ASEN 5107) , Appendix R. Enrico C. Da Lozzo, Geometrically exact three-dimensional beam theory: modeling and FEM implementation for statics and dynamics analysis , Istituto Universitario di Studi Superiori di Pavia, Master’s Degree in Earthquake Engineering, 2010.
PREVIOUS CHAPTER ← 20. Buckling, plane stress state NEXT SECTION 21.2. Tait-Bryan angles →