四元数と回転

527 Views

April 30, 22

スライド概要

第3回 | すうがく徒のつどい@オンライン
https://tsudoionline.netlify.app/03/

四元数と回転 - 第3回すうがく徒のつどい - YouTube
https://www.youtube.com/watch?v=lzPFo-DsGSo

すうがく徒のつどいで四元数と回転の話をしました #tsudoionline - usami-k 数学日記
https://usami-k.hatenadiary.jp/entry/2022/05/01/181416

補足:
ロドリゲスの回転公式
https://www.docswell.com/s/usami-k/ZNR39E-rodrigues-rotation-formula
四元数による回転の記述
https://www.docswell.com/s/usami-k/KYWRVP-quaternion-rotation

profile-image

https://usami-k.github.io/

シェア

またはPlayer版

埋め込む »CMSなどでJSが使えない場合

関連スライド

各ページのテキスト
1.

四元数と回転 宇佐見 公輔 第三回 すうがく徒のつどい@オンライン 1 四元数の定義 まず、今回のテーマのひとつである四元数について述べます。以下、ℝ を実数の集合とします。 Definition 1.1 𝑥0 + 𝑥1 i + 𝑥2 j + 𝑥3 k(𝑥𝑖 ∈ ℝ)とあらわされる数を、四元数(しげんすう、quarternion)と呼び ます。ここで、i、j、k は実数とは異なる数であり、四元数の虚数単位と呼びます。 四元数の加法を次で定義します。 (𝑥0 + 𝑥1 i + 𝑥2 j + 𝑥3 k) + (𝑦0 + 𝑦1 i + 𝑦2 j + 𝑦3 k) ∶= (𝑥0 + 𝑦0 ) + (𝑥1 + 𝑦1 )i + (𝑥2 + 𝑦2 )j + (𝑥3 + 𝑦3 )k 例えば次のようになります。 (2 + 3i − 4j) + (1 + 2i − 4j + 2k) = (2 + 1) + (3 + 2)i + (−4 − 4)j + 2k = 3 + 5i − 8j + 2k 四元数の乗法は以下のように定義します。 まず、実数どうしの積はそのまま実数の積で定義します。実数と虚数単位との積は、次のように 定義します(𝑟 ∈ ℝ) 。 i𝑟 = 𝑟i, j𝑟 = 𝑟j, k𝑟 = 𝑟k Definition 1.2 四元数の虚数単位どうしの積を次で定義します。 i2 = j2 = k2 = −1 ij = −ji = k, jk = −kj = i, ki = −ik = j 実数どうしの積や実数と虚数単位との積は順序を交換できますが、虚数単位どうしの積は順序を 交換できないことに注意してください。積の結合法則は使用できます。 1

2.

一般の四元数の乗法は、分配法則 (𝑥 + 𝑦)𝑧 = 𝑥𝑧 + 𝑦𝑧、𝑥(𝑦 + 𝑧) = 𝑥𝑦 + 𝑥𝑧 が成り立つように拡張 することで定義します。例えば次のようになります。 (2 + 3j)(4i − k) = 2(4i − k) + 3j(4i − k) = 2(4i) + 2(−k) + (3j)(4i) + (3j)(−k) = 8i − 2k + 12ji − 3jk = 8i − 2k − 12k − 3i = 5i − 14k この加法と乗法の定義のしかたから、次が成り立ちます。 Theorem 1.3 四元数の集合 ℍ は上述の加法と乗法で環(非可換環)です。すなわち、次の条件を満たし ます。 • (𝑥 + 𝑦) + 𝑧 = 𝑥 + (𝑦 + 𝑧)(加法の結合法則) • 𝑥 + 0 = 0 + 𝑥 = 𝑥(加法の単位元の存在) • 𝑥 + (−𝑥) = (−𝑥) + 𝑥 = 0(加法の逆元の存在) • 𝑥 + 𝑦 = 𝑦 + 𝑥(加法の交換法則) • (𝑥𝑦)𝑧 = 𝑥(𝑦𝑧)(乗法の結合法則) • 𝑥 ⋅ 1 = 1 ⋅ 𝑥 = 𝑥(乗法の単位元の存在) • (𝑥 + 𝑦)𝑧 = 𝑥𝑧 + 𝑦𝑧、𝑥(𝑦 + 𝑧) = 𝑥𝑦 + 𝑥𝑧(分配法則) 乗法の交換法則は成り立ちませんが、乗法の逆元は存在します。 Theorem 1.4 四元数の集合 ℍ は次の条件を満たします。 • 0 でない 𝑥 ∈ ℍ に対し、𝑥 に対応する 𝑥 ′ ∈ ℍ で 𝑥𝑥 ′ = 𝑥 ′ 𝑥 = 1 を満たすものが存在する(乗 法の逆元の存在) この 𝑥 ′ を 𝑥 の逆数と呼び、𝑥 −1 と書きます。 以下、Theorem 1.4の証明として、𝑥 −1 を具体的に記述します。まず準備として 𝑥 の共役を定義し ます。 Definition 1.5 𝑥 = 𝑥0 + 𝑥1 i + 𝑥2 j + 𝑥3 k に対して、𝑥 を次で定義し、𝑥 の共役と呼びます。 𝑥 ∶= 𝑥0 − 𝑥1 i − 𝑥2 j − 𝑥3 k 2

3.

積 𝑥𝑥 を計算すると次のようになります。 𝑥𝑥 = (𝑥0 + 𝑥1 i + 𝑥2 j + 𝑥3 k)(𝑥0 − 𝑥1 i − 𝑥2 j − 𝑥3 k) = 𝑥02 − 𝑥0 𝑥1 i − 𝑥0 𝑥2 j − 𝑥0 𝑥3 k + 𝑥1 𝑥0 i + 𝑥12 − 𝑥1 𝑥2 k + 𝑥1 𝑥3 j + 𝑥2 𝑥0 j + 𝑥2 𝑥1 k + 𝑥22 − 𝑥2 𝑥3 i + 𝑥3 𝑥0 k − 𝑥3 𝑥1 j + 𝑥3 𝑥2 i + 𝑥32 = 𝑥02 + 𝑥12 + 𝑥22 + 𝑥32 同様にして、𝑥𝑥 = 𝑥02 + 𝑥12 + 𝑥22 + 𝑥32 も得られます。 Definition 1.6 𝑥 = 𝑥0 + 𝑥1 i + 𝑥2 j + 𝑥3 k に対して、|𝑥| を次で定義し、𝑥 の大きさと呼びます。 |𝑥| ∶= √ 𝑥02 + 𝑥12 + 𝑥22 + 𝑥32 これを使うと、次の等式が得られます。 𝑥𝑥 = 𝑥𝑥 = |𝑥|2 すなわち、𝑥 が 0 でないとき次の等式が成り立ちます。 𝑥( 1 1 𝑥) = ( 2 𝑥) 𝑥 = 1 2 |𝑥| |𝑥| したがって、𝑥 の逆元 𝑥 −1 は次のようになります。 𝑥 −1 = 1 𝑥 |𝑥|2 以上で Theorem 1.4が証明できました。 Theorem 1.4により、ℍ は単に環であるだけでなく、斜体(非可換体)であることが分かります。 四元数の性質にひとつ触れておきます。 Theorem 1.7 四元数の乗法は大きさを保ちます。すなわち、次の等式を満たします(𝑥, 𝑦 ∈ ℍ)。 |𝑥𝑦| = |𝑥||𝑦| 3

4.

証明するには、愚直に計算します。積 𝑥𝑦 は次のようになります。 𝑥𝑦 = (𝑥0 + 𝑥1 i + 𝑥2 j + 𝑥3 k)(𝑦0 + 𝑦1 i + 𝑦2 j + 𝑦3 k) = (𝑥0 𝑦0 − 𝑥1 𝑦1 − 𝑥2 𝑦2 − 𝑥3 𝑦3 ) + (𝑥0 𝑦1 + 𝑥1 𝑦0 + 𝑥2 𝑦3 − 𝑥3 𝑦2 )i + (𝑥0 𝑦2 − 𝑥1 𝑦3 + 𝑥2 𝑦0 + 𝑥3 𝑦1 )j + (𝑥0 𝑦3 + 𝑥1 𝑦2 − 𝑥2 𝑦1 + 𝑥3 𝑦0 )k したがって、|𝑥𝑦|2 は次のようになります。 |𝑥𝑦|2 = (𝑥0 𝑦0 − 𝑥1 𝑦1 − 𝑥2 𝑦2 − 𝑥3 𝑦3 )2 + (𝑥0 𝑦1 + 𝑥1 𝑦0 + 𝑥2 𝑦3 − 𝑥3 𝑦2 )2 + (𝑥0 𝑦2 − 𝑥1 𝑦3 + 𝑥2 𝑦0 + 𝑥3 𝑦1 )2 + (𝑥0 𝑦3 + 𝑥1 𝑦2 − 𝑥2 𝑦1 + 𝑥3 𝑦0 )2 これが、次の |𝑥|2 |𝑦|2 と等しくなることを展開して確かめることができます。 |𝑥|2 |𝑦|2 = (𝑥02 + 𝑥12 + 𝑥22 + 𝑥32 )(𝑦02 + 𝑦12 + 𝑦22 + 𝑦32 ) 2 3 次元空間の回転 今回のテーマのもうひとつである回転について述べます。3 次元空間上の回転の素朴なイメージ として、丸いボールがあったとして、それをくるくる回す操作が回転です。ただ、ボールの回し方 はいろいろありそうで、なんとなく捉えどころがない感じです。そこで、もう少しきちんとした捉 えかたを考えます。 3 次元空間上の変換 ℝ3 → ℝ3 を考えます。回転もこの 3 次元空間上の変換の一種であるという 捉えかたで考えていきます。実は回転変換は、次のような変換として特徴づけることができます。 Definition 2.1 3 次元空間上で、長さを保ち、向きを反転させない線型変換を、回転(rotation)と呼びます。 変換 𝑓 が長さを保つとは、点 𝑋 と点 𝑌 について、線分 𝑋𝑌 の長さと線分 𝑓(𝑋)𝑓(𝑌) の長さが等し くなることです。 長さを保つ変換は、角度も保ちます。実際、3 点 𝑋、𝑌、𝑍 を考えるとき、三角形 𝑋𝑌𝑍 と三角 形 𝑓(𝑋)𝑓(𝑌)𝑓(𝑍) は各辺の長さが等しいため合同です。したがって、𝑋、𝑌、𝑍 がなす角と 𝑓(𝑋)、 𝑓(𝑌)、𝑓(𝑍) がなす角も等しくなります。 このため、長さを保つ変換は、図形の形と大きさを保つ変換であるともいえます。 また、変換 𝑓 が線型変換であるとは、次を満たすことです。 𝑓(𝑥 + 𝑦) = 𝑓(𝑥) + 𝑓(𝑦) 𝑓(𝑐𝑥) = 𝑐𝑓(𝑥) 4

5.

線型変換は原点を動かさない変換です。平行移動は線型変換ではありませんので、Definition 2.1か ら除外されます。 最後に、向きを反転させないという言葉の定義については本稿では説明を省略しますが、鏡映で はないという意味です。鏡映は Definition 2.1から除外されます。 つまり、図形の形と大きさを保ち、平行移動と鏡映を含まない変換が回転です。こうして特徴づ けられる回転ですが、実は次の定理が成り立ちます。 Theorem 2.2 3 次元空間上の任意の回転は、原点を通るある回転軸 𝑙 の周りの、ある回転角 𝜃 の回転になり ます。 これは 3 次元空間の回転についてのオイラーの定理と呼ばれています。本稿ではこの定理の証明 は省略します。例えば、参考文献 [4] を参照してください。 3 ベクトルによる回転の記述 ある回転軸の周りにある回転角だけ回転する、という変換をベクトルを使って具体的に記述して みます。 準備として、3 次元ベクトル空間 ℝ3 の内積と外積を定義しておきます。 Definition 3.1 ⃗ 𝑦⟩ ⃗ ∈ ℝ を次で定義します。 ℝ3 のベクトル 𝑥⃗ = (𝑥1 , 𝑥2 , 𝑥3 ) と 𝑦⃗ = (𝑦1 , 𝑦2 , 𝑦3 ) に対して、内積 ⟨𝑥| ⃗ 𝑦⟩ ⃗ ∶= 𝑥1 𝑦1 + 𝑥2 𝑦2 + 𝑥3 𝑦3 ⟨𝑥| 𝑥⃗ と 𝑦⃗ のなす角を 𝜃 とするとき、次の関係が成り立ちます。 ⃗ 𝑦⟩ ⃗ = |𝑥|| ⃗ 𝑦| ⃗ cos 𝜃 ⟨𝑥| Definition 3.2 ℝ3 のベクトル 𝑥⃗ = (𝑥1 , 𝑥2 , 𝑥3 ) と 𝑦⃗ = (𝑦1 , 𝑦2 , 𝑦3 ) に対して、外積 𝑥⃗ × 𝑦⃗ ∈ ℝ3 を次で定義します。 𝑥⃗ × 𝑦⃗ ∶= (𝑥2 𝑦3 − 𝑥3 𝑦2 , 𝑥3 𝑦1 − 𝑥1 𝑦3 , 𝑥1 𝑦2 − 𝑥2 𝑦1 ) 𝑥⃗ × 𝑦⃗ は、𝑥⃗ と 𝑦⃗ に直交するベクトルで、その大きさは 𝑥⃗ と 𝑦⃗ がつくる平行四辺形の面積と等し くなります。式で書くと、𝑥⃗ と 𝑦⃗ のなす角を 𝜃 とするとき、次の関係が成り立ちます。 ⃗ = |𝑥|| ⃗ 𝑦| ⃗ sin 𝜃 |𝑥⃗ × 𝑦| 内積と外積を使って、3 次元空間の回転を次のように記述できます。 Theorem 3.3 5

6.

大きさ 1 のベクトル 𝑛⃗ があるとします。点 𝑋 を 𝑛⃗ の周りに角 𝜃 だけ回転した点を 𝑋 ′ としま ′ の位置ベクトルを 𝑥⃗′ とするとき、次が成り立ちます。 ⃗ す。𝑋 の位置ベクトルを 𝑥、𝑋 ⃗ 𝑥⟩ ⃗ 𝑛⃗ + sin 𝜃(𝑛⃗ × 𝑥) ⃗ 𝑥⃗′ = cos 𝜃 𝑥⃗ + (1 − cos 𝜃)⟨𝑛| ⃗ 𝑛、 ⃗ 𝑛⃗ × 𝑥⃗ の 3 つのベクト これはロドリゲス(ロドリーグ)の回転公式と呼ばれます。𝑥⃗′ を、𝑥、 ルの和の形で記述しています。 以下、Theorem 3.3を証明します。 まず、𝑥⃗ を 𝑛⃗ と平行な方向 𝑥⃗∥ と垂直な方向 𝑥⃗⟂ に分解します。 𝑥⃗ = 𝑥⃗∥ + 𝑥⃗⟂ ⃗ 𝑥⟩ ⃗ 𝑛⃗ となります。 このとき、𝑥⃗∥ = ⟨𝑛| 𝑥⃗′ も同様に分解します。 𝑥⃗′ = 𝑥⃗′ ∥ + 𝑥⃗′ ⟂ このとき、点 𝑋 ′ は点 𝑋 を 𝑛⃗ の周りに回転した点であることから、𝑥⃗ と 𝑥⃗′ について、𝑛⃗ と平行な方 向の成分は等しくなります。つまり 𝑥⃗′ ∥ = 𝑥⃗∥ です。 外積 𝑛⃗ × 𝑥⃗⟂ を考えます。外積の大きさは平行四辺形の面積でしたから、これは実は 𝑛⃗ × 𝑥⃗ と等し いです。 𝑛⃗ と 𝑥⃗⟂ は直交していることから、次が成り立ちます。 ⃗ 𝑥⃗⟂ | = |𝑥⃗⟂ | |𝑛⃗ × 𝑥⃗⟂ | = |𝑛|| ⃗ 𝑥⃗⟂ 方向に分解します。𝑥⃗⟂ と 𝑥⃗′ ⟂ のなす角は 𝜃 なので、次のようになります。 𝑥⃗′ ⟂ を 𝑥⃗⟂ 方向と 𝑛× 𝑥⃗′ ⟂ = cos 𝜃𝑥⃗⟂ + sin 𝜃(𝑛⃗ × 𝑥⃗⟂ ) したがって、次が成り立ちます。 𝑥⃗′ = 𝑥⃗′ ∥ + 𝑥⃗′ ⟂ = 𝑥⃗∥ + cos 𝜃𝑥⃗⟂ + sin 𝜃(𝑛⃗ × 𝑥⃗⟂ ) ⃗ = 𝑥⃗∥ + cos 𝜃(𝑥⃗ − 𝑥⃗∥ ) + sin 𝜃(𝑛⃗ × 𝑥) ⃗ 𝑥⟩ ⃗ 𝑛⃗ + sin 𝜃(𝑛⃗ × 𝑥) ⃗ = cos 𝜃 𝑥⃗ + (1 − cos 𝜃)⟨𝑛| 以上で Theorem 3.3が証明できました。 4 四元数による回転の記述 ロドリゲスの回転公式は、四元数を使うと簡潔な形になります。 まず、四元数と 3 次元空間との対応をみます。 6

7.

Definition 4.1 実部を持たない四元数、すなわち次の形の四元数を純虚四元数と呼びます(𝑥𝑖 ∈ ℝ)。 𝑥1 i + 𝑥2 j + 𝑥3 k 純虚四元数と 3 次元ベクトル空間のベクトルを、次のように対応させます。 𝑥1 i + 𝑥2 j + 𝑥3 k ↔ (𝑥1 , 𝑥2 , 𝑥3 ) 純虚四元数の内積や外積も同様の対応で定義できます。 ⟨𝑥|𝑦⟩ ∶= 𝑥1 𝑦1 + 𝑥2 𝑦2 + 𝑥3 𝑦3 𝑥 × 𝑦 ∶= (𝑥2 𝑦3 − 𝑥3 𝑦2 )i + (𝑥3 𝑦1 − 𝑥1 𝑦3 )j + (𝑥1 𝑦2 − 𝑥2 𝑦1 )k 四元数を使って、3 次元空間の回転を次のように記述できます。 Theorem 4.2 大きさ 1 のベクトル 𝑛⃗ があるとします。点 𝑋 を 𝑛⃗ の周りに角 𝜃 だけ回転した点を 𝑋 ′ としま す。𝑋 の位置ベクトルに対応する純虚四元数を 𝑥、𝑋 ′ の位置ベクトルに対応する純虚四元数を 𝑥 ′ とするとき、次が成り立ちます。 𝑥′ = 𝑞𝑥𝑞 ただし、𝑞 は次の四元数です(𝑛 は 𝑛⃗ に対応する純虚四元数)。 𝑞 = cos 𝜃 𝜃 + (sin ) 𝑛 2 2 なお、𝑞 は大きさ 1 の四元数です。𝑛 = 𝑛1 i + 𝑛2 j + 𝑛3 k とすると、次のように計算できます。 2 2 2 2 𝜃 𝜃 |𝑞| = (cos ) + (sin ) (𝑛12 + 𝑛22 + 𝑛32 ) 2 2 𝜃 𝜃 = (cos ) + (sin ) 2 2 =1 また、|𝑞| = 1 より 𝑞−1 = 𝑞 となるので、𝑥 ′ = 𝑞𝑥𝑞−1 とも書けることも分かります。 Theorem 4.2の証明は、𝑞𝑥𝑞 を地道に計算していくことでできます。計算結果は次のようになり ます。 𝑞𝑥𝑞 = (cos 𝜃)𝑥 + (1 − cos 𝜃)⟨𝑛|𝑥⟩𝑛 + sin 𝜃(𝑛 × 𝑥) つまり、ロドリゲスの回転公式と同じ形になるため、𝑞𝑥𝑞 は回転であることが分かります。 7

8.

実際の計算では、𝑞 の実部を 𝑞0 、虚部(純虚四元数部)を 𝑞1 として、次のように展開すると見通 しよく計算できます。 𝑞𝑥𝑞 = (𝑞0 + 𝑞1 )𝑥(𝑞0 − 𝑞1 ) = 𝑞0 𝑥𝑞0 + (𝑞1 𝑥𝑞0 − 𝑞0 𝑥𝑞1 ) − 𝑞1 𝑥𝑞1 参考文献 [1] 松岡学, 数の世界 自然数から実数、複素数、そして四元数へ, 講談社ブルーバックス, 2020 [2] 矢野忠, 四元数の発見, 海鳴社, 2014 [3] 今野紀雄, 四元数, 森北出版, 2016 [4] 金谷健一, 3 次元回転 パラメータ計算とリー代数による最適化, 共立出版, 2019 [5] 井ノ口順一, はじめて学ぶリー群, 現代数学社, 2017 [6] 横田一郎, 古典型単純リー群, 現代数学社, 1990 8