「群とは」 では算法を1つ持つ代数系の分類について説明しました。 ここでは、加法と乗法の2つを持つ代数系の分類について説明します。 このような代数系の分類として、環・体などがあります。
ある代数系(A,{+, ×})に対して、以下の条件を考えます。 (+ を加法、× を乗法と呼びます。)
代数系Aが 1. 2. 3. を満たすとき、環(ring)とよび、 1. 2. 4. を満たすとき、体(field)と呼びます。 また、これらは、乗法に関して可換であるとき、可換環・可換体と呼びます。 (ただし、可換なもののみを体と呼び、非可換なものは斜体と呼ぶ流儀もあります。) 慣例的に、環は R で、体は K で表すことが多いです。 (体の K はドイツ語の Körper の頭文字から取ったものらしい。)
加法に関する単位元を零元(zero element)と呼び、0 で表します。 また、環・体は、加法もしくは乗法のどちらか一方のみに注目する場合、以下のような書き方をします。
さらに、A× から零元を除いたものを A* と表します。
代数系 A が体をなすとき、A* は群をなします。
環 R の非0の元 x に対して、ある非0元 y があって、 xy = 0 を満たすとき、x を零因子(zero divisor)と呼びます。 環 R が零因子を持たないとき、R を整域(integral domain)と呼びます。
よく知られている集合のうちで、環・体になっているものをいくつか例に挙げて紹介します。
有理数 Z は可換環になります。 整数は乗法に関する逆元が存在しない(1 / 2 は整数ではない)ので、 体になりません。
有理数 Q、 実数 R、 複素数 C はいずれも可換体になります。
自然数は加法に関しても逆元が存在しないので、環にもなりません。
n 次元正方行列 M(n) は非可換環になります。
a, b, c ∈ M(n) とすると、
(体 → 体 の任意の線形写像でも構わないんですが、話を簡単にするため、) 実数 → 実数 の線形写像 F(R) を考えます。 f, g ∈ F(R) の加法・乗法を、
で定めると、これは非可換環になります。 写像の合成は結合法則を満たしますし、 線形写像の場合、 f × (g1 + g2) = f(g1(x) + g2(x)) = f(g1(x)) + f(g2(x)) = f × g1 + f × g2 が成り立つので、分配法則も成り立ちます。 また、 零元は f(x) = 0、 単位元は恒等写像 f(x) = x です。
超関数 f, g に対して加法および乗法を、
で定義すると、可換体になります。 零元は f(x) = 0、 単位元はδ関数です。
正の実数 P = {x | x ∈ R ∧ x > 0} に対して、 加法 +P および乗法 ×P を
で定義すると可換体となります。
ちなみに、この体 {P, {+P, ×P}} は写像 f(x) = log x によって、
となるので、実数体 {R, {+, ×}} と同型になります。
有理数や実数など以外にも、様々な体が存在します。 このような体の例をいくつか紹介します。
複素数は、i2 = -1 となる数 i と、2つの実数 a, b を使って a + i b となるような数を作ったものです。 これと同様に、j2 = -1 となる数 j と、2つの複素数 α, β を使って α + jβ* となるような数を作ることができます。 (x* は x の共役複素数。) このような数はハミルトンの4元数(Hamiltonian quaternion、ハミルトンは人名)、あるいは単に4元数(quaternion)と呼ばれています。 4元数は非可換体になります。
4元数は、2つの虚数単位 i, j および4つの実数 a, b, c, d を使って、 a + i b + j c + ij d とも書き表すことができます。 あるいは、k = ij と置いて、 a + i b + j c + k d と書き表します。 i, j, k の間には以下のような関係式が成り立っています。
4元数という言葉は、4つの実数(4元)から作られた数という意味です。
4元数 a + i b + j c + k d は、 1つのスカラー x = a と 1つのベクトル u = (b, c, d) を使って、 (x, u) と書き表すことがあります。 x の部分をスカラー部、 u の部分をベクトル部と呼びます。 ベクトル部が 0 のとき、 4元数 (x, 0) を実数と同一視し、 単に x で書き表します。 このような形式を用いることで、以下に述べるように、 加減乗除などの計算が簡単に書き表すことができます。
まず、4元数の加減算は非常に単純で、以下のようになります。
次に、乗算ですが、
なので、ベクトル表現では以下のようになります。
ただし、ベクトル間にある ・ はベクトルの内積、 × は外積を表します。 u × v の部分が非可換なので、 4元数の積は非可換になります。
4元数 α = (x, u) に対して、 実数 √ を α の絶対値と呼び、 |α| で表します。
また、4元数 α = (x, u) に対して、 (x, -u) で表される4元数を、 共役な4元数と呼び、α* で表します。
4元数 α とその共役4元数を掛け合わせると、
というように、絶対値の2乗になります。
このことから、
| α* |
| |α|2 |
| α* |
| |α|2 |
となるので、α が非 0 のとき、
必ず逆数が存在し、
と表せます。
したがって、4元数は非可換体になります。
α* |α|2
複素数を使って2次元空間上の(原点中心の)回転を表すことができました。 すなわち、複素数 a + ib を2次元ベクトル a, b とみなし、 cosθ + isinθ を掛けることで角度 θ の回転計算を行うことができます。 これと同様に、4元数を使うと、3次元空間上の(原点を含む軸中心の)回転を表すことができます。
まず、3次元空間上の回転というものがどういう式で表されるかについて説明します。 3次元空間上の回転を表すためには、回転軸ベクトル p と回転角度 θが必要になります。 回転軸ベクトルの絶対値は意味を持たないので、|p| = 1 であるものとしてます。
座標ベクトル u で表される点 A を、回転軸 p を中心に角度 θ 回転した点 A' の座標ベクトル u' は、以下のような計算で求めることができます。
ちなみに、この式の導出の仕方ですが、下図のようになります。
原点を O、点 A から回転軸におろした垂線の足を H とすると、
となります。
また u×p は、
p および
と表すことができるので、先ほど示した式を導き出すことができます。
以上のことを踏まえた上で、本題の4元数を使った回転の話に入ります。 まず、絶対値が 1 になるような4元数を用意します。 絶対値が 1 の4元数 Σ は以下のように、 絶対値 1 の3次元ベクトル p と角度 θ を用いて表すことができます。
| θ |
| 2 |
| θ |
| 2 |
そして、この4元数を以下のようにして他の4元数 α = (x, u) に掛けます。
| θ |
| 2 |
| θ |
| 2 |
| θ |
| 2 |
| θ |
| 2 |
このままだと少し計算が面倒なので、いったん Σ = (y, v) と置いて計算します。
この式に、
| θ |
| 2 |
| θ |
| 2 |
| θ |
| 2 |
| θ |
| 2 |
| θ |
| 2 |
| θ |
| 2 |
| θ |
| 2 |
などの関係式を代入すると、
となります。 この式のベクトル部ですが、先ほど説明した3次元ベクトルの回転の式と一致しています。 すなわち、絶対値 1 の4元数 Σ を用意し、 Σ* α Σ という計算をすることで、 3次元ベクトルの回転をすることができます。
4元数そのものはそれほど使い道のあるものではないんですが、 4元数の発見は歴史的には大きな意味のあるものだったそうです。
まず、4元数は非可換体です。 4元数が発見される以前、有理数・実数・複素数などの体はいずれも可換なものでした。 また、後述する整数の剰余環なども可換体です。 初めて見つかった非可換な体ということで、そのインパクトは非常に大きなものがあります。
さらに、4元数の研究を通じてさまざまな分野が発展しました。 まず、4元数のベクトル部の研究からベクトル代数・ベクトル解析というものが生まれました。 また、4元数の非可換性の研究から行列式などが派生しました。
ちなみに、複素数から4元数を作った手順と同様の手順で8元数や16元数と呼ばれる数を作ることもできます。 名前の通り、8元数は8つの実数から、16元数は16個の実数からなる数です。 ただし、8元数および16元数は積に関して結合法則がなりたたないため体ではありません。 さらに、16元数は零因子も持っています。
回転軸と回転角度を指定するんじゃなくて、 球面上の点 a を別の点 b に移すような回転を考えるなら、以下のような式でできます。
簡単化のため、 a, b は単位球面上の点 (|a| = |b| = 1) とします。 回転軸 p は
| a × b |
| |a × b| |
回転角 θ は
になるので、結局、 所望の変換 u → u' は、
とおいて、
| 1 |
| 1 + c |
になります。
整数は環、有理数や実数などは体となりますが、 これらはいずれも無限集合です。 これに対して、有限集合となるような体も存在します。 このような体を有限体(finite field)またはガロア体(Galois field)と呼びます。 (ガロアは人名。現在の群論・体論・代数論の基礎を築いた数学者。 情報系の分野ではガロア体と呼ばれる場合が多い。)
ここでは、この有限体の例として、 整数の剰余環を紹介します。
0 から N-1 までの整数 a, b に対して、以下のようにして加法と乗法を定めます。
mod N は N で割ったあまりを表します。 このようにして作った代数系を整数の剰余環と呼び、 Z/NZ と表します。 (この記法がどういう意味なのかは、剰余体を説明する際に述べます。)
例として、Z/4Z の加算および乗算の結果の表を示します。
表1: Z/4Z 加算表
| 0 | 1 | 2 | 3 | |
|---|---|---|---|---|
| 0 | 0 | 1 | 2 | 3 |
| 1 | 1 | 2 | 3 | 0 |
| 2 | 2 | 3 | 0 | 1 |
| 3 | 3 | 0 | 1 | 2 |
表2: Z/4Z 乗算表
| 1 | 2 | 3 | |
|---|---|---|---|
| 1 | 1 | 2 | 3 |
| 2 | 2 | 0 | 2 |
| 3 | 3 | 2 | 1 |
Z/NZ は環になっています。 加法・乗法ともに結合法則が成り立ち、単位元が存在しています。 加法に関しては、任意の元 a に対して -a = N - a となり、逆元がただ1つ必ず存在します。 乗法に関しては、必ずしも逆元を持つとは限ず、零因子は持つ場合もあります。 先ほど例に挙げた Z/4Z では、2 が零因子になっています(2×2 (mod 4) = 4 (mod 4) = 0)。
Z/NZ の元 a が逆元を持つための条件を考えるために、まず、以下のような定理を紹介します。
整数係数 a, b, c を持つ不定方程式、
ax + by = cが整数解を持つための必要十分条件は、 gcd(a, b) = c となることである。 (ただし、gcd(a, b) は a, b の最大公約数。)
この定理の証明は省略しますが、 a, b がともにある整数 n の倍数のとき、 x, y の値が何であろうと、ax + by の値も必ず n の倍数になるので、直感的になんとなく分かってもらえるのではないかと思います。
ここで、この定理の式を少し書き換えて見ます。 まず、b を N で置き換え、c は1に固定します。
そして、両辺、N で割ったあまりを取ります。
結果的に何が言えるかというと、 a と N が互いに素(最大公約数が1)のときに限り、 不定方程式 ax ≡ 1 (mod N) が解を持つということになります。
この解 x は、Z/NZ における a の乗法に関する逆元ということになりますので、 a は N と互いに素な場合にのみ逆元を持つという結論が得られます。
Z/NZ の元は、N と互いに素な場合にのみ乗法に関する逆元を持ちます。 これは言い換えると、N が素数 p である場合には、 Z/pZ のすべての元が乗法に関する逆元を持つことになります。 すなわち、Z/pZ (p は素数)は体をなします。 このようにして得られた体を整数の剰余体(residual field)と呼びます。
例として、剰余体 Z/3Z、Z/5Z、Z/7Z の乗算結果の表を示します。
表3: Z/3Z 乗算表
| 1 | 2 | |
|---|---|---|
| 1 | 1 | 2 |
| 2 | 2 | 1 |
表4: Z/5Z 乗算表
| 1 | 2 | 3 | 4 | |
|---|---|---|---|---|
| 1 | 1 | 2 | 3 | 4 |
| 2 | 2 | 4 | 1 | 3 |
| 3 | 3 | 1 | 4 | 2 |
| 4 | 4 | 3 | 2 | 1 |
表5: Z/7Z 乗算表
| 1 | 2 | 3 | 4 | 5 | 6 | |
|---|---|---|---|---|---|---|
| 1 | 1 | 2 | 3 | 4 | 5 | 6 |
| 2 | 2 | 4 | 6 | 1 | 3 | 5 |
| 3 | 3 | 6 | 2 | 5 | 1 | 4 |
| 4 | 4 | 1 | 5 | 2 | 6 | 3 |
| 5 | 5 | 3 | 1 | 6 | 4 | 2 |
| 6 | 6 | 5 | 4 | 3 | 2 | 1 |
2 も素数ですから、Z/2Z も剰余体になります。 Z/2Z の元は 0 と 1 の2つだけで、 加算および乗算は以下のようになります。
表6: Z/2Z の加算・乗算
| a | b | a + b | a × b |
|---|---|---|---|
| 0 | 0 | 0 | 0 |
| 1 | 0 | 1 | 0 |
| 0 | 1 | 1 | 0 |
| 1 | 1 | 0 | 1 |
情報系の方ならこの表に見覚えがあるんじゃないでしょうか。 1 を真(true)、0 を偽(false)とみなせば、 Z/2Z の加算は XOR、 乗算は AND 演算になっています。
表7: XOR と AND
| a | b | a XOR b | a AND b |
|---|---|---|---|
| 0 | 0 | 0 | 0 |
| 1 | 0 | 1 | 0 |
| 0 | 1 | 1 | 0 |
| 1 | 1 | 0 | 1 |
要するに、論理値 {true, false} に対して、XOR で和を、AND で積を定義した代数系は 剰余体 Z/2Z と同型な体になります。 このような体は、情報分野ではよく使われていて、 ブール体(Boolean field)などと呼ばれ、B で表されます。 (論理代数の考案者 George Boole の名から付いた名前。)
群の位数と同様に、 環・体に対しても、 その元の数(正確には濃度)を位数(order)と呼び、 |K| というように表します。
これも群同型と同様、 環・体にも同型の概念があります。 環として同型であることを環同型(ring isomorphic)、 体として同型であることを体同型(field isomorphic)と呼びます。
同型の条件はもちろん、 集合として同値であり、 さらに、算法の結果にも1対1の対応が取れることです。 すなわち、環の場合には、 二つの環 {R, {+R, ×R}} , {S, {+S, ×S}} の間に、 全単写 f : R → S で、 任意の a, b, c ∈ R に対して、 条件
を満たすものが存在するとき、2つの環は環同型であるといいます。 体の場合も同様です。
有限体関係の説明は別ページに移動。 リンクを張る。