ロドリゲスの回転公式

提供: testwiki
ナビゲーションに移動 検索に移動

テンプレート:Distinguish テンプレート:出典の明記 テンプレート:正確性 三次元回転におけるロドリゲの回転公式テンプレート:Lang-en-short)とは、ベクトル空間において、与えられた回転軸に対して回転を行うための効率的なアルゴリズムを指す。またこの公式は、任意の3つの基底ベクトルに対する、テンプレート:Math 群上の回転行列を用いた変換の軸角度表現を与えている。つまり、この式は テンプレート:Mathテンプレート:Mathリー代数)から テンプレート:Math への指数写像を、行列の指数関数を計算せずに与えるアルゴリズムとなっている。

性質

テンプレート:Math 上の回転軸を表す単位ベクトル テンプレート:Math, 右手の法則に基づく回転角度 テンプレート:Mvar に対して、ロドリゲスの回転公式は次の様に与えられる。

R𝒏(θ)=eθK(𝒏)=E+(sinθ)K(𝒏)+(1cosθ)K2(𝒏)=[nx2(1cosθ)+cosθnxny(1cosθ)nzsinθnznx(1cosθ)+nysinθnxny(1cosθ)+nzsinθny2(1cosθ)+cosθnynz(1cosθ)nxsinθnznx(1cosθ)nysinθnynz(1cosθ)+nxsinθnz2(1cosθ)+cosθ]

ここで テンプレート:Mvar は3次単位行列であり、

K(𝒏)=[0nznynz0nxnynx0]

テンプレート:Mvar との外積に対応する交代行列(歪対称行列、或いは反対称行列とも呼ばれる)である。

また、単位軸ベクトル テンプレート:Mvarテンプレート:Math と表した場合、上記の行列 テンプレート:Mathテンプレート:Math 成分はクロネッカーのデルタ及び符号関数を用いて以下のように表すことも出来る。

ninj(1cosθ)+δijcosθ+{sgn(ij)}[k=13sgn{(ik)(jk)}nk]sinθ

なお、上記の添え字 テンプレート:Mvar は結局、集合 テンプレート:Math から集合 テンプレート:Math を取り除いた残り1つのに当たるもののみが残るから、差集合の考え方を用いて以下のように表しても良い。

ninj(1cosθ)+δijcosθ+{sgn(ji)}(1)i+jnksinθ(k{1,2,3}{i,j})

他の表現として、回転面を表すゼロでないベクトル テンプレート:Math2 に対する軸ベクトルとしてクロス積 テンプレート:Math2 を用いることができる。このとき、回転角 テンプレート:Mvarテンプレート:Mvar から離れた、もしくは テンプレート:Mvar に向けた角として表せる。2つのベクトルがなす角を テンプレート:Mvar とすると、テンプレート:Mvar と同様の意味を テンプレート:Mvar に与えることができる(ただし2つは必ずしも一致しない)。このとき、単位軸ベクトル テンプレート:Mvar は次のように書ける。

𝒏=𝒂×𝒃𝒂×𝒃

もし回転面を表すベクトルが事前に分かっている場合は、この形式を用いる。物理学における例として、トーマスの歳差運動が挙げられる。

ベクトル表現との対応関係

テンプレート:Math 上のベクトル テンプレート:Math を、単位ベクトル テンプレート:Math を軸に、右手の法則に基づく回転角度 テンプレート:Mvar だけ回転させた結果得られたベクトルを テンプレート:Math とすると、テンプレート:Math は以下のように表される[1]

𝒔=(cosθ)𝒓+(1cosθ)(𝒏𝒓)𝒏+(sinθ)(𝒏×𝒓)=(cosθ)𝒓+(1cosθ){𝒏×(𝒏×𝒓)+𝒓}+(sinθ)(𝒏×𝒓)=𝒓+(sinθ)(𝒏×𝒓)+(1cosθ){𝒏×(𝒏×𝒓)}

なお、2番目の等号はベクトル三重積及び テンプレート:Math が単位ベクトルであることを用いた。

ここで、テンプレート:Math 及び テンプレート:Math成分表示(列ベクトル表示)し、正方行列テンプレート:Math の積の形に変形すると、

𝒏×𝒓=[nyrznzrynzrxnxrznxrynyrx]=[0nznynz0nxnynx0][rxryrz]=K(𝒏)𝒓
𝒏×(𝒏×𝒓)=(𝒏𝒓)𝒏𝒓=[(nxrx+nyry+nzrz)nxrx(nxrx+nyry+nzrz)nyry(nxrx+nyry+nzrz)nzrz]=[nx21nxnynznxnxnyny21nynznznxnynznz21][rxryrz]=[ny2nz2nxnynznxnxnynz2nx2nynznznxnynznx2ny2][rxryrz]=[0nznynz0nxnynx0]2[rxryrz]=K2(𝒏)𝒓

であるから、以下に示す通り、本節のベクトル表現は前節の行列表現と同等であることが分かる。

𝒔=𝒓+(sinθ)(𝒏×𝒓)+(1cosθ){𝒏×(𝒏×𝒓)}=𝒓+(sinθ)K(𝒏)𝒓+(1cosθ)K2(𝒏)𝒓={E+(sinθ)K(𝒏)+(1cosθ)K2(𝒏)}𝒓

脚注

テンプレート:Reflist

外部リンク

テンプレート:Linear-algebra-stub

  1. ロドリゲスの回転公式』 - KIT物理ナビゲーション(金沢工業大学