3次元の回転を表すリー群$\mathrm{SO}(3)$と、リー代数$\mathfrak{so}(3)$に関する、自分用のメモ書きです。
リー代数$\boldsymbol{\phi} \in \mathfrak{so}(3)$と、それに対応する回転行列$\mathbf{C} = \exp(\boldsymbol{\phi}^\wedge) \in \mathrm{SO}(3)$を考える。
あるいは、3次実ベクトル$\mathbf{p}$について、$\mathbf{C} \mathbf{p}$の$\boldsymbol{\phi}$に関する偏微分$\cfrac{\partial (\mathbf{C} \mathbf{p})}{\partial \boldsymbol{\phi}}$を考えることもできる。
BCH (Baker-Campbell-Hausdorff) の公式を使うと、2つのリー代数$\boldsymbol{\phi}_1, \boldsymbol{\phi}_2 \in \mathfrak{so}(3)$について、以下の近似式が得られる。
2つの回転行列$\exp(\boldsymbol{\phi}_1^\wedge)$、$\exp(\boldsymbol{\phi}_2^\wedge)$を合成して、新たな回転行列$\exp(\boldsymbol{\phi}_1^\wedge) \exp(\boldsymbol{\phi}_2^\wedge)$を作成する。 この新たな回転に対応するリー代数$\ln(\exp(\boldsymbol{\phi}_1^\wedge) \exp(\boldsymbol{\phi}_2^\wedge))^\vee$は、もし$\boldsymbol{\phi}_1$が小さい回転を表していれば上側、$\boldsymbol{\phi}_2$が小さい回転を表していれば下側のように近似される。
ヤコビ行列$\mathbf{J}_l(\boldsymbol{\phi})$と$\mathbf{J}_r(\boldsymbol{\phi})$は次のように定義される。
ただし、$\boldsymbol{\phi} = \phi \mathbf{a}$、$\phi = | \boldsymbol{\phi} |$、$\mathbf{a} = \boldsymbol{\phi} / \phi$である。
2つのヤコビ行列$\mathbf{J}_l$、$\mathbf{J}_r$の間には、次の関係が成り立つ。
逆行列$\mathbf{J}_l^{-1}$、$\mathbf{J}_r^{-1}$は、次のように表される。
上式を基に、$\boldsymbol{\phi}$に摂動$\Delta \boldsymbol{\phi}$を加えたとき、回転行列$\mathbf{C} = \exp(\boldsymbol{\phi}^\wedge)$がどのように変化するのかを考える。 回転$\mathbf{C}$に対して、左側から摂動$\exp(\Delta \boldsymbol{\phi}^\wedge)$を加えると、新たな回転は次のようになる。
続いて、回転$\mathbf{C}$に対して、右側から摂動$\exp(\Delta \boldsymbol{\phi}^\wedge)$を加えると、新たな回転は次のようになる。
次のようにも書ける。
-
$\mathbf{J}_l(\boldsymbol{\phi})$ を使うと、$\exp((\boldsymbol{\phi} + h \mathbf{1}_i)^\wedge)$の部分は、次のように近似できる。$$ \begin{eqnarray} \exp((\boldsymbol{\phi} + h \mathbf{1}_i)^\wedge) &=& \exp((\boldsymbol{\phi} + \mathbf{J}_l(\boldsymbol{\phi})^{-1} \underbrace{h \mathbf{J}_l(\boldsymbol{\phi}) \mathbf{1}i}{\Delta \boldsymbol{\phi}})^\wedge) \ &\approx& \exp((h \mathbf{J}_l(\boldsymbol{\phi}) \mathbf{1}_i)^\wedge) \exp(\boldsymbol{\phi}^\wedge) \ &\approx& \left( \mathbf{I} + h (\mathbf{J}_l(\boldsymbol{\phi}) \mathbf{1}_i)^\wedge \right) \exp(\boldsymbol{\phi}^\wedge) \end{eqnarray} $$
最後の式変形は、行列指数関数$\exp(\mathbf{A})$の定義に基づいている。
$$ \exp(\mathbf{A}) = \mathbf{I} + \mathbf{A} + \frac{1}{2!} \mathbf{A}^2 + \frac{1}{3!} \mathbf{A}^3 + \cdots = \sum_{n = 0}^\infty \frac{1}{n!} \mathbf{A}^n $$
ここでは$h$が微小、言い換えると、$\mathbf{A} = (h \mathbf{J}_l(\boldsymbol{\phi}) \mathbf{1}_i)^\wedge$が微小である。 従って、$\mathbf{A}$に関する項だけを残して、$\mathbf{A}^2$以降の項は無視できる。
この近似を偏微分の定義に代入すれば、次が得られる。
$$ \lim_{h \to 0} \frac{\left( \mathbf{I} + h (\mathbf{J}_l(\boldsymbol{\phi}) \mathbf{1}_i)^\wedge \right) \exp(\boldsymbol{\phi}^\wedge) - \exp(\boldsymbol{\phi}^\wedge)}{h} = (\mathbf{J}_l(\boldsymbol{\phi}) \mathbf{1}_i)^\wedge \exp(\boldsymbol{\phi}^\wedge) $$
-
一方、$\mathbf{J}_l(\boldsymbol{\phi})$を使うと、$\exp((\boldsymbol{\phi} + h \mathbf{1}_i)^\wedge)$の部分は、次のように近似できる。
$$ \begin{eqnarray} \exp((\boldsymbol{\phi} + h \mathbf{1}_i)^\wedge) &=& \exp((\boldsymbol{\phi} + \mathbf{J}_r(\boldsymbol{\phi})^{-1} \underbrace{h \mathbf{J}_r(\boldsymbol{\phi}) \mathbf{1}i}{\Delta \boldsymbol{\phi}})^\wedge) \ &\approx& \exp(\boldsymbol{\phi}^\wedge) \exp((h \mathbf{J}_r(\boldsymbol{\phi}) \mathbf{1}_i)^\wedge) \ &\approx& \exp(\boldsymbol{\phi}^\wedge) \left( \mathbf{I} + (h \mathbf{J}_r(\boldsymbol{\phi}) \mathbf{1}_i)^\wedge \right) \end{eqnarray} $$
この近似を偏微分の定義に代入すれば、次が得られる。
$$ \lim_{h \to 0} \frac{\exp(\boldsymbol{\phi}^\wedge) \left( \mathbf{I} + (h \mathbf{J}_r(\boldsymbol{\phi}) \mathbf{1}_i)^\wedge \right) - \exp(\boldsymbol{\phi}^\wedge)}{h} = \exp(\boldsymbol{\phi}^\wedge) (\mathbf{J}_r(\boldsymbol{\phi}) \mathbf{1}_i)^\wedge $$
以上より、$\mathbf{C} = \exp(\boldsymbol{\phi}^\wedge)$の$\phi_i$に関する偏微分は、次のようになる。 3次ベクトル$\mathbf{1}_i$は、$i$番目の要素が$1$で、他は全て$0$である。
上式を使うと、ある3次実ベクトル$\mathbf{p} \in \mathbb{R}^3$について、$\mathbf{C} \mathbf{p}$の$\boldsymbol{\phi}$による偏微分$\cfrac{\partial (\mathbf{C} \mathbf{p})}{\partial \boldsymbol{\phi}}$が求められる。 偏微分$\cfrac{\partial (\mathbf{C} \mathbf{p})}{\partial \boldsymbol{\phi}}$は、回転行列$\mathbf{C}$を微小に変動させたとき、回転の結果$\mathbf{C} \mathbf{p}$がどのぐらい動くのかを表している。
以上より、全ての$i$について、上記の3次ベクトルを列方向に並べれば、$3 \times 3$行列の偏微分$\cfrac{\partial (\mathbf{C} \mathbf{p})}{\partial \boldsymbol{\phi}}$が得られる。
上記の偏微分$\cfrac{\partial \mathbf{C}}{\partial \phi_i}$、あるいは$\cfrac{\partial (\mathbf{C} \mathbf{p})}{\partial \boldsymbol{\phi}}$を求めるためには、ヤコビ行列$\mathbf{J}_l$あるいは$\mathbf{J}_r$の計算が必要である。 しかも、このヤコビ行列を計算するためには、$\mathbf{C} = \exp(\boldsymbol{\phi}^\wedge)$を$\boldsymbol{\phi} = \ln(\mathbf{C})^\vee$に一旦変換しなければならない(前回のメモを参照)。
そこで、上記とは別のアプローチで、偏微分$\cfrac{\partial \mathbf{C}}{\partial \phi_i}$、あるいは$\cfrac{\partial (\mathbf{C} \mathbf{p})}{\partial \boldsymbol{\phi}}$を求めてみる。
先ほどは、$\phi_i$の方向に$\boldsymbol{\phi}$を摂動したときの回転行列を、$\exp((\boldsymbol{\phi} + h \mathbf{1}_i)^\wedge)$で表現したが、ここでは$\exp((h \mathbf{1}_i)^\wedge) \mathbf{C}$、あるいは$\mathbf{C} \exp((h \mathbf{1}_i)^\wedge)$と表すことにする。 前者は左側から、後者は右側から、$h \mathbf{1}_i$に対応する微小な回転行列$\exp((h \mathbf{1}_i)^\wedge)$を適用する。 先ほどと異なるのは、次のような点である。
-
先ほどの方法:
$\boldsymbol{\phi}$ に摂動$h \mathbf{1}_i$を加えた後、回転行列$\exp((\boldsymbol{\phi} + h \mathbf{1}_i)^\wedge)$に変換する -
ここでの方法: 摂動を回転行列$\exp((h \mathbf{1}_i)^\wedge)$に変換した後、元の回転行列$\mathbf{C} = \exp(\boldsymbol{\phi}^\wedge)$に適用する
-
左側から適用する場合、偏微分$\cfrac{\partial \mathbf{C}}{\partial \phi_i}$と$\cfrac{\partial (\mathbf{C} \mathbf{p})}{\partial \boldsymbol{\phi}}$は次のように書ける。
$$ \begin{eqnarray} \frac{\partial \mathbf{C}}{\partial \phi_i} &=& \lim_{h \to 0} \frac{\exp((h \mathbf{1}i)^\wedge) \mathbf{C} - \mathbf{C}}{h} \ &\approx& \lim{h \to 0} \frac{\left( \mathbf{I} + (h \mathbf{1}_i)^\wedge \right) \mathbf{C} - \mathbf{C}}{h} \ &=& (\mathbf{1}_i)^\wedge \mathbf{C} \end{eqnarray} $$
ここでも$\exp(\mathbf{A}) \approx \mathbf{I} + \mathbf{A}$のように、$\exp(\mathbf{A})$を一次の項までで近似している。
偏微分$\cfrac{\partial (\mathbf{C} \mathbf{p})}{\partial \phi_i}$は、上式に$\mathbf{p}$を付け足せば、以下のようになる。
$\mathbf{a}^\wedge \mathbf{b} = -\mathbf{b}^\wedge \mathbf{a}$ である。$$ \cfrac{\partial (\mathbf{C} \mathbf{p})}{\partial \phi_i} = (\mathbf{1}_i)^\wedge \mathbf{C} \mathbf{p} = - \left( \mathbf{C} \mathbf{p} \right)^\wedge \mathbf{1}_i $$
$\left( \mathbf{C} \mathbf{p} \right)^\wedge \mathbf{1}_i$ は、$3 \times 3$行列$(\mathbf{C} \mathbf{p})^\wedge$の$i$列目のベクトルである。 全ての$i$について、上記の3次ベクトルを列方向に並べれば、次のように$3 \times 3$の偏微分$\cfrac{\partial (\mathbf{C} \mathbf{p})}{\partial \boldsymbol{\phi}}$が得られる。$$ \cfrac{\partial (\mathbf{C} \mathbf{p})}{\partial \boldsymbol{\phi}} = - \left( \mathbf{C} \mathbf{p} \right)^\wedge $$
-
右側から適用する場合、偏微分$\cfrac{\partial \mathbf{C}}{\partial \phi_i}$は次のように書ける。
$$ \begin{eqnarray} \frac{\partial \mathbf{C}}{\partial \phi_i} &=& \lim_{h \to 0} \frac{\mathbf{C} \exp((h \mathbf{1}i)^\wedge) - \mathbf{C}}{h} \ &\approx& \lim{h \to 0} \frac{\mathbf{C} \left( \mathbf{I} + (h \mathbf{1}_i)^\wedge \right) - \mathbf{C}}{h} \ &=& \mathbf{C} (\mathbf{1}_i)^\wedge \end{eqnarray} $$
偏微分$\cfrac{\partial (\mathbf{C} \mathbf{p})}{\partial \phi_i}$は、上式に$\mathbf{p}$を付け足せば、以下のようになる。
$$ \cfrac{\partial (\mathbf{C} \mathbf{p})}{\partial \phi_i} = \mathbf{C} (\mathbf{1}_i)^\wedge \mathbf{p} = - \mathbf{C} \mathbf{p}^\wedge \mathbf{1}_i $$
$\mathbf{C} \mathbf{p}^\wedge \mathbf{1}_i$ は、$3 \times 3$行列$\mathbf{C} \mathbf{p}^\wedge$の$i$列目のベクトルである。 全ての$i$について、上記の3次ベクトルを列方向に並べれば、次のように$3 \times 3$の偏微分$\cfrac{\partial (\mathbf{C} \mathbf{p})}{\partial \boldsymbol{\phi}}$が得られる。$$ \frac{\partial (\mathbf{C} \mathbf{p})}{\partial \boldsymbol{\phi}} = - \mathbf{C} \mathbf{p}^\wedge $$
以上より、$\mathbf{C} = \exp(\boldsymbol{\phi}^\wedge)$の$\phi_i$に関する偏微分は、次のようになる。
また、$\mathbf{C} \mathbf{p}$の$\boldsymbol{\phi}$に関する偏微分は、次のようになる。
先程のアプローチと比較すると、ヤコビ行列$\mathbf{J}_l$、$\mathbf{J}_r$が消えているので、計算が楽になる。
回転行列$\mathbf{C} = \exp(\boldsymbol{\phi}^\wedge)$の関数$L(\mathbf{C})$を考える。
スカラー関数$L(\mathbf{C})$の$\phi_i$による微分は、次のようになる。
$$ \begin{eqnarray} \frac{\partial L(\mathbf{C})}{\partial \phi_i} &=& \sum_{j = 0}^2 \sum_{k = 0}^2 \frac{\partial C_{jk}}{\partial \phi_i} \frac{\partial L(\mathbf{C})}{\partial C_{jk}} \ &=& \sum_{j = 0}^2 \sum_{k = 0}^2 \left( \frac{\partial \mathbf{C}}{\partial \phi_i} \right){jk} \left( \frac{\partial L(\mathbf{C})}{\partial \mathbf{C}} \right){jk} \ &=& \left{ \begin{array}{cc} \sum_{j = 0}^2 \sum_{k = 0}^2 \left( (\mathbf{1}i)^\wedge \mathbf{C} \right){jk} \left( \frac{\partial L(\mathbf{C})}{\partial \mathbf{C}} \right){jk} & \text{左側から適用するとき} \ \sum{j = 0}^2 \sum_{k = 0}^2 \left( \mathbf{C} (\mathbf{1}i)^\wedge \right){jk} \left( \frac{\partial L(\mathbf{C})}{\partial \mathbf{C}} \right)_{jk} & \text{右側から適用するとき} \end{array} \right. \end{eqnarray} $$
あるいは、$\mathbf{u} = \mathbf{C} \mathbf{p}$の関数$L(\mathbf{u})$を考える。 スカラー関数$L(\mathbf{u})$の$\boldsymbol{\phi}$に関する微分は、連鎖律から次のようになる。 ここでも、2つ目のアプローチによる微分を使っている。