5次方程式の解を巡る旅 〜多項式の既約性判定編〜

Galois理論活用の難しさ

一般の5次方程式に代数的な解の公式が存在しないというのは有名な事実である。これはGalois理論に深く関連する話題であるが、これ自体はGaloisによって証明されたものではない[1]。Galois理論の面白さは、代数方程式が解けるための条件を与えてくれる点にある。すなわち、Kを体とし、f(x)をK上の多項式とする。f(x)の最小分解体をLとすれば、 f(x)=0という方程式が代数的に解けるための必要十分条件 \mathrm{Gal}(L/K)が可解群になることである。この事がGalois理論により導かれるのである[2]。

Galois理論はこのように興味深く重要な理論なのであるが、具体的な多項式を目の前にしてその可解性を論じようとすると、たちどころに手が止まってしまう。すなわち、理論としてGalois群と方程式の可解性の間に深い関係があることは分かったものの、それを具体的な問題にどう活用したら良いのかが自明でないのである。

そこで、本稿では考察の対象を \mathbb{Q}上5次の代数方程式に絞ってこの問題にアプローチしてみることにする。対象をこのように絞る理由は、あまり風呂敷を広げすぎても収集がつかなくなるのと、有理数体は素体であり、最も基本的かつ重要な体の1つと考えられるためである。

恐らく話が長くなるので、記事を何回かに分けることにする。今時点で頭に思い描いている全体のストーリーはあるが、深く考えていく中で書きたいことが変わる可能性があるので、目次は敢えて書かない。

Galois理論と多項式の既約性

ある具体的な多項式 f(x) \in \mathbb{Q}[x]の可解性について考えるとき、多くの文献では \mathbb{Q}上既約な多項式を扱うことが多いように思う。その理由は、可約多項式であれば因数分解された次元の低い多項式の可解性をそれぞれ考えればよいためだと思われる。

これは確かに一理あるのだが、ちょっと待って欲しい。実際にある具体的な多項式を目の前にして、それが既約であるかどうかというのは簡単に判定できるものなのだろうか?代数学を勉強したことがある人であれば、すぐに「Eisensteinの既約判定法を使えばよいのでは?」と思うことだろう。これは確かに一つの手である。しかし、Eisensteinの既約判定法に述べられている条件は、多項式が既約であるための十分条件であって必要十分条件ではないのである。つまり、本当は既約多項式なのに、Eisensteinの既約判定法ではそれが判定できないものが存在する。

これは困った。なぜなら、多項式の既約性とGalois群の構造の間には密接な関係があり、既約性が正確に判定できないとGalois群の決定が難しくなるからである。

既約性判定アルゴリズム

これについていろいろと調べてみたところ、 \mathbb{Q}上の多項式であれば既約性を判定するアルゴリズムが存在することが分かった。そもそもsageにis_irreducible関数が実装されているのだから、当然と言えば当然である[3]。

しかし、これがなかなかに難解なのである。その全容を説明することは今の私にはできないし、また紙面の都合もある。そのため、本稿ではアルゴリズムの概観を紹介し、多項式の既約性を決定的に判定する方法が存在するのだという点について、可能な限り納得感を得られるように努めてみる。

前処理

この後に述べる既約性判定アルゴリズムでは、入力として \mathbb{Z}上のmonicな多項式を与える必要がある。そのため、 f(x) \in \mathbb{Q}[x]に対して適切な前処理を施しておく必要がある。これについて f(x) = \frac{3}{4}x^2 + \frac{3}{2}x - \frac{6}{5}を例に説明する。

やることは3つある。1つ目は分母の最小公倍数を括り出すことである。先ほどの例の場合、 f(x) = \frac{1}{20}(15x^2 + 30x - 24)となる。2つ目は分子の最大公約数を括り出すことである。先ほどの例の場合、 f(x) = \frac{3}{20}(5x^2 + 10x - 8)となる。

ここまでの操作で f(x) = C g(x)\ (C \in \mathbb{Q},\ g(x) \in \mathbb{Z}[x])という形式に変換できた。あとはg(x)をmonicな多項式に変換できれば良い。そのためには、 g(x) = \sum_{i=0}^{n} a_i x^i\ (a_n \neq 0)に対して h(x) = a_n^{n-1} g\left(\frac{x}{a_n}\right)とすれば良い。先ほどの例の場合、 h(x) = 5\left(5\left(\frac{x}{5}\right)^2 + 10\frac{x}{5} - 8\right) = x^2 + 10x - 40となる。

このようにして得られたh(x)に対して後述のアルゴリズム適用すると、 \mathbb{Z}上既約かどうか判定できる。 \mathbb{Z}上既約であればGaussの補題により \mathbb{Q}上既約となる[4]。さらに、f(x)からh(x)を得た操作では既約性は不変であるため、h(x)が \mathbb{Q}上既約であればf(x)も \mathbb{Q}上既約となる。

アルゴリズムの流れ

 f(x) \in \mathbb{Z}[x]をmonicな多項式とする。f(x)の \mathbb{Z}上での既約性を判定するアルゴリズムの流れは以下のようになる[5][6][7]。

  1. f(x)がsquare freeであるかどうかを調べる。もしsquare freeでなければf(x)は可約なので処理を終える。
  2. pを素数とする。f(x)の各係数をmod pで写して得られる多項式 F_p上でもsquare freeになるようなpを見つける。
  3. f(x)を F_p上で因数分解する。つまり、 f(x) \equiv f_{1, 1}(x)f_{1, 2}(x) \cdots f_{1, m}(x) \pmod{p}を求める。もしf(x)が F_p上既約ならば \mathbb{Q}上既約なので処理を終える。
  4.  f_i(x)\ (i=1, 2, \cdots , m)にHensel liftingを繰り返し適用し、 2B_{lm} < p^a\ (a \in \mathbb{N})を満たすような p^aを法とした時の分解を求める。すなわち、 f(x) \equiv f_{a, 1}(x)f_{a, 2}(x) \cdots f_{a, m}(x) \pmod{p^a}を求める。ただし、 B_{lm}はLandau-Mignotte boundと呼ばれる値で、 B_{lm}=2^{\mathrm{deg}(f)}\|f\|_2である。 \|f\|_2はf(x)の係数の2乗和の平方根を表す。
  5.  f_{a, i}(x)\ (i=1, 2, \cdots , m)からいくつかを選んで掛け合わせる。そうして得られた関数の各係数を \bmod p^aで写す。このとき、もし値が p^a/2より大きければ p^aを引く。これが \mathbb{Z}[x]でf(x)を割り切ればf(x)は可約である。もし (全部選ぶというパターンは除いて) 全ての f_{a, i}(x)の組み合わせについてf(x)を割り切ることがなければf(x)は既約である。

ただし、これは多項式因数分解するためのアルゴリズムであるBerlekamp-Zassenhausアルゴリズムを、私が既約性判定用にアレンジしたものであるのでご注意願いたい。

以下でそれぞれのステップのポイントについて説明する。

Square free判定

f(x)がsquare freeであるとは、 f(x) = \{f_1(x)\}^{a_1}\{f_2(x)\}^{a_2} \cdots \{f_l(x)\}^{a_l}と既約多項式の積に分解したときに、 a_1 = a_2 = \cdots = a_l= 1となることである。 \mathbb{Q}上の多項式がsquare freeかどうかを判定するのは簡単である。すなわち、 \mathrm{GCD}(f(x), f'(x))が定数であればsquare freeである。

1つだけ例を上げよう。 f(x) = x^3 - x^2 - 5x - 3がsquare freeかどうかを判定してみる。GCDを求めるにはEuclidの互除法を使えば良い。 f'(x) = 3x^2 - 2x - 5なので、f(x)をf'(x)で割ると以下のようになる。

 \displaystyle{
x^3 - x^2 - 5x - 3 = (3x^2 - 2x - 5)\left(\frac{1}{3}x - \frac{1}{9} \right) - \frac{32}{9}(x + 1)
}

さらに 3x^2 - 2x - 5 x + 1で割ると以下のようになる。

 \displaystyle{
3x^2 - 2x - 5 = (x + 1)(3x + 5)
}

 \mathbb{Q}上の多項式における互除法では定数倍に意味はないので、 x + 1による割り算を行ったことに注意されたい[8]。以上により、 \mathrm{GCD}(f(x), f'(x)) = x + 1である。これは定数ではないため、f(x)はsquare freeではないことが分かった。実際、 f(x) = (x+1)^2(x-3)である。

なお、GCDの計算にさらっとEuclidの互除法を使ったが、これが可能なのは任意の体上の多項式環がEuclid整域となるからだという点を申し添えておく[9]。

既約性判定アルゴリズムでは F_p上でもsquare free判定をする必要があるが、これはちょっと工夫が要るようである。詳しくは[10]を参照されたい。

pの見つけ方

一般にf(x)がsquare freeであっても、それがmod pの世界でもsquare freeとは限らない。例えば、 f(x) = x^2 + 2x + 6はEisensteinの判定法により既約なので、square freeである。しかし、 f(x) \equiv x^2 + 2x + 1 \equiv (x+1)^2 \pmod{5}となり、これはsquare freeではない。

既約性判定アルゴリズムでは、f(x)がmod pの世界でもsquare freeになっていなければならないので、そのようなpを何とかして見つける必要がある。実は、これはそんなに悩む必要は無くて、有限個のpを除けばmod pの世界でもsquare freeとなるようである。証明はいまいち理解出来ていないが、[6]の命題6.36にヒントがある。

 F_pでの因数分解

これについては検索すると山のように論文なりブログなりが出てくる。特に[10]に分かりやすくまとまっているようなので、興味のある方はそちらを参照されたい。

 \mathbb{Q}上の既約性と F_p上の既約性の関係

一般に F_p上既約であれば \mathbb{Q}上既約となるが、逆は成り立たない。証明は[11]などを参照されたい。

Hensel lifting

Hensel liftingとは、Henselの補題を用いて \bmod p^kにおける多項式の根から \bmod p^{k+1}における根を帰納的に導出していく手続きである[12]。と、Wikipediaには記載されているが、実は多項式因数分解に関係する別バージョンが存在する[5][13][14]。Henselの補題 (別バージョン) の内容を[5]より引用する。

Henselの補題 (別バージョン)
Fを整係数一変数多項式、pは p \nmid lc(F)となる素数とし、 G_1 H_1はpを法とする有限体上の互いに素な多項式とするとき、

 \displaystyle{
F(x) \equiv G_1(x)H_1(x) \pmod{p}
}

であるならば、任意の正整数kに対して、

 \displaystyle{
\begin{eqnarray}
&& F(x) \equiv G_k(x)H_k(x) \pmod{p^k} \\
&& G_k \equiv G_1,\  H_k \equiv H_1 \pmod{p}
\end{eqnarray}
}

を満たす G_k H_kが存在する。

ここで、(定義が書かれていないので推測だが) lc(F)というのは多項式Fのleading coefficientを意味するのだと思われる。Leading coefficientというのは、要するに最高次の係数のことである。これがpで割りきれてしまうとmod pで写したときに次元が落ちてしまうので、そのようなケースを除外しているのである。もっとも、今考えているケースでは多項式はmonicであり、常に lc(F)=1となるのであまり気にする必要はない。

別バージョンを利用することで、Hensel liftingもそれに沿った形で行うことができる。具体的な G_k, H_kの求め方は[5]の証明や[15]が参考になる。この別バージョンのHensel liftingを無限に適用することで、 F_pにおける多項式因数分解をp進整数環 \mathbb{Z}_pにまで持ち上げる事ができる。

p進整数の近似

最終ステップでは本来 \mathbb{Z}_p上でのf(x)の分解が必要なのだが、実際のコンピュータで計算する際にはHensel liftingを無限に行うことはできないし、p進整数を誤差なく扱うことも困難である。すなわち、実際に扱うことができるのはp進整数の近似値だけである。

しかし、実はある程度の精度で近似値が得られれば、そこから多項式因数分解を厳密に行える事が知られている。この精度はLandau-Mignotte boundと呼ばれる値により規定されるようである。

組み合わせ計算複雑性

最終ステップでは f_{a, i}(x)\ (i=1, 2, \cdots , m)の組み合わせを全て計算して係数を調べる必要があるが、これは時間計算量が O(2^m)の処理であり、一般には極めて重いアルゴリズムである。しかし、これを多項式時間で行うことができるアルゴリズムも存在するようである[7]。私には難しくてとても理解出来なかったが、興味のある方はぜひチャレンジしてみて欲しい。

既約性判定の例

せっかくなので1つ例を見てみよう。ここでは以下の多項式 \mathbb{Z}上での既約性を判定してみる。

 \displaystyle{
f(x) = x^5 + 2x^4 - 7x^3 + 18x^2 + 2x - 4
}

以下でアルゴリズムのステップを順に実行してみよう。

Step 1

計算は省略するが、 \mathrm{GCD}(f(x), f'(x))が定数であることが簡単に確かめられる。よってf(x)はsquare freeである

Step 2

 p=5とすると、 f(x) \equiv x^5 + 2x^4 + 3x^3 + 3x^2 + 2x + 1 \pmod{5}となる。詳細は省くが、f(x)は F_5上でもsqure freeとなる。

Step 3

f(x)を F_5上で因数分解すると以下のようになる。

 \displaystyle{
f(x) \equiv (x+1)(x+2)(x+3)(x^2+x+1) \pmod{5}
}

Step 4

f(x)のLandau-Mignotte boundを計算すると以下のようになる。

 \displaystyle{
\begin{eqnarray}
B_{lm} &=& 2^5 \cdot \sqrt{1^2 + 2^2 + (-7)^2 + 18^2 + 2^2 + (-4)^2} \\
          &=& 32 \sqrt{398}
\end{eqnarray}
}

よってHensel liftingを行うべき回数は以下のようになる。

 \displaystyle{
\begin{eqnarray}
2 B_{lm} &<& 5^a \\
64 \sqrt{398} &<& 5^a \\
4 &<& a
\end{eqnarray}
}

よって \bmod 5^5の世界までHensel liftingで持ち上げれば十分である。詳細は割愛するが、Hensel liftingの結果は以下のようになる。

 \displaystyle{
\begin{eqnarray}
x+1 &\equiv& x+1361 \pmod{5} \\
x+2 &\equiv& x+1162 \pmod{5} \\
x+3 &\equiv& x+1768 \pmod{5} \\
x^2+x+1 &\equiv& x^2+1961x+2571 \pmod{5} \\
f(x) &\equiv& (x+1361)(x+1162)(x+1768)(x^2+1961x+2571) \pmod{5^5}
\end{eqnarray}
}

余談だが、Hensel liftingの計算はPARI/GPのAndroidアプリ版であるPariDroidを用いて行った[16]。スマホでこんな高度な計算ができるとは便利な世の中になったものだ。

Step 5

例えば以下の組み合わせについて考える。

 \displaystyle{
(x+1361)(x+1768) \equiv x^2+4x+3123 \pmod{5^5}
}

 \frac{5^5}{2}<3123であるため、 5^5 = 3125を引いて x^2+4x - 2とする。実はこれはf(x)を割り切るため、f(x)は可約である。

確認のために残りの因子についても計算してみる。

 \displaystyle{
(x+1162)(x^2+1961x+2571) \equiv x^3+3123x^2+3x+2 \pmod{5^5}
}

 \frac{5^5}{2}<3123であるため、 5^5 = 3125を引いて x^3-2x^2+3x+2とする。これもf(x)を割り切る。

結局、f(x)は以下のように因数分解出来ることが分かった。

 \displaystyle{
f(x) = (x^2 + 4x - 2)(x^3 - 2x^2 + 3x + 2)
}

まとめ

以上、5次方程式の解の様子を調べるための準備として、 \mathbb{Q}上の多項式の既約性を決定的に判定する方法が存在することについて述べた。今回はあまり深入りしなかったが、この辺りの話は数学とコンピュータが交差する世界であり、調べてみると非常に面白い。数学もコンピュータも好きな方にはぜひオススメしたい。

次回以降、本来の目的である5次方程式の調査を進めていきたいと思う。

「リーマン積分<ルベーグ積分」という感覚を味わう

ルベーグ積分について調べていると、ルベーグ積分はリーマン積分より優れているという文面をよく見かける。これは恐らく事実なのだが、それを知るには両者を様々な観点から比較してみる必要があるだろう。

そこで、本稿では特に基本的な2つの観点、すなわち、積分可能条件と項別積分可能条件について両者を比較し、ルベーグ積分がいかに優れているかを味わってみようと思う。

積分可能条件

リーマン積分可能条件について学部の解析学の講義で習うのは以下のような事実であろう。すなわち、関数fの上ダルブー和と下ダルブー和の極限が一致するときfは積分可能と言い、その極限がfの積分となるのである[2]。これを一歩推し進めると、以下の定理が成立する[1]。

リーマン積分可能条件
有界関数 f : [\alpha, \beta] \to \mathbb{R}について次が成立する:
fがリーマン積分可能であるための必要十分条件は, fがほとんど至るところで連続となることである。そしてこのときfはルベーグ積分可能で

 \displaystyle{
(R) \int_{\alpha}^{\beta} f(x) dx = (L) \int_{\alpha}^{\beta} f(x) dx
}

ただし、積分記号の前に(R)、(L)が付いているのはそれぞれリーマン積分ルベーグ積分を表す。これを見ると分かるように、リーマン積分が扱えるのは有界関数に限定され、積分範囲についても有界区間しか許されない。

ルベーグ積分可能条件については以下が成立する[1]。

ルベーグ積分可能条件
E上の正値関数fに対して, 単純関数 0 \le \phi(x) \le f(x)積分

 \displaystyle{
\int_E \phi(x) dx
}

の上限が有限であるとき, それを

 \displaystyle{
\int_E f(x) dx
}

で表し, fをE上で積分可能とよぶ。
正値でない関数fに対しては

 \displaystyle{
f^{+}(x) = \max\{f(x), 0\},\ f^{-}(x) = \max\{-f(x), 0\}
}

が共に積分可能のとき積分可能と定め,

 \displaystyle{
\int_E f(x) dx = \int_E f^{+}(x) dx - \int_E f^{-}(x)dx
}

とする。

ただし、Eは可測集合である。

このように、ルベーグ積分は必ずしも有界でない関数に対しても行うことができる。また、積分区間は閉区間でも開区間でもよく、もっと言うと区間である必要もなければ有界である必要すらない。そのため、ルベーグ積分はリーマン積分と比べてより幅広く積分が可能となるのである。

広義積分の場合

リーマン積分は極限と組み合わせることで、積分可能な関数のクラスを拡張することができる。これを広義リーマン積分と呼ぶ。

実は、ルベーグ積分不可能だが、広義リーマン積分可能な関数が存在する。そう聞くと、「なんだ、ルベーグ積分がリーマン積分より優れているなんて嘘じゃないか」と思うかもしれない。しかし、広義リーマン積分は厳密にはリーマン積分とは異なるし、ルベーグ積分も同じように極限と組み合わせて広義ルベーグ積分に拡張することができる。その意味で、やはりルベーグ積分はリーマン積分より優れていると言えるだろう。

以下に各種積分が可能となる関数のクラスの包含関係を示す。

f:id:peng225:20171022145517p:plain

具体例

いくつかの関数について、それぞれリーマン積分ルベーグ積分を行うことができるか見てみよう。

例1:ディリクレ関数

ディリクレ関数の定義を以下に示す。

 \displaystyle{
\chi_{\mathbb{Q}}(x) = 
\begin{cases}
    1 & (x \in \mathbb{Q}) \\
    0 & (otherwise)
  \end{cases}
}

これを区間[a, b]で積分することを考える。 \mathbb{Q} \mathbb{R}の稠密な部分集合なので、ディリクレ関数はほとんど至るところで不連続となる。よってこれをリーマン積分することはできない。

一方、ディリクレ関数は0, 1という有限個の値を取り、かつルベーグ測度に対して可測関数であることが容易に示されるため、ルベーグ積分可能である。 \mathbb{Q} \cap [a, b]の測度は0であるため、具体的に積分を実行した結果は以下のようになる。

 \displaystyle{
\int_a^b \chi_{\mathbb{Q}}(x) dx = 0
}

例2: f(x) = \frac{\sin x}{x}

この関数のグラフを以下に示す。

f:id:peng225:20171023222812p:plain

この関数の区間 [0, \infty)における積分を考える。積分区間有界ではないため、これはリーマン積分不可能であるが、広義リーマン積分は可能である。

しかし、実はこれはルベーグ積分不可能である。理由は、 \int_{0}^{\infty}f^{+}(x) \int_{0}^{\infty}f^{-}(x)も発散してしまうからである。広義リーマン積分の場合は正の部分と負の部分が絶妙なバランスを保って収束していたのだが、それぞれを個別に積分して差を取るというルベーグ積分の定義に従うと、無限大同士の引き算になってしまうのである。

ただし、ルベーグ積分に対しても広義積分を考えれば、この関数も積分することができる。詳しくは本[1]などを参照されたい。

項別積分可能条件

関数列 \{f_n(x)\}に対してリーマン積分が項別積分可能な条件は以下のように表される[3]。

リーマン積分の項別積分可能条件
区間 a \le x \le bにおいて f_n(x)が連続で, それが一様にf(x)に収束すれば,

 \displaystyle{
\int_{a}^{x} f_n(x) dx \to \int_{a}^{x} f(x) dx
}

両辺ともに連続で, 収束は一様.

一方、ルベーグ積分が項別積分可能な条件については、次の2つの定理が有名である[1]。

単調収束定理
積分可能関数 f_1, f_2, \cdots, f_n, \cdotsと定数Kが与えられ,

 \displaystyle{ \{f_n\}_n \nearrow a.e. } かつ  \displaystyle{ \int_E f_n(x) dx < K \mathrm{\ for\ all}\ n }

か, または

 \displaystyle{ \{f_n\}_n \searrow a.e. } かつ  \displaystyle{ \int_E f_n(x) dx > K \mathrm{\ for\ all}\ n }

であるなら,  \{f_n(x)\}_nはほとんどすべてのxに対して有限の値に収束する。そしてその値をf(x)と表すと, 関数fは積分可能で

 \displaystyle{ \int_E f(x) dx = \lim_{n \to \infty} \int_E f_n(x) dx }
優収束定理
積分可能関数 f_n,  gが与えられ,

 \displaystyle{ \lim_{n \to \infty} f_n(x) = f(x) \ a.e.} かつ  \displaystyle{ \left|f_n(x) \right| \le g(x) \ a.e.}

であれば, fは積分可能で

 \displaystyle{ \int_E f(x) dx = \lim_{n \to \infty} \int_E f_n (x) dx }

となる。

これら2つの定理の関係性については、調べてもいまいち情報が得られなかった。今のところは、どちらも同じくらい重要で、その時々によってどちらを使うべきか変わってくるのだと思っておくことにする。議論を簡略化するため、以下では主に優収束定理の方に着目する。

条件の厳しさの違いに関する疑問

リーマン積分は一様収束、ルベーグ積分は優収束定理により項別積分可能となるわけだが、実は優収束定理の方が緩い条件だと言われている。その理由は、優収束定理では関数列の各点収束しか求めていないからである。

しかし、これは簡単には納得できない。なぜなら、リーマン積分でもルベーグ積分でも、積分可能なのであれば結果は一致すべきだからだ。つまり、リーマン積分では項別積分すると計算結果が変わってしまうが、ルベーグ積分では変わらないなんてことがあってはならない。

この疑問の答えを探るために、以下の2つの例を考えてみよう。

例1: f_n(x) = x^n

この関数の区間[0, 1]での項別積分について考えてみよう。 n \to \inftyのとき、 f_n(x)は以下の関数に各点収束する。

 \displaystyle{
f(x) = 
\begin{cases}
    0 & (0 \le x \lt 1) \\
    1 & (x = 1)
\end{cases}
}

しかし、x=1の付近でヤバい挙動をするため、一様収束とはならない。つまり、リーマン積分については項別積分可能とは言えない。

一方、ルベーグ積分については優収束定理の条件を満たすので、項別積分可能となる。積分可能なg(x)としては、例えば g(x) = 1などとすればよい。

さて、これらの結論は一見すると矛盾しているように思える。一体、どちらが本当なのだろうか?

種明かしをすると、実はこれは項別積分可能である。実際、f(x)の積分は以下のようになる。

 \displaystyle{
\int_0^1 f(x) dx = 0
}

また、 f_n(x)積分は以下のようになる。

 \displaystyle{
\int_0^1 x^n dx = \left[\frac{1}{n+1} x^{n+1} \right]_0^1 = \frac{1}{n+1}
}

 n \to \inftyのときこれは0に収束するので、f(x)の積分と一致する。

結局のところ、リーマン積分における一様収束という条件は項別積分可能であるための十分条件に過ぎず、優収束定理はその条件をもっと精度良く広げていると言えるのだろう*1

例2: f_n(x) = \frac{n(n\chi_{\mathbb{Q}}(x) + 2)x}{n+1}

この例は九州大学のあるpdf[4]から着想を得て、私が考えたものである。この関数を区間[0, 1]で積分することを考えてみよう。分子にディリクレ関数が含まれているので、実際には以下のように場合分けができる。

 \displaystyle{
f_n(x) = 
\begin{cases}
    \frac{n(n+2
)x}{n+1} & (x \in \mathbb{Q}) \\
    \frac{2nx}{n+1} & (otherwise)
  \end{cases}
}

この関数はほとんど至るところで不連続なため、リーマン積分不可能である。しかし、ルベーグ積分は可能である。まず、 [0, 1] \cap \mathbb{Q}の測度は0であるから、 n \to \inftyの極限は以下のようになる。

 \displaystyle{
\begin{eqnarray}
\lim_{n \to \infty} f_n(x) &=& \lim_{n \to \infty} \frac{2nx}{n+1} \ a.e. \\
&=& 2x \ a.e.
\end{eqnarray}
}

よって関数列 f_n(x) f(x) = 2xに概収束する。ポイントは、 x \in [0, 1] \cap \mathbb{Q}に対して f_n(x) \to \inftyとなるが、それらの点は積分には影響を及ぼさないということである。

また、全てのnに対して |f_n(x)| \le 2x\ a.e.なので、優収束定理により項別積分可能となる。

実際に確かめてみよう。まず、 f_n(x)積分してから極限を取ると以下のようになる。

 \displaystyle{
\begin{eqnarray}
\lim_{n \to \infty} \int_0^1 f_n(x) dx
&=& \lim_{n \to \infty} \left[\frac{nx^2}{n+1} \right]_0^1 \\
&=& \lim_{n \to \infty} \frac{n}{n+1} \\
&=& 1
\end{eqnarray}
}

次に、 f_n(x)極限値である f(x) = 2x積分すると以下のようになる。

 \displaystyle{
\begin{eqnarray}
\int_0^1 f(x) dx &=& \left[x^2 \right]_0^1 \\
&=& 1
\end{eqnarray}
}

よって両者が一致することが分かった。

以上をまとめると、優収束定理はリーマン積分不可能な関数に対しても項別積分可能性を判定してくれることがあると言える。

まとめ

以上、リーマン積分ルベーグ積分を比較し、ルベーグ積分が優れているポイントをいくつか確認することができた。本稿の執筆を通して、ルベーグ積分は、測度の概念と"almost everywhere"の概念を組み合わせることで、さまざまな積分を簡単に扱えるようにしているのが感じられた。

正直に言って、ルベーグ積分にはそこまで興味がなかったが、勉強してみると案外面白かった。確率論への応用もあるようなので、そちらもいずれ勉強してみたい。

参考

[1]

はじめてのルベーグ積分

はじめてのルベーグ積分

 
[2] 積分法 - Wikipedia
[3]
解析概論 改訂第3版 軽装版

解析概論 改訂第3版 軽装版

[4] http://www2.math.kyushu-u.ac.jp/~taniguch/kogi/leb_t_last.pdf#search=%27%E5%84%AA%E5%8F%8E%E6%9D%9F%E5%AE%9A%E7%90%86+%E4%BE%8B%E9%A1%8C%27

*1:ただし、これを本当に主張するためには、一様収束はするが優収束定理の前提を満たさないケースは絶対に存在しないことの証明が必要となる。私はまだそれができていないため、あくまで推測であるという点にご注意頂きたい。

被積分関数、下から見るか、横から見るか

積分には大きく分けて2通りの方法がある。すなわち、リーマン積分ルベーグ積分である。リーマン積分は高校以来慣れ親しんでいる積分であり、また大学の初年度においてより厳密な取り扱いを学ぶ機会があるため、多くの方にとって積分と言えばリーマン積分を指すのだろう。

一方で、世の中にはルベーグ積分と呼ばれるものがある。これは、リーマン積分の持つ弱点を克服するために生まれたもので、より多くの関数を扱うことができる。

ルベーグ積分の議論で良く言われるのが、リーマン積分は定義域を分割するのに対して、ルベーグ積分では値域を分割するということである。このとき、誰もが疑問に思うことだろう。「なぜ定義域ではなく値域を分割すると、より柔軟な積分の定義になるのか?」と。

残念ながら、この疑問の答えは明に回答される事が少ないように思う。私自身、ルベーグ積分の学習を始めたときはちんぷんかんぷんだった。

そこで、本稿ではこの疑問に対して、私自身が考えた事について書いてみようと思う。

リーマン積分の問題

しばらくの間、簡単のために1変数実数値関数のうち定義域全体で値が0以上になるものに話を絞る。

リーマン積分では、積分区間を分割してx軸と被積分関数fで囲まれる部分の面積をたくさんの長方形を用いて近似する。長方形の高さの選び方には自由度があるが、各区間におけるfの最大値と最小値を高さにした場合の両方で計算を行い、分割を限りなく細かくしたときに両者が一致すればリーマン積分可能となる。

このやり方は連続関数なんかだと上手くいくのだが、fが積分区間においてほとんど至るところで不連続であったり*1、そもそも積分区間無理数全体の集合のように不連続かつ稠密であったりすると、どんなに長方形の幅を狭めても面積をうまく近似できない。そもそも、そんな不可思議な関数の面積とは一体何だということも疑問である。

まず値域より始めよ

リーマン積分の問題は、どんなに細かく定義域を分割しても、ある区間内でのfの最大値と最小値が一向に近づいて行かないような関数を扱えないことにある。では、逆にfが取り得る全ての値に対して、その逆像*2の長さを求めてやるのはどうだろうか?そして、その値と逆像の長さを掛け合わせたものの総和を取るのである。

この方法に対しては、すぐに以下のような疑問が湧いてくる。

  1. fの値の逆像は一点集合だったり離散的な点の集まりだったりするケースもある。その場合、fが取り得る全ての値の逆像は長さ0になってしまい、結局それらを足し合わせた積分値も不当に0になってしまうのではないか?
  2. fの逆像の長さはいつでもうまく決めてやることができるのか?

1点目については、結論から言うとそうはならない。確かにfの1つの値の逆像は長さ0になることがあるが、例えばfが連続関数だったりすると、総和を取るところで非加算無限回の足し算が発生する。これは単純に0とは言い切れず、極限を用いた厳密な議論が必要となる。どうやら足し算の話が通用するのは加算無限までのようだ[2]。

ではどうするかと言うと、fに収束するような関数列を利用する。すなわち、値域を幅 \frac{1}{2^n}毎に等間隔に分割し、 \frac{i}{2^n} \le f(x) \lt \frac{i+1}{2^n}となるようなxに対して値が \frac{i}{2^n}となるような関数 f_nを考える。当然、 f_n \le fである。

誤解を恐れずに言えば、 f_nはfを階段状に近似したものである。そのため、fと違って f_nの値の逆像は区間であったり、区間の和集合であったりすることが多くなる。もちろん、それだけではなく、無理数全体の集合の部分集合のような扱い辛い集合になることもあり得るが、それも含めてざっくり階段状であると言えなくもない。fと f_nのイメージを以下に示す。

f:id:peng225:20171014233445p:plain
区間[a, b]においてfを階段状に近似するイメージ

そこで、そのような f_nの逆像に長さの概念を定義することができたと仮定する。先ほどの2つ目の疑問でも述べたように、この逆像に対して長さを上手く定義できるかという問題はあるが、ここではそれはできるとして話を進める。

この時、その長さと f_nの値を掛け合わせたものを取り得る全ての値について足し合わせてやることで、面積と呼ぶべき量が得られる。fを直接扱う場合との違いは、 f_nは高々加算無限個の値しか取り得ないため、最後の総和を問題なく計算できるところにある。あとは n \to \inftyとしてやれば、その極限としてfの積分が求まるというわけである。

測度、可測集合、可測関数

さて、上の議論を成立させるためには、先ほど仮定した長さに関する議論を明確にしておかなければならない。これは集合に対して測度の概念を導入することで解決される。

測度には様々な種類があるが、 \mathbb{R}上で最も良く使うのはルベーグ測度と呼ばれるものである。ルベーグ測度とは、いわゆる日常的な意味で言うところの長さの概念を厳密に定めたものである。本稿では深く触れないが、ルベーグ測度を用いれば無理数全体の集合と区間[0, 1]の交わりのように病的な集合に対しても、長さを決めることができる。

では、測度というのはあらゆる集合に対して定義できるのだろうか?そうだと嬉しいが、さすがにそういうわけにはいかない。測度を定める事ができる集合は可測集合と呼ばれる。

そうなると、問題は f_nの逆像が可測集合になるかどうかであるが、これも常にそうなるとは言えない。逆像が可測集合になるような関数は可測関数と呼ばれ、ルベーグ積分はそういう関数に対してしか定義できない。(追記1参照)

ただし、可測でない集合というのは、普通に生活している分にはあまり出くわすことはない。それどころか、可測でない集合の構成例は1つしか知られていないようだ[1]。しかも、選択公理を用いるかなり技巧的なものである。つまり、集合や関数が可測であるかどうかを確かめることはもちろん重要だが、実際に可測でなくて困るケースというのは稀だと思われる。

定義域の柔軟性

これまでの議論では主に1変数実数値関数が主役だった。しかし、一般の関数の場合は変数の数も様々だし、そもそも定義域が \mathbb{R}^nやその部分集合とは全く違う集合であることも考えられる。

しかし、例え定義域がどんな集合であろうとも、測度さえ定義できればルベーグ積分を考えることができる。積分における難しさは測度に押し付けて、積分自体はシンプルに実行する。これこそが、ルベーグ積分の非常にパワフルな点である。

例えば、世の中には確率空間に対して定められる確率測度と呼ばれる概念がある[3]。もし確率空間を定義域とした関数を積分したいと考えたとき、リーマン積分であれば「何をどうやって長方形に分割するんだ?」と悩まなければならない。これがルベーグ積分であれば、測度さえ決めてやればいつでも全く同じ方法で積分を行う事ができるのである。

このような事が成立するのは、被積分関数が常に実数値を取るからである*3。つまり、定義域はその時々によって姿を変えるが、値域はいつも \mathbb{R}またはその部分集合なので、こちらに着目した方が積分の定式化がしやすいのである。

まとめ

以上、ルベーグ積分がなぜうまくいくのかについて、値域というキーワードから私なりの考察をしてみた。結論としては、以下の点が重要であることが分かった。

  • 可測関数に対しては関数値の逆像に対して長さの概念、すなわち測度を与えることができるので、それを用いて積分を定義できる。(追記2を参照)
  • 値域は常に数値なので、どんな空間においても同じ形式で積分が定義できる。代わりに測度の計算が複雑になるが、そこはブラックボックスと考えて良い。

プログラミングっぽくまとめると、測度インターフェースを引数に取るルベーグ積分なるfunctionが定義できて、測度の実装はポリモーフィズムによりその時々で変更可能、と言ったところか。考え方が分かると、ルベーグ積分はなかなか面白い。

追記1

とんでもない誤解をしていたが、可測関数の逆像は必ずしも可測集合とは限らないようだ[1]。区間の逆像は可測集合になるようだか、一般にはそうとは限らないらしい。

正確には、まず先に単純関数と呼ばれる関数を考える。単純関数の定義には「逆像が可測集合である」という条件が含まれる。一般の可測関数fに対しては、fに収束する単純関数の列 f_nが存在することが知られている。

つまり、本文中の誤りを訂正すると、もし f_nが単純関数ならば、その逆像は定義から必ず可測集合となる。また、fが可測関数でなければ、そもそもfに収束するするような単純関数の列 f_nが存在するとは限らない、ということになるだろう。

追記2

修正を取りこぼしていた。こちらも追記1と同種の誤りである。

正しくは「可測関数fに対しては、単純関数の収束列が存在する。単純関数の逆像に対しては長さの概念、すなわち測度を与えることができるので、それを用いて積分を定義できる。このとき、ある種の条件を満たせば、その関数列の積分値の極限としてfの積分値を得ることができる。」となる。

ここで言うある種の条件については本文では触れていないが、これは結構重要である。詳細はまたの機会に書くつもりでいる。

参考

[1]

はじめてのルベーグ積分

はじめてのルベーグ積分

[2] http://www.ma.noda.tus.ac.jp/u/sh/pdfdvi/ana1.pdf
[3] 確率測度 - Wikipedia

*1:「ほとんど至るところで」というのは歴とした数学用語である。ご存じない方は、さしあたり日本語の語感そのままの意味で捉えて頂いて構わない。

*2:逆像と逆写像の違いに注意。両者は全然違う。

*3:複素数の時もあるかもしれないが、難しいのでそれは忘れることにする。

群が可解でないための位数の条件を炙り出す

可解でない群は珍しい?

群論を勉強していると可解群という概念が登場する。これはガロア理論において大活躍する極めて重要な群であり、群がどんな時に可解になるかというのは興味ある問題である。

しかし、位数の小さい群を見ていると、どうにも可解でない群を見つける方が難しいように感じる。それはある意味当然で、位数59以下の群は全て可解群なのである。つまり、可解でない群を見つけようと思ったら、ある程度位数の大きい群に目を向けなければならない。

そこで、本稿では群がどのような位数のときに可解でなくなり得るのかという条件について調べてみることにする。

可解群の定義

まずは定義から始めよう。本[1]から定義を引用する。

Gを群とする. Gの部分群の列 G = G_0 \supset G_1 \supset \cdots \supset G_n = \{ 1 \}があり,  i = 0, \cdots , n-1に対し,  G_{i+1} \lhd G_i G_i / G_{i+1}が可換群となるとき, Gを可解群という.

進め方

本稿では具体的なところから雰囲気を掴むために、以下の表を少しずつ埋めていくことを考える。

0 1 2 3 4 5 6 7 8 9
0 -
10
20
30
40
50
60
70
80
90

各セルは、最左列と最上段の数値を足して得られる整数が位数となる群を表す。そのような群がどうあがいても可解群になってしまうときに○をつけることにする。そうして、最後まで空白のまま残ったセルが可解でなくなる可能性があるというわけである。

可解群になる位数いろいろ

群の位数を素因数分解したときのパターンと、群の可解性の関係について調べてみよう。以下ではp, q, rは相異なる素数とし、n, mは正の整数であるとする。

位数 p

位数pの群はp次巡回群 C_pのみである。巡回群はアーベル群であり、アーベル群は可解群である。よって、位数pの群は可解群である。

これにより、以下のように表を更新できる。

0 1 2 3 4 5 6 7 8 9
0 -
10
20
30
40
50
60
70
80
90

位数 p^n

これは上のケースの拡張である。位数 p^nの群はp群と呼ばれる。p群は冪零群と呼ばれる群の一種であり、冪零群は可解群である。冪零群の定義を本[1]から引用する。

Gを群とする. Gの部分群の列 G = G_0 \supset G_1 \supset \cdots \supset G_n = \{ 1 \}があり,  i = 0, \cdots , n-1に対し,  G_{i+1} \lhd G G_i / G_{i+1} G/G_{i+1}の中心に含まれるなら、Gをべき零群という.

p群が冪零群であることと、冪零群が可解群であることの証明は長くなるので割愛する。

これにより、以下のように表を更新できる。

0 1 2 3 4 5 6 7 8 9
0 -
10
20
30
40
50
60
70
80
90

位数 p^n q\ (q < p)

この節では q < pと仮定する。Sylowの定理より、この群Gは位数 p^nの部分群Hを持つ。この時、Hの指数はqである。

ここで、以下の定理を利用する (Wikipedia[2]より引用) 。

p が G の位数を割り切る最小の素数である場合、指数 p の任意の部分群は正規部分群である。

証明は[3]等を参照されたい。

少々ややこしいが、上記定理における素数pは今考えているケースではqに相当する。これよりHは正規部分群となるため、剰余群 G/Hを考えることができる。

ここで、さらに以下の定理を利用する (Wikipedia[4]より引用) 。

Gが可解群であるのは、NとG/Nがともに可解群であるとき、およびその時に限る。

ただし、NはGの正規部分群である。

今のケースに当てはめて考えると、 H G/Hが共に可解群であれば、Gは可解群になるということである。

 Hはp群なので可解群である。また、 |G/H| = qであり、位数が素数なので G/Hは可解群である。よってGは可解群である。

これより、表は以下のようになる。

0 1 2 3 4 5 6 7 8 9
-
10
20
30
40
50
60
70
80
90

位数 pqr

位数pqrの群Gは位数p、q、またはrの正規部分群Hを持つことが知られている[5]。Hは位数が素数なので可解群である。

どの場合でも同じなので、ここでは仮に |H| = pだったとする。この時、剰余群 G/Hの位数はqrとなる。この位数の群が可解群であることは既に述べた。よって上の節で引用した定理により、Gは可解群である。

これにより、表は以下のようになる。

0 1 2 3 4 5 6 7 8 9
0 -
10
20
30
40
50
60
70
80
90

位数がsquare freeの場合

これは上で示したケースの一般化である。位数がsquare freeであるとは、相異なる素数 p_1, p_2, \cdots ,  p_kを用いて位数を p_1 p_2 \cdots   p_kと表せることを言う。このタイプの群が可解群であるこの証明は、例えば[6]から順にリンクを辿っていくと説明がある。

位数が99以下の群の場合、位数を4つ以上の素数の積で表すことができないため、今回は特に表の更新はない。

位数 p^n q^m

このタイプの群が可解群であることはBurnsideの定理と呼ばれている[7]。これの証明はかなり難しい。少なくとも、今の私のレベルでは説明できない。本稿では結果だけ拝借させて頂くことにし、以下のように表を更新する。

0 1 2 3 4 5 6 7 8 9
0 -
10
20
30
40
50
60
70
80
90

位数が奇数の場合

驚くべきことに、位数が奇数の有限群は必ず可解群になる。これはFeit-Thompsonの定理と呼ばれており、証明は鬼ムズらしい[8]。今回の場合は、空白のセルはすでに偶数だけなので、特に更新はない。

さらに位数が大きい場合

以上、位数が99以下の群について、位数がどんなときに可解群にならざるを得なくなるのかを調べてみた。結局、可解でなくなる可能性がある位数はたった3つしかないことが分かった。しかも、これは必要条件なので、ひょっとしたらこれらも特殊な事情により必ず可解になったりするかもしれない。ただし、少なくとも位数60の群については、5次交代群 A_5が可解群ではないことが知られている。

また、逆に群が可解にならないためには、以下の条件を満たす必要があることが分かった。

  • 位数が偶数であること。
  • 位数を素因数分解したときに相異なる3つ以上の素因数が含まれ、かつそのうち少なくとも1つは指数が2以上になること。

これらの条件を満たす位数というのはどれくらいの頻度で出現するのだろうか?それを調べるために、ある自然数nについて、n以下の自然数のうちそれを位数とする群が可解でなくなり得るものがいくつあるか調べる。そして、それがnと共にどのように変わっていくのかをグラフにして見てみよう。

まず、300までの位数について計算したものを以下に示す。
f:id:peng225:20170922003148p:plain

このグラフからも、位数59以下の群が全て可解群になることが見て取れる。

次に、10,000までの位数について計算したものを以下に示す。
f:id:peng225:20170922003202p:plain

なんだか線形に増えているように見えるが、よく見るとやや下に凸な形状をしているようだ。

これより、可解でない群というのは無数に存在する可能性があることが分かった。ただし、本当に無数に存在するかどうか知るには、証明が必要である。

まとめ

以上、群の可解性と位数の関係を調べ、どんな時に群が可解でなくなり得るのかを考察した。今回は私が調べた限りの情報を載せたが、まだ見ぬ定理があって、本当の姿はちょっと違うということもあるかもしれない。有限群と言えど、結構奥が深いものだ。

(-1)×(-1)=1の代数的な証明

中学校で初めて負の数の掛け算を習うとき、(-1)×(-1)=1が成立するという事実は、初見ではなかなか受け入れがたいことであろう。私が中学生の時、当時の数学の先生は日常的な感覚に訴えるような例を出しながら、定性的な説明をしてくれたことを記憶している。しかし、この事実の証明を教えてもらった記憶はない。これはただそういうものだと受け入れるように言われ、気づけばその事実に慣れてしまい、疑問に思うこともなくなってしまったのであった。

この認識は、大学で複素解析を習った時に少し改まった。すなわち、 e^{i \pi}=-1なので、(-1)×(-1)というのは、1を複素平面上で \piだけ回転する操作を2回行うことを意味し、当然1になるというわけである。私は長らくこれで納得していたわけだが、やはり証明とは少し違う。

そんな中、つい最近Twitterでこの事実の証明を見つけた。それが以下である。

素晴らしい。私はこのツイートを見るまで、そもそもこれが証明出来るものだとすら思っていなかった。

本稿ではこのツイートに敬意を表し、ここで述べられている証明を少しカスタマイズ&肉付けして、(-1)×(-1)=1の証明について代数的な視点から考えてみようと思う。

何を前提とするべきか

今回のように一見すると簡単な命題の証明というのは、慣れていないとなかなか難しい。それは、何を既知としてよいかが分かりづらいというところに起因すると私は感じている。全く自明に感じられない命題を証明するのであれば、持てる知識を総動員して証明に当たれば良いが、(-1)×(-1)=1というのは馴染みすぎているせいか自明に感じられ、どこまでを仮定として良いのか見えづらいのである。

今回の場合は、最低限の条件から積み上げることを意識して、以下を前提として考える事にしよう。

  • 整数全体の集合 \mathbb{Z}は通常の加法と乗法について環である。
  •  \mathbb{Z}の成す環 (整数環) の加法における単位元は0、乗法における単位元は1である。

前提条件から分かること

これらの前提条件から、任意の a, b, c \in \mathbb{Z}について以下が成立する。

  •  a + 0 = 0 + a = a ・・・(1)
  •  a \times 1 = 1 \times a = a ・・・(2)
  •  a \times 0 = 0 \times a = 0 ・・・(3)
  •  a + (-a) = (-a) + a = 0 ・・・(4)
  •  a \times (b + c) = a \times b + a \times c ・・・(5)

(1)式は加法の単位元の定義そのもの、(2)式は乗法の単位元の定義そのもの、(4)式は環の定義から \mathbb{Z}が加法についてアーベル群となり、かつaの逆元は(-a)となることから分かり、(5)式は環が満たすべき性質である分配法則そのものである。(3)式は以下のようにして示せる。

 \displaystyle{
\begin{eqnarray}
a \times 0 &=& a \times (0 + 0) \\
                    &=& a \times 0 + a \times 0
\end{eqnarray}
}

群には必ず逆元が存在するので、最初と最後の式に a \times 0の逆元を加えれば、(4)式と(1)式から a \times 0 = 0が得られる。 0 \times a = 0も同様である。

証明

上で示した5つの式だけを用いて、(-1)×(-1)=1を証明してみよう。そのために、少々天下り的ではあるが、以下のような計算を考えてみる。

 \displaystyle{
\begin{eqnarray}
(-1) + (-1) \times (-1) &=& (-1) \times 1 + (-1) \times (-1) \\
                    &=& (-1) \times (1 + (-1)) \\
                    &=& (-1) \times 0 \\
                    &=& 0
\end{eqnarray}
}

上の式に現れる等号は、順に(2)式、(5)式、(4)式、(3)式より成立することが分かる。

ここで、最初と最後の式に1を足すと以下のようになる。

 \displaystyle{
\begin{eqnarray}
1 + (-1) + (-1) \times (-1) &=& 1+ 0 \\
(-1) \times (-1) &=& 1
\end{eqnarray}
}

左辺の変形は(4)式と(1)式から、右辺の変形は(1)式から分かる。以上により、証明が完了した。

まとめ

本稿では、(-1)×(-1)=1を代数的な視点から、最低限の前提だけを元にして証明してみた。普段当たり前だと思っていることでも、いざ証明しようと思うと結構大変だ。

多様体の接空間を接続するということ

突然だが、Levi-Civita接続という言葉をご存知だろうか?この言葉は何だが不思議な語呂の良さがあり、私は以前Twitterで見かけて以来、この言葉を何となく覚えていた。しかし、いざ調べてみるとなかなか難しい概念で、一朝一夕では理解できないと感じていた。

最近、ついにこのLevi-Civita接続について一定の理解を得たので、自身の知識整理を兼ねて、理解したことをまとめてみることにする。

なお、本稿ではアインシュタインの縮約記法を使っているので注意されたい。

また、本稿は全体的に資料[1]を参考に記載している。

方向微分から共変微分

関数の方向微分

多様体Mにおいて、ベクトル場に沿った関数の方向微分を考えてみる。「ベクトル場に沿った」とは言っても、ある1つの点に着目すれば、結局これはその点に割り当てられたベクトルに対する方向微分を考えてみようと言っているだけである。

ある局所座標系 \{x_1, x_2, \cdots, x_n\}について、ベクトル場 {\bf X} = X^i \frac{\partial}{\partial x_i}が与えられているとする。このとき、ある1点 p \in Mを通る滑らかな曲線 {\bf x}(t)  (-\epsilon < t < \epsilon,\ \epsilon \in \mathbb{R})を考える。ただし、 {\bf x}(0)=pとする。この曲線をtについて微分した値がpにおいてベクトル場 {\bf X}と一致するように {\bf x}(t)が取られているとする。すなわち、 {\bf X}の各成分について以下が成立しているとする。

 \displaystyle{
X^i({\bf x}(0)) = \frac{dx^i}{dt} (0)
}

このとき、fをM上の任意の微分可能な関数とすると、 {\bf X}に沿ったfの方向微分は以下の式で表される。

 \displaystyle{
\begin{eqnarray}
\nabla_{{\bf X}} f &=& \left. \frac{d}{dt} f({\bf x}(t)) \right|_{t=0} \\
                   &=& \frac{\partial f}{\partial x^i} \frac{d x^i}{dt}(0) \\
                   &=& X^i({\bf x}(0)) \frac{\partial f}{\partial x^i} \\
\end{eqnarray}
}

Mの各点においてこのような方向微分を考えることができるので、結局以下が成立する。

 \displaystyle{
\nabla_{{\bf X}} f = X^i \frac{\partial f}{\partial x_i}
}

この方向微分は以下の3つの性質を持つ。

  1.  \nabla_{{\bf X}} (af + bg) = a\nabla_{{\bf X}} f + b\nabla_{{\bf X}} g ( a, b \in \mathbb{R})
  2.  \nabla_{c{\bf X}+d{\bf Y}} f = c\nabla_{{\bf X}} f + d\nabla_{{\bf Y}} f ( c, d \in \mathbb{R})
  3.  \nabla_{{\bf X}} (fg) =  g \nabla_{{\bf X}} f + f\nabla_{{\bf X}} g

すなわち、与えられたベクトル場と関数について線形であり、かつLeibnitz則が成立する。ただし、f, gはM上の任意の微分可能な関数である。

ベクトル場の方向微分における問題

これと同様に、今度はベクトル場に沿ったベクトル場の方向微分というものを考えてみる。微分する方向を定めるベクトル場を {\bf X}微分されるベクトル場を {\bf Y}とする。このとき、ベクトル場 {\bf Y}は、Mの各点pにおける接空間 T_p(M)から1つずつベクトルを選び、その点に割り当てることで構成される。

このベクトル場の微分を先ほどと同じように行うことを考えてみよう。このとき、微小な曲線 {\bf x}(t)を取るところまではよいのだが、その後の微分操作で、微小距離だけ離れたベクトルの差を取る必要がある。しかし、微小距離だけ離れた点とは言え、異なる点に割り当てられたベクトルは異なる接空間の元であるため、これらを単純に比較することはできない。つまり、関数の場合と同じように考えて微分することはできないのである。

共変微分

そこで、2つの異なる接空間に属するベクトルを比べることなく、ベクトル場に対しても方向微分のような演算を定義することを考える。すなわち、方向微分が満たしていた性質を満たすような抽象的な写像として、ベクトル場に沿ったベクトル場の方向微分のような演算を形式的に考えるのである。すなわち、以下の3つの性質を満たすような写像 M \to (T_p(M) \times T_p(M) \to T_p(M))を考える。

  1.  \nabla_{{\bf X}} (a{\bf Y} + b{\bf Z}) = a\nabla_{{\bf X}} {\bf Y} + b\nabla_{{\bf X}} {\bf Z} ( a, b \in \mathbb{R})
  2.  \nabla_{f{\bf X}+g{\bf Y}} {\bf Z} = f\nabla_{{\bf X}} {\bf Z} + g\nabla_{{\bf Y}} {\bf Z}
  3.  \nabla_{{\bf X}} (f{\bf Y}) =  {\bf Y} \nabla_{{\bf X}} f + f\nabla_{{\bf X}} {\bf Y}

このように定義される写像を共変微分と呼ぶ。

共変微分が与えられると、後に示すように多様体の異なる点における接空間の接続が決まるので、これを接続と呼ぶこともある。より正確には、ベクトル場 {\bf X}に対して接続 \nablaが与えられた時、演算 \nabla_{\bf X}を共変微分と呼ぶようである[2]。特に、上の条件で定められる接続をアフィン接続と呼ぶ。

共変微分の計算

このようにして与えられた共変微分の定義は抽象的で、このままでは具体的な計算方法が分からないように見える。しかし、与えられた3つの性質に基づいて計算を進めると、これだけでも案外いろいろな事が分かる。

ということで、 {\bf X} = X^i \partial_i {\bf Y} = Y^i \partial_iについて共変微分を計算して見よう。ただし、 \partial_i = \frac{\partial}{\partial x_i}と略記する。

 \displaystyle{
\begin{eqnarray}
\nabla_{{\bf X}} {\bf Y} &=& \nabla_{X^i \partial_i} (Y^j \partial_j) \\
&=& X^i \nabla_{\partial_i} (Y^j \partial_j) \\
&=& X^i \left(\nabla_{\partial_i}(Y^j) \partial_j + Y^j \nabla_{\partial_i} \partial_j \right) \\
&=& X^i \left(\frac{\partial Y^j}{\partial x_i} \partial_j + Y^j \nabla_{\partial_i} \partial_j \right)
\end{eqnarray}
}

ここで、 \nabla_{\partial_i} \partial_jも各点における接空間の元なので、以下のように基底の線形結合で表すことができる。

 \displaystyle{
\nabla_{\partial_i} \partial_j = \Gamma^{k}_{ij} \partial_k
}

ここで、基底の係数 \Gamma^{k}_{ij}をクリストッフェル記号という。

すると、先ほどの共変微分の式は以下のようになる。

 \displaystyle{
\nabla_{{\bf X}} {\bf Y} = X^i \left(\frac{\partial Y^j}{\partial x_i} \partial_j + Y^j \Gamma^{k}_{ij} \partial_k \right)
}

 \frac{\partial Y^j}{\partial x_i} \partial_j = \frac{\partial Y^k}{\partial x_i} \partial_kとインデックスを付け替えると、結局以下のようになる。

 \displaystyle{
\begin{eqnarray}
\nabla_{{\bf X}} {\bf Y} &=& X^i \left(\frac{\partial Y^k}{\partial x_i} \partial_k + Y^j \Gamma^{k}_{ij} \partial_k \right) \\
&=& X^i \left(\frac{\partial Y^k}{\partial x_i}  + Y^j \Gamma^{k}_{ij} \right) \partial_k
\end{eqnarray}
}

共変微分(アフィン接続)の定義から計算できるのはここまでである。これを見ると分かるように、共変微分の定義だけではクリストッフェル記号の値が完全には決まり切らない。そのため、アフィン接続は無数に存在することになる。

Levi-Civita接続

このままではどのアフィン接続を用いたら良いのか分からない。無数にあるアフィン接続のうち、何か突出した性質を持つものはないものだろうか?実は、以下のような条件を満たす接続は一意に決まることが知られている。

  1.  \nabla_{{\bf X}} {\bf Y} - \nabla_{{\bf Y}} {\bf X} = [{\bf X}, {\bf Y}] (対称な接続)
  2.  {\bf X} g({\bf Y}, {\bf Z}) =  g(\nabla_{{\bf X}}{\bf Y}, {\bf Z}) + g({\bf Y}, \nabla_{{\bf X}}{\bf Z})内積との整合性)

ただし、 [{\bf X}, {\bf Y}]はリーブラケット[3]であり、 g({\bf Y}, {\bf Z})などはリーマン計量gによる内積を表す。

私も詳しくは理解しきれていないが、最初の条件は局所座標系を指定すれば \Gamma^{k}_{ij} = \Gamma^{k}_{ji}と同値であり、クリストッフェル記号の下付きの添字の対称性を表している。2番目の条件については後述する。

このようにして決まる接続のことをLevi-Civita接続と呼ぶ。Levi-Civita接続においては、クリストッフェル記号は以下の式により一意に定まる。

 \displaystyle{
\Gamma^{i}_{mk} = \frac{1}{2} g^{ij} \left(\frac{\partial g_{jm}}{\partial x^k} + \frac{\partial g_{jk}}{\partial x^m} - \frac{\partial g_{mk}}{\partial x^j} \right)
}

ここで、右辺の g^{ij}は計量テンソル逆行列の(i, j)成分を表す。

ベクトルの平行移動による接空間の接続

ここまでの議論で、内積、すなわちリーマン計量と整合性のある接続として、一意なLevi-Civita接続が得られる事が分かった。しかし、名前こそ接続となっているものの、これが一体何と何をどう接続しているのかがまだ分からない。

そこで、最後にLevi-Civita接続の接続っぽさを味わってみよう。

本稿のタイトルにもあるように、接続されるのは異なる2つの接空間同士である。接空間を接続するということの意味は、ある接空間におけるベクトルを、もう一方の接空間上のベクトルに対応付ける方法を与えるということである。問題は、そのような対応をどのように与えるかである。

これは、多様体上の曲線に沿ったベクトルの平行移動によって与えられる。すなわち、多様体M上の2点p, qをつなぐ滑らかな曲線を c(t)\ (0 \le t \le t_0)とし、 c(0)=p,  c(t_0)=qとする。また、c(t)の接線方向のベクトルをc(t)上の各点に割り当てたベクトル場を {\bf v}とする。このとき、ベクトル場 {\bf X} {\bf v}に沿った共変微分 \nabla_{{\bf v}} {\bf X}が0になるとき、c(t)上の各点に割り当てられた {\bf X}のベクトルは互いに平行であると言う。

共変微分が0になるようなベクトルの移動を平行移動と定義する心は、その移動によりベクトルが変化せず、ある意味で定数的な振る舞いをするというところから来ているようである[4]。

平行移動によって移り合うベクトルは、実際にはM上の異なる点における接空間の元であるが、平行移動を用いてそれらを同一視することで、ベクトルを曲線に沿って別の接空間にmappingすることができる。これこそが、接続が接続と呼ばれる所以である。

さて、実はここまでの話はアフィン接続でも全く同じことが言える。これがLevi-Civita接続になると、さらにベクトルの長さが平行移動によって変化しないという条件が付き、より我々がユークリッド幾何学で培ってきた直感にマッチする形になるのである。この性質はLevi -Civita 接続の2番目の条件により生じるものであるが、詳しくはテンソル場に対する共変微分という概念が必要なようで、残念ながら今の私のレベルでは説明できない。

まとめ

以上、Levi-Civita接続とその周辺事項に関する私の理解をまとめてみた。「どこかで聞いたことがあるが、それが何なのか分からない」というところから知識を増やしていくのは、なかなか楽しい学習戦略である。