金谷健一 : 3次元回転

2026-07-24

概要

副題はパラメータ計算とリー代数による最適化

感想

要再読である。

本書の参考文献のうち、私が読んだものは以下のとおりである。

ニュートン法

p.80 ではレーベンバーグ・マルカート法が解説されている。以下引用する。なお、本書では行列をイタリック太字にしているが、引用ではイタリック通常太さとした。 `R` は回転を、`J(R)` は回転 `R` の関数を表す。

  1. 初期値 `R` を与える.
  2. `J(R)` の勾配\( \boldsymbol{g} \)とヘッセ行列 `H` を計算する.
  3. 未知数 `Delta omega` に関する次の連立一次方程式を解く.\[ H \Delta \omega = -\boldsymbol{g} \]
  4. `R` を次のように更新を行う \[ R \gets e^{A(\Delta \omega)} R \]
  5. `norm(Delta omega) approx 0` であれば `tilde R` を返して終了する。そうでなければ,ステップ 2 に戻る.

では実際の回転はどのように計算するのかと言われると、よくわからない。

レーベンバーグ・マルカート法

p.85 ではレーベンバーグ・マルカート法が解説されている。以下引用する。なお、本書では行列をイタリック太字にしているが、引用ではイタリック通常太さとした。 `R` は回転を、`J(R)` は回転 `R` の関数を表す。

  1. 初期値 `R` を与え,`c = 0.0001` と置く.
  2. `J(R)` の勾配\( \boldsymbol{g} \)とヘッセ行列 `H` を計算する.
  3. 未知数 `Delta omega` に関する次の連立一次方程式を解く.\[ (H + cI) \Delta \omega = -\boldsymbol{g} \]
  4. `R` に対して,次の仮の更新を行う \[ \tilde{R} = e^{A(\Delta \omega)} R \]
  5. `J(tilde R) lt J(R)` または `J(tilde(R)) approx J(R)` でなければ,`c larr 10c` として,ステップ3 に戻る.
  6. `norm(Delta omega) approx 0` であれば `tilde R` を返して終了する。そうでなければ,`R larr tilde R, c larr c/10` としてステップ 2 に戻る.

このステップ 1 の 0.0001 という数値や、ステップ 5 の 10c という係数 10、またステップ 6 の c/10 という係数 1/10 は、本書によればどれも経験値であるという。なるほど。

数式記述

このページの数式は MathJax4 で記述している。

書誌情報

書名3次元回転
著者金谷健一
発行日2019 年 10 月 10 日 初版 2 刷
発行元共立出版
定価2700 円(本体)
サイズA5 版 267 ページ
ISBN978-4-320-11382-4
その他川口市立図書館にて借りて読む