Формула поворота Родрига — формула , связывающая два вектора с общим началом, один из которых получен поворотом другого на известный угол вокруг оси, проходящей через их общее начало:
R
→ → -->
2
− − -->
tan
-->
(
χ χ -->
/
2
)
[
e
→ → -->
× × -->
R
→ → -->
2
]
=
R
→ → -->
1
+
tan
-->
(
χ χ -->
/
2
)
[
e
→ → -->
× × -->
R
→ → -->
1
]
{\displaystyle {\vec {R}}_{2}-\tan(\chi /2)[{\vec {e}}\times {\vec {R}}_{2}]={\vec {R}}_{1}+\tan(\chi /2)[{\vec {e}}\times {\vec {R}}_{1}]}
где
R
→ → -->
1
{\displaystyle {\vec {R}}_{1}}
— исходный вектор,
R
→ → -->
2
{\displaystyle {\vec {R}}_{2}}
— результирующий вектор,
e
→ → -->
{\displaystyle {\vec {e}}}
— единичный вектор оси поворота,
χ χ -->
{\displaystyle \chi }
— угол поворота. Также формула может быть записана в виде:
R
→ → -->
2
=
(
e
→ → -->
⋅ ⋅ -->
R
→ → -->
1
)
(
1
− − -->
cos
-->
χ χ -->
)
e
→ → -->
+
(
e
→ → -->
× × -->
R
→ → -->
1
)
sin
-->
χ χ -->
+
R
→ → -->
1
⋅ ⋅ -->
cos
-->
χ χ -->
{\displaystyle {\vec {R}}_{2}=({\vec {e}}\cdot {\vec {R}}_{1})(1-\cos \chi ){\vec {e}}+({\vec {e}}\times {\vec {R}}_{1})\sin \chi +{\vec {R}}_{1}\cdot \cos \chi }
Лежит в основе векторной теории конечных поворотов и сложения вращений .[источник не указан 844 дня ] Получена О. Родригом в 1840 г.[ 1]
Вывод
Без потери общности, направим ось
z
→ → -->
{\displaystyle {\vec {z}}}
вдоль единичного вектора
e
→ → -->
{\displaystyle {\vec {e}}}
, а вектор
R
→ → -->
1
{\displaystyle {\vec {R}}_{1}}
— лежащим в плоскости OXZ, тогда:
R
→ → -->
1
x
=
R
→ → -->
1
− − -->
R
→ → -->
1
z
{\displaystyle {\vec {R}}_{1x}={\vec {R}}_{1}-{\vec {R}}_{1z}}
R
→ → -->
1
y
=
0
{\displaystyle {\vec {R}}_{1y}=0}
R
→ → -->
1
z
=
(
e
→ → -->
⋅ ⋅ -->
R
→ → -->
1
)
e
→ → -->
{\displaystyle {\vec {R}}_{1z}=({\vec {e}}\cdot {\vec {R}}_{1}){\vec {e}}}
Откуда:
R
→ → -->
1
x
=
R
→ → -->
1
− − -->
(
e
→ → -->
⋅ ⋅ -->
R
→ → -->
1
)
e
→ → -->
{\displaystyle {\vec {R}}_{1x}={\vec {R}}_{1}-({\vec {e}}\cdot {\vec {R}}_{1}){\vec {e}}}
Положим вектор
w
→ → -->
{\displaystyle {\vec {w}}}
, равный:
w
→ → -->
=
e
→ → -->
× × -->
R
→ → -->
1
{\displaystyle {\vec {w}}={\vec {e}}\times {\vec {R}}_{1}}
Заметим, что:
|
w
→ → -->
|
=
|
e
→ → -->
× × -->
R
→ → -->
1
|
=
|
e
→ → -->
|
|
R
→ → -->
1
|
sin
-->
ϕ ϕ -->
=
|
R
→ → -->
1
|
sin
-->
ϕ ϕ -->
{\displaystyle |{\vec {w}}|=|{\vec {e}}\times {\vec {R}}_{1}|=|{\vec {e}}|\,|{\vec {R}}_{1}|\sin \phi \ =|{\vec {R}}_{1}|\sin \phi }
|
R
→ → -->
1
x
|
=
|
R
→ → -->
1
|
cos
-->
(
π π -->
/
2
− − -->
ϕ ϕ -->
)
=
|
R
→ → -->
1
|
sin
-->
ϕ ϕ -->
.
{\displaystyle |{\vec {R}}_{1x}|=|{\vec {R}}_{1}|\cos(\pi /2-\phi )=|{\vec {R}}_{1}|\sin \phi .}
Тогда вектор
R
→ → -->
2
x
{\displaystyle {\vec {R}}_{2x}}
можно выразить через векторы
w
→ → -->
{\displaystyle {\vec {w}}}
и
R
→ → -->
1
x
{\displaystyle {\vec {R}}_{1x}}
и угол
χ χ -->
{\displaystyle \chi }
:
R
→ → -->
2
x
=
R
→ → -->
1
x
cos
-->
χ χ -->
+
w
→ → -->
sin
-->
χ χ -->
=
(
R
→ → -->
1
− − -->
(
e
→ → -->
⋅ ⋅ -->
R
→ → -->
1
)
e
→ → -->
)
cos
-->
χ χ -->
+
(
e
→ → -->
× × -->
R
→ → -->
1
)
sin
-->
χ χ -->
{\displaystyle {\vec {R}}_{2x}={\vec {R}}_{1x}\cos \chi +{\vec {w}}\sin \chi =({\vec {R}}_{1}-({\vec {e}}\cdot {\vec {R}}_{1}){\vec {e}})\cos \chi +({\vec {e}}\times {\vec {R}}_{1})\sin \chi }
Результирующий вектор
R
→ → -->
2
{\displaystyle {\vec {R}}_{2}}
выражается через векторы
R
→ → -->
2
x
{\displaystyle {\vec {R}}_{2x}}
и
R
→ → -->
1
z
{\displaystyle {\vec {R}}_{1z}}
:
R
→ → -->
2
=
R
→ → -->
2
x
+
R
→ → -->
1
z
=
(
R
→ → -->
1
− − -->
(
e
→ → -->
⋅ ⋅ -->
R
→ → -->
1
)
e
→ → -->
)
cos
-->
χ χ -->
+
(
e
→ → -->
× × -->
R
→ → -->
1
)
sin
-->
χ χ -->
+
(
e
→ → -->
⋅ ⋅ -->
R
→ → -->
1
)
e
→ → -->
{\displaystyle {\vec {R}}_{2}={\vec {R}}_{2x}+{\vec {R}}_{1z}=({\vec {R}}_{1}-({\vec {e}}\cdot {\vec {R}}_{1}){\vec {e}})\cos \chi +({\vec {e}}\times {\vec {R}}_{1})\sin \chi +({\vec {e}}\cdot {\vec {R}}_{1}){\vec {e}}}
Приведя подобные, получим формулу поворота Родрига:
R
→ → -->
2
=
(
e
→ → -->
⋅ ⋅ -->
R
→ → -->
1
)
(
1
− − -->
cos
-->
χ χ -->
)
e
→ → -->
+
(
e
→ → -->
× × -->
R
→ → -->
1
)
sin
-->
χ χ -->
+
R
→ → -->
1
⋅ ⋅ -->
cos
-->
χ χ -->
{\displaystyle {\vec {R}}_{2}=({\vec {e}}\cdot {\vec {R}}_{1})(1-\cos \chi ){\vec {e}}+({\vec {e}}\times {\vec {R}}_{1})\sin \chi +{\vec {R}}_{1}\cdot \cos \chi }
В матричной форме
Векторное умножение на вектор k можно представить в виде умножения на матрицу K :
k
× × -->
v
=
[
(
k
× × -->
v
)
x
(
k
× × -->
v
)
y
(
k
× × -->
v
)
z
]
=
[
k
y
v
z
− − -->
k
z
v
y
k
z
v
x
− − -->
k
x
v
z
k
x
v
y
− − -->
k
y
v
x
]
=
[
0
− − -->
k
z
k
y
k
z
0
− − -->
k
x
− − -->
k
y
k
x
0
]
[
v
x
v
y
v
z
]
=
K
v
.
{\displaystyle \mathbf {k} \times \mathbf {v} ={\begin{bmatrix}(\mathbf {k} \times \mathbf {v} )_{x}\\(\mathbf {k} \times \mathbf {v} )_{y}\\(\mathbf {k} \times \mathbf {v} )_{z}\end{bmatrix}}={\begin{bmatrix}k_{y}v_{z}-k_{z}v_{y}\\k_{z}v_{x}-k_{x}v_{z}\\k_{x}v_{y}-k_{y}v_{x}\end{bmatrix}}={\begin{bmatrix}0&-k_{z}&k_{y}\\k_{z}&0&-k_{x}\\-k_{y}&k_{x}&0\end{bmatrix}}{\begin{bmatrix}v_{x}\\v_{y}\\v_{z}\end{bmatrix}}=\mathbf {K} \mathbf {v} \,.}
Вектор v при повороте вокруг единичного вектора k перейдет в вектор
v
r
o
t
=
v
+
(
sin
-->
θ θ -->
)
K
v
+
(
1
− − -->
cos
-->
θ θ -->
)
K
2
v
=
R
v
,
{\displaystyle \mathbf {v} _{\mathrm {rot} }=\mathbf {v} +(\sin \theta )\mathbf {K} \mathbf {v} +(1-\cos \theta )\mathbf {K} ^{2}\mathbf {v} =\mathbf {R} \mathbf {v} \,,}
где
K
(
K
v
)
=
K
2
v
=
k
× × -->
(
k
× × -->
v
)
.
{\displaystyle \mathbf {K} (\mathbf {K} \mathbf {v} )=\mathbf {K} ^{2}\mathbf {v} =\mathbf {k} \times (\mathbf {k} \times \mathbf {v} )\,.}
Таким образом получается, что матрица поворота вокруг единичного вектора k на угол
θ θ -->
{\displaystyle \theta }
R
=
I
+
(
sin
-->
θ θ -->
)
K
+
(
1
− − -->
cos
-->
θ θ -->
)
K
2
.
{\displaystyle \mathbf {R} =\mathbf {I} +(\sin \theta )\mathbf {K} +(1-\cos \theta )\mathbf {K} ^{2}~.}
где
K
=
[
0
− − -->
k
z
k
y
k
z
0
− − -->
k
x
− − -->
k
y
k
x
0
]
.
{\displaystyle \mathbf {K} =\left[{\begin{array}{ccc}0&-k_{z}&k_{y}\\k_{z}&0&-k_{x}\\-k_{y}&k_{x}&0\end{array}}\right]~.}
Примечания
Литература