回転(回転行列,クォータニオン)と時間微分
$ {\boldsymbol R}を任意のパラメータ$ tで微分してみる.
まず,$ {\boldsymbol R} {\boldsymbol R}^\top = {\boldsymbol I}より,
$ \frac{ \partial {\boldsymbol R} {\boldsymbol R}^\top }{\partial t} = \frac{ \partial {\boldsymbol R} }{\partial t} {\boldsymbol R}^\top + {\boldsymbol R} \frac{ \partial {\boldsymbol R}^\top }{\partial t} = 0
よって$ \frac{\partial {\boldsymbol R}}{\partial t} {\boldsymbol R}^\topは反対称行列であり,適当なベクトル$ {\boldsymbol x}を用いて次のように表現できる:
$ \begin{aligned} \frac{\partial {\boldsymbol R}}{\partial t} {\boldsymbol R}^\top & = {\rm Skew} \left( \boldsymbol x \right) \\ & = {\boldsymbol R} ~ {\rm Skew} \left( {\boldsymbol R}^\top {\boldsymbol x} \right) {\boldsymbol R}^\top , \end{aligned}
(see: Skew 外積行列).この式に左から$ {\boldsymbol R}を掛けると,
$ \begin{aligned} \frac{\partial {\boldsymbol R}}{\partial t} & = {\rm Skew} \left( \boldsymbol x \right) {\boldsymbol R} \\& = {\boldsymbol R} ~ {\rm Skew} \left( {\boldsymbol R}^\top {\boldsymbol x} \right) \end{aligned}
となる.これの転置をとると
$ \begin{aligned} \frac{\partial {\boldsymbol R}^\top}{\partial t} & = - {\boldsymbol R}^\top {\rm Skew} \left( \boldsymbol x \right) \\ & = - {\rm Skew} \left( {\boldsymbol R}^\top {\boldsymbol x} \right) {\boldsymbol R}^\top \end{aligned}
$ t が時間のとき, $ {\boldsymbol x} は角速度ベクトルと呼ばれ, $ {\boldsymbol \omega} で表記される.
四元数の場合は$ {\boldsymbol q}\bar{\boldsymbol q} = 1 + {\boldsymbol 0}を微分して,
$ \frac{\partial {\boldsymbol q} \bar{\boldsymbol q} }{\partial t} = \frac{\partial {\boldsymbol q}}{\partial t} \bar{\boldsymbol q} + {\boldsymbol q} \frac{\partial \bar{\boldsymbol q}}{\partial t} = 0
こちらも純クォータニオンなので適当なベクトル$ {\boldsymbol x}を用いて
$ \begin{aligned} \frac{\partial {\boldsymbol q}}{\partial t} \bar{\boldsymbol q} & = \begin{pmatrix} 0 \\ {\boldsymbol x} \end{pmatrix} \\ & = {\boldsymbol q} \left( \bar{\boldsymbol q} \begin{pmatrix} 0 \\ {\boldsymbol x} \end{pmatrix} {\boldsymbol q} \right) \bar{\boldsymbol q} \end{aligned}
と表現できる.
よって,
$ \begin{aligned} \frac{\partial {\boldsymbol q}}{\partial t} & = \begin{pmatrix} 0 \\ {\boldsymbol x} \end{pmatrix} {\boldsymbol q} \\ & = {\boldsymbol q} \left( \bar{\boldsymbol q} \begin{pmatrix} 0 \\ {\boldsymbol x} \end{pmatrix} {\boldsymbol q} \right) \\ \frac{\partial \bar{\boldsymbol q}}{\partial t} & = - \bar{\boldsymbol q} \begin{pmatrix} 0 \\ {\boldsymbol x} \end{pmatrix} \\ & = - \left( \bar{\boldsymbol q} \begin{pmatrix} 0 \\ {\boldsymbol x} \end{pmatrix} {\boldsymbol q} \right) \bar{\boldsymbol q} \\ \end{aligned}
クォータニオンの場合は $ {\boldsymbol x } = \frac{1}{2} {\boldsymbol \omega} なことに注意
see: クォータニオンの指数対数(exp, log)写像
回転行列の指数対数(exp, log)写像 や クォータニオンの指数対数(exp, log)写像 で示したが,$ \thetaで微分したときは$ {\boldsymbol x}は回転軸$ {\boldsymbol n}であり,
$ {\boldsymbol R}^\top {\boldsymbol n} = {\boldsymbol n},$ {\boldsymbol q} \begin{pmatrix} 0 \\ {\boldsymbol n} \end{pmatrix} \bar{\boldsymbol q} = \begin{pmatrix} 0 \\ {\boldsymbol n} \end{pmatrix}
が成り立つ.
具体例として座標変換を表す回転の時間微分について考察する.
$ tを時間のパラメータとする.時間微分をドットで表す.
固定された正規直交基底$ \Sigma \left\{ {\boldsymbol e}_i \right\}と時間変化する正規直交基底$ \Sigma'\left\{ {\boldsymbol e}'_i (t) \right\}がある.
ベクトルの成分は$ v_i {\boldsymbol e}_i = v'_i {\boldsymbol e}'_iで表記する.
$ \Sigmaから$ \Sigma'への基底変換は,$ v_i = R_{ij} v'_j.
ここで,$ R_{ij} = {\boldsymbol e}_i \cdot {\boldsymbol e}'_jであり,$ {\boldsymbol R} = R_{ij}は直交行列となる.
$ R_{ki} R_{kj} = \delta_{ij}の時間微分は,$ \dot{R}_{ki} R_{kj} + R_{ki} \dot{R}_{kj} = 0
よって,$ {\boldsymbol R}^\top \dot{\boldsymbol R}は歪対称行列,3つの実数$ \omega'_kを用いて$ R_{ki} \dot{R}_{kj} = \epsilon_{ikj} \omega'_kと表せる.
$ {\boldsymbol R}^\top \dot{\boldsymbol R} = {\rm Skew} \left( \omega' \right) = {\boldsymbol R}^\top {\rm Skew} ( {\boldsymbol R} \omega' ) {\boldsymbol R}
より,
$ \begin{aligned} \dot{\boldsymbol R}& = {\boldsymbol R} {\rm Skew} \left( \omega' \right) \\ & = {\rm Skew} \left( {\boldsymbol R} \omega' \right) {\boldsymbol R} = {\rm Skew} \left( \omega \right) {\boldsymbol R} \\ \end{aligned}
$ \Sigma'の基底ベクトルの時間微分は
$ \dot{{\boldsymbol e}}'_i = \dot{R}_{ki} {\boldsymbol e}_k = \dot{R}_{ki} R_{kj} {\boldsymbol e}'_j = \epsilon_{jli} \omega'_l {\boldsymbol e}'_j = \epsilon_{jlm} \omega'_l \delta_{im} {\boldsymbol e}'_j
つまり$ \omega = \omega'_i {\boldsymbol e}'_i と $ {\boldsymbol e}'_i = \delta_{ik} {\boldsymbol e}'_kのクロス積として,
$ \dot{\boldsymbol e}'_i = \omega \times {\boldsymbol e}'_iと書ける.
時間変化するベクトル $ {\boldsymbol v}(t) = v_k (t) {\boldsymbol e}_k = v'_k (t) {\boldsymbol e}'_k (t) について,
$ \begin{aligned} \dot{{\boldsymbol v}} = \dot{v}_k {\boldsymbol e}_k & = \dot{v}'_k {\boldsymbol e}'_k + v'_k \dot{{\boldsymbol e}}'_k \\ & = \dot{v}'_k {\boldsymbol e}'_k + v'_k \left( \omega \times {\boldsymbol e}'_k \right) \\& = \dot{v}'_k {\boldsymbol e}'_k + \omega \times {\boldsymbol v} \end{aligned}
が得られる.
あるいは,$ v_i = R_{ij} v'_jを微分して
$ \begin{aligned} \dot{v}_i& = R_{ik} \dot{v}'_k + \dot{R}_{ik} v'_k \\ & = R_{ik} \dot{v}'_k + R_{il} ( {\rm Skew} (\omega' ) )_{lk} v'_k \\ & = R_{ik} \dot{v}'_k + ( {\rm Skew} (\omega ) )_{il} R_{lk} v'_k \end{aligned}
各基底の座標ベクトルを
$ {\boldsymbol v} = \begin{pmatrix} v_0 \\ v_1 \\ v_2 \end{pmatrix},$ {\boldsymbol v}' = \begin{pmatrix} v'_0 \\ v'_1 \\ v'_2 \end{pmatrix}として,
$ \begin{aligned} \dot{{\boldsymbol v}} & = {\boldsymbol R} \dot{{\boldsymbol v}}' + \dot{{\boldsymbol R}} {\boldsymbol v}' \\ & = {\boldsymbol R} \dot{{\boldsymbol v}}' + {\boldsymbol R} ( {\rm Skew} (\omega' ) ) {\boldsymbol v}' \\ & = {\boldsymbol R} \dot{{\boldsymbol v}}' + ( {\rm Skew} (\omega ) ) {\boldsymbol R} {\boldsymbol v}' \end{aligned}
テンソル$ {\boldsymbol J}(t) = J_{ij} (t) {\boldsymbol e}_i \otimes {\boldsymbol e}_j = J'_{ij} (t) {\boldsymbol e}'_i \otimes {\boldsymbol e}'_jについても同様に,
$ J_{ij} = R_{ik} R_{jl} J'_{kl}を微分して
$ \begin{aligned} \dot{J}_{ij} & = R_{ik} R_{jl} \dot{J}'_{kl} + \dot{R}_{ik} R_{jl} J'_{kl} + R_{ik} \dot{R}_{jl} J'_{kl} \\ & = R_{ik} R_{jl} \dot{J}'_{kl} + R_{ip} \left( {\rm Skew} ( \omega' ) \right)_{pk} R_{jl} J'_{kl} + R_{ik} R_{jp} \left( {\rm Skew} ( \omega' ) \right)_{pl} J'_{kl} \\ & = R_{ik} R_{jl} \dot{J}'_{kl} + \left( {\rm Skew} ( \omega ) \right)_{ip} R_{pk} R_{jl} J'_{kl} + R_{ik} \left( {\rm Skew} ( \omega ) \right)_{jp} R_{pl} J'_{kl} \\ \end{aligned}
各基底での行列としての表示を$ {\boldsymbol J} = (J_{ij}), {\boldsymbol J}' = (J'_{ij})
として,
$ \begin{aligned} \dot{\boldsymbol J} & = {\boldsymbol R} \dot{{\boldsymbol J}}' {\boldsymbol R}^\top + \dot{\boldsymbol R} {\boldsymbol J}' {\boldsymbol R}^\top + {\boldsymbol R} {\boldsymbol J}' \dot{\boldsymbol R}^\top \\ & = {\boldsymbol R} \dot{{\boldsymbol J}}' {\boldsymbol R}^\top + {\boldsymbol R} {\rm Skew} ( \omega' ) {\boldsymbol J}' {\boldsymbol R}^\top + {\boldsymbol R} {\boldsymbol J}' {\rm Skew} (\omega') {\boldsymbol R}^\top \\ & = {\boldsymbol R} \dot{{\boldsymbol J}}' {\boldsymbol R}^\top + {\rm Skew} ( \omega ) {\boldsymbol R} {\boldsymbol J}' {\boldsymbol R}^\top + {\boldsymbol R} {\boldsymbol J}' {\boldsymbol R}^\top {\rm Skew} ( \omega )^\top \\ \end{aligned}
#3DRotation