SlideShare a Scribd company logo
複素数・四元数と図形の回転

算数・数学教育研修会
於. 代々木ゼミナール福岡校

複素数・四元数と図形の回転
∼数の体系と演算の構成∼

溝口佳寛
九州大学 マス・フォア・インダストリ研究所
 
http://www.slideshare.net/yoshihiromizoguchi/ss-28541012

2013 年 12 月 08 日 (日)
複素数・四元数と図形の回転
はじめに

目次

1
2
3
4
5
6
7
8
9
10

はじめに
自然数
整数
有理数
実数
複素数
二重複素数
四元数
二重四元数
参考文献
複素数・四元数と図形の回転
自然数

自然数を作る (1)
何もないところから, 自然数を作って行きます.
集合の記号 {, }, ∈, ∪ などの意味, それから, 10 進法の数字 0, 1,
· · · , 9, 10, · · · , 99, 100, · · · · · · などの書き方は知っていると仮定し
ます.
何もないことを記号 ϕ (空集合) と書くことにします.
複素数・四元数と図形の回転
自然数

自然数を作る (1)
何もないところから, 自然数を作って行きます.
集合の記号 {, }, ∈, ∪ などの意味, それから, 10 進法の数字 0, 1,
· · · , 9, 10, · · · , 99, 100, · · · · · · などの書き方は知っていると仮定し
ます.
何もないことを記号 ϕ (空集合) と書くことにします.
空集合 ϕ だけを元とする集合 {ϕ} を考えます.
複素数・四元数と図形の回転
自然数

自然数を作る (1)
何もないところから, 自然数を作って行きます.
集合の記号 {, }, ∈, ∪ などの意味, それから, 10 進法の数字 0, 1,
· · · , 9, 10, · · · , 99, 100, · · · · · · などの書き方は知っていると仮定し
ます.
何もないことを記号 ϕ (空集合) と書くことにします.
空集合 ϕ だけを元とする集合 {ϕ} を考えます.

ϕ ϕ ですが, ϕ ∈ {ϕ} に注意します.
また, {ϕ} = ϕ ∪ {ϕ} にも注意しておきます.
複素数・四元数と図形の回転
自然数

自然数を作る (1)
何もないところから, 自然数を作って行きます.
集合の記号 {, }, ∈, ∪ などの意味, それから, 10 進法の数字 0, 1,
· · · , 9, 10, · · · , 99, 100, · · · · · · などの書き方は知っていると仮定し
ます.
何もないことを記号 ϕ (空集合) と書くことにします.
空集合 ϕ だけを元とする集合 {ϕ} を考えます.

ϕ ϕ ですが, ϕ ∈ {ϕ} に注意します.
また, {ϕ} = ϕ ∪ {ϕ} にも注意しておきます.
n という集合について, 集合 n′ を n′ = n ∪ {n} で定義します.
複素数・四元数と図形の回転
自然数

自然数を作る (1)
何もないところから, 自然数を作って行きます.
集合の記号 {, }, ∈, ∪ などの意味, それから, 10 進法の数字 0, 1,
· · · , 9, 10, · · · , 99, 100, · · · · · · などの書き方は知っていると仮定し
ます.
何もないことを記号 ϕ (空集合) と書くことにします.
空集合 ϕ だけを元とする集合 {ϕ} を考えます.

ϕ ϕ ですが, ϕ ∈ {ϕ} に注意します.
また, {ϕ} = ϕ ∪ {ϕ} にも注意しておきます.
n という集合について, 集合 n′ を n′ = n ∪ {n} で定義します.
作った集合を指すために記号 (数字) を割り当てます.
0 = ϕ, 1 = ϕ′ , 2 = ϕ′′ , 3 = ϕ′′′ , · · · · · ·
複素数・四元数と図形の回転
自然数

自然数を作る (1)
何もないところから, 自然数を作って行きます.
集合の記号 {, }, ∈, ∪ などの意味, それから, 10 進法の数字 0, 1,
· · · , 9, 10, · · · , 99, 100, · · · · · · などの書き方は知っていると仮定し
ます.
何もないことを記号 ϕ (空集合) と書くことにします.
空集合 ϕ だけを元とする集合 {ϕ} を考えます.

ϕ ϕ ですが, ϕ ∈ {ϕ} に注意します.
また, {ϕ} = ϕ ∪ {ϕ} にも注意しておきます.
n という集合について, 集合 n′ を n′ = n ∪ {n} で定義します.
作った集合を指すために記号 (数字) を割り当てます.
0 = ϕ, 1 = ϕ′ , 2 = ϕ′′ , 3 = ϕ′′′ , · · · · · ·
別の書き方をすると.
0 = ϕ, 1 = {0}, 2 = {0, 1}, 3 = {0, 1, 2}, · · · · · ·
複素数・四元数と図形の回転
自然数

自然数を作る (2:個数)
定義
空集合を ϕ, 集合 n に対して, n′ = n ∪ {n} とする. 0 = ϕ, 1 = 0′ ,
2 = 1′ , 3 = 2′ , · · · と数字で書くことにする.
定義
任意の集合 X に対して, 数字で対応させた集合 n の元と X の元の
間に 1 対 1 対応があるときに, 集合 X の元の個数は n 個であると
いう.
(例) 皿の上のリンゴと集合 3 = 0′′′ = {0, 1, 2}
の元との間に 1 対 1 対応があるときに皿の上
にリンゴが 3 個あるという.
複素数・四元数と図形の回転
自然数

自然数を作る (3:加算)
定義
自然数全体の集合 N を以下で定義する.

0∈N
n ∈ N ⇒ n′ ∈ N
上記以外の元は含まない.
定義

n, m ∈ N に対して, n + m を以下のように定義する.
n+0 = n
n + m′ = (n + m)′
1 + 1 = 0′ + 0′ = (0′ + 0)′ = (0′ )′ = 0′′ = 2
複素数・四元数と図形の回転
自然数

自然数を作る (4:乗算)

定義

n, m ∈ N に対して, n × m を以下のように定義する.
n×0 = 0
n × m′ = (n × m) + n

3 × 2 = 3 × 0′′ = (3 × 0′ ) + 3
= ((3 × 0) + 3) + 3 = (0 + 3) + 3 = 6
複素数・四元数と図形の回転
整数

整数を作る (1)

自然数 N に加算と乗算が定義出来ると, 文字変数 x に対する自然
数係数の多項式 N[x] が定義出来て, N[x] に加算と乗算が定義出来
ます.

(例)

2 + 3x, 5x + 4x2 + 6x3 ∈ N[x]
(2 + 3x) + (5x + 4x2 + 6x3 ) = 2 + 8x + 4x2 + 6x3
(2 + 3x) × (5x + 4x2 + 6x3 ) = 10x + 23x2 + 24x3 + 18x4
複素数・四元数と図形の回転
整数

整数を作る (2)
I2 = 1 である特別な数があったとすると多項式 N[I] は 2 つの自然
数で表されます.
(例) (2 + 3I) × (2 + 3I) = 4 + 12I + 9I2 = 13 + 12I

さらに, 自然数を係数に持つ 2 つの多項式 a + bI と c + dI にお
いて,
a+d = b+c
のとき等しいと考え, そのような多項式全体を Z と書き, その元を
整数と呼びます (厳密には同値関係を入れて商集合を考えます).
(例)

2 + 3I = 3 + 4I = 100 + 101I = 0 + 1I
複素数・四元数と図形の回転
整数

整数を作る (3)
命題
任意の a + bI ∈ Z ( a + bI 0) に対して, 次の条件を満たす自然数
n ∈ N ( n 0) が唯一存在する.

a + bI = n または a + bI = nI
nI を −n と書く事にすると
Z = {−n | n

0, n ∈ N} ∪ {0} ∪ {n | n

0, n ∈ N}

となる.
(例) 2 + 3I = 0 + 1I = −1, 3 + 2I = 1 + 0I = 1, 2 + 2I = 0 + 0I = 0
複素数・四元数と図形の回転
整数

整数を作る (4:減算)
定義

a + bI, c + dI ∈ Z に対して, (a + bI) − (c + dI) を
(a + bI) − (c + dI) = (a + d) + (b + c)I
で定義する.
(例) n, m ∈ N (n > m) のとき

(n + 0I) − (m + 0I) = n + mI = (n − m) + 0I
(m + 0I) − (n + 0I) = m + nI = 0 + (n − m)I = −(n − m)
5 − 3 = (5 + 0I) − (3 + 0I) = 5 + 3I = 2 + 0I = 2
3 − 5 = (3 + 0I) − (5 + 0I) = 3 + 5I = 0 + 2I = −2
複素数・四元数と図形の回転
有理数

有理数を作る (1)

整数の対の集合 Z × Z には自然に加算と乗算が定義出来ます.
定義

(a, b), (c, d) ∈ Z × Z に対して, (a, b) + (c, d) と (a, b) × (c, d) を
(a, b) + (c, d) = (a + c, b + d)
(a, b) × (c, d) = (a × c, b × d)
で定義する.

Z∗ = {z ∈ Z | z
ている.

0} とすると上記の加算と乗算は Z × Z∗ で閉じ
複素数・四元数と図形の回転
有理数

有理数を作る (2)

Z × Z∗ の 2 つの元 (a, b) と (c, d) において,
a×d = b×c
のとき等しいと考え, そのような元全体を Q と書き, 有理数と呼
a
a
ぶ. また, (a, b) ∈ Q を と書き, b = 1 のとき, を a と書く.
1
b
(例)

2
100
= (2, 3) = (100, 150) =
3
150
複素数・四元数と図形の回転
有理数

有理数を作る (3:除算)
定義
( a )−1 ( a )−1
a
b
∈ Q に対して,
を
= で定義する.
a
b
b
b
定義
a c
, ∈ Q, (c
b d

a c
÷ を
b d
a c
a ( c )−1
a d
÷ = ×
= ×
b d
b
d
b c

0) に対して,

で定義する.
(例)

2 1
2 3
6
2
÷ = × = = =2
3 3
3 1
3
1
複素数・四元数と図形の回転
有理数

ここまでのまとめ
自然数は 0 = ϕ と n′ = n ∪ {n} で作られる.
整数は I2 = 1 である変数 I の自然数係数多項式 a + bI.
a
有理数は整数の対 (a, b) = .
b
加算 (+) 乗算 (×) 減算 (−) 除算 (÷)
自然数 (N)
⃝
⃝
×
×
整数 (Z)
⃝
⃝
○
×
有理数 (Q)
⃝
⃝
⃝
⃝
各演算が矛盾なく定義されていること, 結合法則, 分配法則,
交換法則などの演算の性質についての証明を省略している.

(注意) 整数も有理数も対で定義されているが乗算の定義方法が異
なる. 整数の乗算は a + bI = (a, b), c + dI = (c, d) と書けば,

(a, b) × (c, d) = (ac + bd, bc + ad) = (ac + bd) + (bc + ad)I
複素数・四元数と図形の回転
実数

実数とは (1)
有理数 a n ∈ Q (n ∈ N) の列 {a n} で

|a m − a n| → 0 (m, n → ∞)
を満たすものをコーシー列と呼ぶ.
2 つの有理数のコーシー列 {a n}, {b n} において

|a n − b n| → 0 (n → ∞)
であるものを等しいと考え, そのような列全体を R と書き, 実数と
呼ぶ. 実数 {a n} が有理数 q ∈ Q に対して,

|a n − q| → 0 (n → ∞)
のとき {a n} を q と書く.
複素数・四元数と図形の回転
実数

実数とは (2)

k ∈ N に対して, 有理数列 {a n} を

a
 0
= k




a2 + k


n
a

 n+1 =

2 an
とすると {a n} は有理数のコーシー列である 1 .

a2 → k (n → ∞) であるので, 実数 {a n} は
n

1

どうやって証明しようか ?

√

k に対応する.
複素数・四元数と図形の回転
実数

実数とは (3:加算・乗算)
定義
実数 {a n}, {b n} に対して, {c n} = {a n} + {b n} を

cn = an + bn
で定義する.
定義
実数 {a n}, {b n} に対して, {c n} = {a n} × {b n} を

cn = an × bn
で定義する.
複素数・四元数と図形の回転
実数

実数とは (4:減算・除算)
定義
実数 {a n}, {b n}

0 に対して, {c n} = {a n} − {b n} を
cn = an − bn

で定義する.
定義
実数 {a n}, {b n}

0 に対して, {c n} = {a n} ÷ {b n} を
cn = an ÷ bn

で定義する.

{a n} ÷ {b n} を

{a n}
{b n}

と書くこともある.
複素数・四元数と図形の回転
複素数

複素数
i2 = −1 である特別な数があったとすると実数係数の多項式 R[i]
は 2 つの実数で表されます.
(例)
(2 + 3 i) × (2 + 3 i) = 4 + 12 i + 9 i2
= 4 + 12 i + 9 (i2 + 1) − 9
= −5 + 12 i
このような多項式, すなわち, i2 + 1 で割った余りが等しいときに
同等 (=) と考える多項式の集合:

R[i] / (i2 + 1) = {a + b i | a, b ∈ R}
を C と書き, その元を複素数と呼びます.

C での加算, 減算, 乗算は多項式の演算を継承します.
複素数・四元数と図形の回転
複素数

共役と長さ
複素数 x = a + bi (a, b ∈ R) に対して, a − bi を x の共役と言い,
√
x で表す. x × x を複素数 x の長さと言い, ||x|| と書く.
¯
¯

||x|| =

√

x×x=
¯

√

(a + bi) × (a − bi) =

√

a2 + b2

長さが 1 の複素数は全て

cos θ + i sin θ (θ ∈ R)
の形で表すことが出来る. そして, 長さが r ( r ≥ 0) の複素数は全て

r (cos θ + i sin θ) (θ ∈ R)
の形で表すことが出来る.
複素数・四元数と図形の回転
複素数

複素平面と極座標平面 (1)
複素数

x = a + bi = r (cos θ + i sin θ)
を 2 次元平面へ点 (a, b) と (r, θ) として表示する.

ここでは, r = 1, 0 ≤ θ ≤ π としている.
複素数・四元数と図形の回転
複素数

複素平面と極座標平面 (1)
複素数

x = a + bi = r (cos θ + i sin θ)
を 2 次元平面へ点 (a, b) と (r, θ) として表示する.

ここでは, r = 1, 0 ≤ θ ≤ π としている.
複素数・四元数と図形の回転
複素数

複素平面と極座標平面 (2)

複素数

x = a + bi = r (cos θ + i sin θ)
で,

(r, θ) ⇒ (a, b)
は, 多対一対応である.
左の動画では, r = 1, 0 ≤ θ ≤ 3π と
している.
複素数・四元数と図形の回転
複素数

複素平面と極座標平面 (2)

複素数

x = a + bi = r (cos θ + i sin θ)
で,

(r, θ) ⇒ (a, b)
は, 多対一対応である.
左の動画では, r = 1, 0 ≤ θ ≤ 3π と
している.
複素数・四元数と図形の回転
複素数

複素数の積
複素数の積 z = x × y を a( ) + b( ) i の形で表した (a, b) 平面と点と
r( ) (cos θ( ) + i sin θ( ) ) の形で表した (r, θ) 平面の点で観察する.

(a x , b x ) × (a y , b y ) = (a x a y − b x b y , a x b y + a y b x )
(r x , θ x ) × (r y , θ y ) = (r x r y , θ x + θ y )
4

7
3

6
5

2
4
3
1
2
1
0
1
6

4

2

2

(a, b) 平面

4

2

3

4

5

6

(r, θ) 平面

(例) x = 3(cos(2) + i sin(2)), y = 2(cos(0.5) + i sin(0.5)),
z = 6(cos(2.5) + i sin(2.5)).

6

7
複素数・四元数と図形の回転
複素数

複素数の積と回転移動 (1)

長さ 1 の複素数 x との積は点 y を回転した点 z を求めることに使
える.
(1, θ x ) × (r y , θ y ) = (r y , θ x + θ y )
4

3

2

1

4

2

2

4

(例) x = 1(cos(0.5) + i sin(0.5)), y = 3(cos(2) + i sin(2)),
z = 3(cos(2.5) + i sin(2.5)).
複素数・四元数と図形の回転
複素数

複素数の積と回転移動 (2)
(
平面上の点

ay
by
(

回転した点を

(

)

(

cos θ x − sin θ x
sin θ x cos θ x

の θ x 回転は行列
)
az
とすると, 次のように書ける.
bz

az
bz

)

(
=

cos θ x − sin θ x
sin θ x cos θ x

)(

ay
by

)
を用いて,

)
.

複素数の言葉では, x = cos θ x + i sin θ x , y = a y + b y i とすると

z = az + bz i
x × y = (a y cos θ x − b y sin θ x ) + (a y sin θ x + b y cos θ x ) i
と表すことができる.
複素数・四元数と図形の回転
複素数

複素数の積と回転移動 (3)
回転移動変換は行列計算でも複素数の積でも表すことができる.
どこが違うか? どちらが便利か?
行列の場合は, 点はベクトル, 変換は行列で表す. 複素数の場
合は, 点も回転も複素数で表す.
行列の一次変換

(
Ax =

a b
c d

)(

x
y

)
(ad − bc

0)

複素 (一次) 変換

f (z) =

αz + β
γz + δ

(αδ − βγ

0)

複素数にはベキ乗演算 (log,exp) が定義されている.
複素数・四元数と図形の回転
二重複素数

二重複素数
ε2 = 0 である特別な数があったとすると複素数係数の多項式 C[ε]
は 2 つの複素数で表されます.
(例)
((1 + 2 i) + (3 + 4 i)ε) × ((1 + 2 i) + (3 + 4 i)ε)
= (1 + 2 i)2 + 2((1 + 2 i)(3 + 4 i))ε + (3 + 4 i)2 ε2
= (−1 + 4 i) + 2(−5 + 10 i)ε
このような多項式, すなわち, ε2 で割った余りが等しいときに同等
(=) と考える多項式の集合:

C[ε] / (ε2 ) = {α + β ε | α, β ∈ C}
ˆ
を C と書き, その元を二重複素数と呼びます.
ˆ
C での加算, 減算, 乗算は多項式の演算を継承します.
複素数・四元数と図形の回転
二重複素数

アフィン変換 (1)
(

x′
y′

)

(
=

cos π
6
sin π
6

− sin π
6
cos π
6

)(

x
y

)

(
+

5

4

3

2

1

1

2

3

4

5

0.5
2

)
複素数・四元数と図形の回転
二重複素数

アフィン変換 (2)

2 次元平面の点 (x, y) を原点を中心に θ 回転し, (a, b) 平行移動し
た点を (x′ , y′ ) とすると
 ′  
 
 x   cos θ − sin θ a   x 

 
 ′  
 

 
 y  =  sin θ cos θ b   y 
 
 

 
 

 
 

 
 

 
 
1
0
0
1
1
二重複素数で表現すると

(cos θ + i sin θ) + (x′ + y′ i) ε
= ((cos θ + i sin θ) + (a + b i) ε) (1 + (x + y i) ε)
複素数・四元数と図形の回転
四元数

四元数
条件

i2 = j2 = k2 = i jk = −1
が成り立つ 3 つの特別な数 i, j, k を考える. この同等性 (=) を考慮
した実数係数の多項式 R[i, j, k] の集合:

{ p0 + p1 i + p2 j + p3 k | p0 , p1 , p2 , p3 ∈ R}
を H と書き, その元を四元数と呼びます.

H での演算は多項式の演算を継承します.
※ k = −(i jk)k = −(i j)k2 = i j. また, ji = −( ji)(i jk) = −k となり,
i j ji である. すなわち, 四元数の積は可換でない.
複素数・四元数と図形の回転
四元数

四元数の共役

¯
四元数 p = p0 + p1 i + p2 j + p3 k に対して, 共役四元数 p を
¯
p = p0 − p1 i − p2 j − p3 k
また, 四元数の長さ |p| を

|p| =
=

√

¯
pp
√
p2 + p2 + p2 + p2
0

1

2

3

で定義する.
※ i j = − ji = k, jk = −k j = i, ki = −ik = j であることに注意!
複素数・四元数と図形の回転
四元数

3 次元空間での回転 (1)

3 次元空間の点 (x, y, z) を z 軸
(1, 0, 0) の周りで θ 回転した点を
(x′ , y′ , z′ ) とする.
 ′  
 
 x   cos θ − sin θ 0   x 

 
 ′  
 

 
 y  =  sin θ cos θ 0   y 
 
 

 
 

 
 

 
 
 ′  
 
z
0
0
1
z
複素数・四元数と図形の回転
四元数

3 次元空間での回転 (1)

3 次元空間の点 (x, y, z) を z 軸
(1, 0, 0) の周りで θ 回転した点を
(x′ , y′ , z′ ) とする.
 ′  
 
 x   cos θ − sin θ 0   x 

 
 ′  
 

 
 y  =  sin θ cos θ 0   y 
 
 

 
 

 
 

 
 ′  
 
 
z
0
0
1
z
複素数・四元数と図形の回転
四元数

3 次元空間での回転 (2)

3 次元空間の点 (x, y, z) を原点を通
1 1
り方向ベクトル ( 2 , √ , − 1 ) を持つ
2
2

直線の周りを θ 回転した点を
(x′ , y′ , z′ ) とする

 ′ 

 x 
 x


 ′ 



 y  = A y











 ′ 

z
z












※ 回転行列 A はどうやって求める?
複素数・四元数と図形の回転
四元数

3 次元空間での回転 (2)

3 次元空間の点 (x, y, z) を原点を通
1 1
り方向ベクトル ( 2 , √ , − 1 ) を持つ
2
2

直線の周りを θ 回転した点を
(x′ , y′ , z′ ) とする

 ′ 

 x 
 x


 ′ 



 y  = A y










 ′ 


z
z












※ 回転行列 A はどうやって求める?
複素数・四元数と図形の回転
四元数

3 次元空間での回転 (3)

1.0

1.0

1.0

0.5

0.5

0.5

1.0

0.5

1.0

0.5
0.5
1.0
1.0

0.5

−→

1
 −√



2





0






1
 −√
2

−1
2
1
√
2
1
2

0.5
1.0

−→

1.0

1
2
1
√
2
−1
2

−1


















 cos θ


 sin θ




0

0.5

1.0
1.0

0.5

−→

1.0

− sin θ
cos θ
0


1
 −√



2





0






1
 −√


0 



0 



1

1
√
2
1
2

2

2

−1
2
1
√
2
1
2

1
2
1
√
2
−1
2






  cos θ


  sin θ







0


− sin θ
cos θ
0

0
0
1


1
 − √

2







0





 − 1

√
2

−1
2
1
√
2
1
2

1
2
1
√
2
−1
2

0.5

1.0

−1
2

1
2
1
√
2
−1
2

回転軸を z 軸に移動して z 軸周りに回転して元に戻す.

1
 −√



2





0
A=





1
 −√

0.0 0.0
0.0

0.5
0.5

0.5

1.0

0.5

1.0

0.0 0.0
0.0

0.5

0.5

1.0

0.5

1.0

0.0 0.0
0.0
0.5

1.0

1.0

0.5

1.0

0.0 0.0
0.0
0.5

0.5

1.0

0.5

1.0

1.0

−1



































0.5
1.0
複素数・四元数と図形の回転
四元数

四元数と回転 (性質)
3 次元空間の点 (x, y, z) を原点を通り方向ベクトル (a, b, c)
(a2 + b2 + c2 = 1) を持つ直線の周りを θ 回転した点を
(x′ , y′ , z′ ) とする. このとき, 四元数 p を
p = cos

θ
θ
+ (a i + b j + c k) sin
2
2

とするとき,

0 + x′ i + y′ j + z′ k
¯
= p (0 + x i + y j + z k) p
となる. すなわち, 回転変換を四元数を掛けることで計算出来る.
複素数・四元数と図形の回転
四元数

四元数と回転 (計算例)
2π
点 (x, y, z) = (1, 0, 0) を z 軸 (a, b, c) = (0, 0, 1) の周りを
回転した点
3
√
√
2π
3
3
2π
1
π
1
π
は (cos
, sin , 0) = (− ,
, 0) である. cos = , sin =
で
3
3
2 2
3
2
3
2
あるので, j = ki = −ik, kik = jk = i に注意すると
√
√
1
1
3
3
p= +
(0 i + 0 j + 1 k) = +
k より,
2
2
2
2
¯
p (0 + x i + y j + z k) p =
=
=
=

¯
p (0 + 1 i + 0 j + 0 k) p
√
√
1
3
1
3
( i+
ki)( −
k)
2
2
2
2
√
√
1
3
3
3
i−
ik +
ki − kik
4
4
4
4
√
3
1
0+− i+
j+0k
2
2
複素数・四元数と図形の回転
四元数

四元数と回転 (公式)
θ
a, b, c, x, y, z ∈ R に対して p = cos 2 + (a i + b j + c k) sin
¯
p (0 + x i + y j + z k) p を Mathematica で計算する.

θ
2

とし,

p = Quaternion[Cos[θ/2], a Sin[θ/2], b Sin[θ/2], c Sin[θ/2]];
p ** Quaternion[0, x, y, z] ** Conjugate[p] // FullSimplify
Quaternion[0,

1
((x(−a2 + b2 + c2 + 1) − 2a(by + cz)) cos θ + x(a2 − b2 − c2 + 1)
2
+2a(by + cz) + 2(bz − cy) sin θ),
1 2
((a y − 2abx − b2 y − 2bcz + c2 y + y) cos θ + a2 (−y) + 2abx
2
+2(cx − az) sin θ + b2 y + 2bcz − c2 y + y),
1
((z(a2 + b2 − c2 + 1) − 2c(ax + by)) cos θ − z(a2 + b2 − c2 )
2
+2c(ax + by) + (2ay − 2bx) sin θ + z)]
複素数・四元数と図形の回転
四元数

四元数の積と行列の積 (1)

3 つの四元数が pi , qi , ri ∈ R (0 ≤ i ≤ 3) で,
r0 + r1 i + r2 j + r3 k = (p0 + p1 i + p2 j + p3 k) (q0 + q1 i + q2 j + q3 k)
を満たすとき,

 r0


 −r


1



 −r2




−r3

r1
r0
r3
−r2

r2
−r3
r0
r1

r3
r2
−r1
r0

 
  p0
 
 
  −p
 
 
1
=
 
 
 
  − p2
 
 
 
− p3

p1
p0
p3
− p2

p2
− p3
p0
p1

p3
p2
− p1
p0


  q0


  −q


1




  −q2



−q3

q1
q0
q3
−q2

q2
−q3
q0
q1

q3
q2
−q1
q0

となり, 四元数と 4 × 4 実行列, 四元数の積と行列の積が対応する.
※ 左上の 2 × 2 行列が複素数の積に対応している.
















複素数・四元数と図形の回転
四元数

四元数の積と行列の積 (2)
3 つの四元数が pi , qi , ri ∈ R (0 ≤ i ≤ 3) で,
r0 + r1 i + r2 j + r3 k = (p0 + p1 i + p2 j + p3 k) (q0 + q1 i + q2 j + q3 k)
を満たすとき, α0 = p0 + p1 i, α1 = p2 + p3 i, β0 = q0 + q1 i,
β1 = q2 + q3 i, γ0 = r0 + r1 i, γ1 = r2 + r3 i とすると
αi , βi , γi ∈ C (i = 0, 1) で,

(

γ0 γ1
−γ1 γ0

)

(
=

α0 α1
−α1 α0


)
 β0 β1 








−β1 β0

となり, 四元数と 2 × 2 複素行列, 四元数の積と行列の積が対応
する.
複素数・四元数と図形の回転
四元数

四元数の性質
p2 = −1 となる四元数 p = p0 + p1 i + p2 j + p3 k は無限にあり,
p0 = 0, p2 + p2 + p2 = 1 を満たす.
1

2

3

次の 2 つの四元数の集合を定義する.

H1 = { p ∈ H | | p| = 1}
T = { p1 i + p2 j + p3 k | p1 , p2 , p3 ∈ R}
とする. φ( p) : T → T を

φ(p)(x) = px p
¯
で定め, T = R3 と考えると φ( p) は R3 上の線形写像 (各成分は
p1, p2, p3 の 1 次式) なので, 3 × 3 の実行列と考えることが出来る.
複素数・四元数と図形の回転
四元数

四元数と行列の群
M3 (R) を 3 × 3 実行列全体の集合, M2 (C) を 2 × 2 複素行列全体の
集合とするとき 3 次の特殊直交行列, 2 次の特殊ユニタリ行列の集
合を, それぞれ
SO(3) = { A ∈ M3 (R) | det(A) = 1}
SU(2) = { A ∈ M2 (C) | det(A) = 1}
とする.
四元数 p ∈ H を 2 × 2 複素行列と考えると H1 = SU(2) であるこ
とがわかる. また, φ : SU(2) → M3 (R) において,

Im(φ) = {φ( p) | p ∈ T} = SO(3)
Ker(φ) = {p | φ( p) = 1} = {±1}
がわかり, SO(3) H1 /{±1} となる. このことは, 四元数 p ∈ H1 が
長さも対称性も変えない直交変換に 2 : 1 で対応していることを
示している.
複素数・四元数と図形の回転
二重四元数

二重四元数

四元数係数の ε を変数とする多項式を ε2 で割った多項式の集合は
2 つの四元数で表されます. ε2 = 0 である特別な数があることに
対応します.

H[ε] / (ε2 ) = { p + q ε | p, q ∈ H}
ˆ
を H と書き, その元を二重四元数と呼びます.
ˆ
H での加算, 減算, 乗算は多項式の演算を継承します.
複素数・四元数と図形の回転
二重四元数

アフィン変換 (3)
3 次元平面の点 (x, y, z) を (a, b, c) 平行移動した点を (x′ , y′ , z′ ) と
すると
 ′  
 
 x   1 0 0 a  x 

 
 
 ′  

 
 
 y   0 1 0 b  y 
 

 

 
 
 ′ =
 

 
 
 z   0 0 1 c  z 
 

 
 

 
 

 
 

 
 
1
0 0 0 1
1
二重四元数で考えると p = 1 + (

a
b
c
i + j + k) ε とすると
2
2
2

1 + (x′ i + y′ j + z′ k) ε = p (1 + (x i + y j + z k)ε) p
¯
という対応があることがわかる.
複素数・四元数と図形の回転
二重四元数

二重四元数 (まとめ)

3 次元空間の点 (x, y, z) を原点を通り方向ベクトル (a, b, c)
(a2 + b2 + c2 = 1) を持つ直線の周りを θ 回転し, さらに, (a0 , b0 , c0 )
平行移動した点を (x′ , y′ , z′ ) とする. このとき, 二重四元数 p を
p = (1 + (

a0
2

i+

b0
2

j+

c0
2

k)ε)(cos

θ
θ
+ (a i + b j + c k) sin )
2
2

とするとき,

¯
1 + (x′ i + y′ j + z′ k) ε = p (1 + (x i + y j + z k) ε) p
となる. すなわち, 回転変換と平行移動を二重四元数を掛けること
で計算出来る.
複素数・四元数と図形の回転
参考文献

参考文献 I
安生健一, 単位 4 元数空間, コンピュータグラフィ
ックスにお
ける被覆の応用, 数学セミナー, 1 月号, pp.38–44, 2013.
彌永昌吉, 数の体系 (上・下), 岩波新書, 1978.
G.Matsuda, S.Kaji, H.Ochiai, Anti-commutative Dual Complex
Numbers and 2D Rigid Transformation, Mathematical
Progress in Expressive Image Synthesis, MI Lecture Note,
Vol.50, pp.128–133, 2013.

若山正人 (編), 可視化の技術と現代幾何学, 岩波書店, 2010.
志村五郎, 数学をいかに使うか, ちくま学芸文庫, 2010.
L.Kavan, S.Dobbyn, S.Collins, J.Zara, C.O’Sullivan, Geometric
Skinning with Approximate Dual Quaternion Blending, ACM
Transaction on Graphics, 2008, 27(4), 105.

More Related Content

複素数・四元数と図形の回転