被積分関数、下から見るか、横から見るか
積分には大きく分けて2通りの方法がある。すなわち、リーマン積分とルベーグ積分である。リーマン積分は高校以来慣れ親しんでいる積分であり、また大学の初年度においてより厳密な取り扱いを学ぶ機会があるため、多くの方にとって積分と言えばリーマン積分を指すのだろう。
一方で、世の中にはルベーグ積分と呼ばれるものがある。これは、リーマン積分の持つ弱点を克服するために生まれたもので、より多くの関数を扱うことができる。
ルベーグ積分の議論で良く言われるのが、リーマン積分は定義域を分割するのに対して、ルベーグ積分では値域を分割するということである。このとき、誰もが疑問に思うことだろう。「なぜ定義域ではなく値域を分割すると、より柔軟な積分の定義になるのか?」と。
残念ながら、この疑問の答えは明に回答される事が少ないように思う。私自身、ルベーグ積分の学習を始めたときはちんぷんかんぷんだった。
そこで、本稿ではこの疑問に対して、私自身が考えた事について書いてみようと思う。
リーマン積分の問題
しばらくの間、簡単のために1変数実数値関数のうち定義域全体で値が0以上になるものに話を絞る。
リーマン積分では、積分区間を分割してx軸と被積分関数fで囲まれる部分の面積をたくさんの長方形を用いて近似する。長方形の高さの選び方には自由度があるが、各区間におけるfの最大値と最小値を高さにした場合の両方で計算を行い、分割を限りなく細かくしたときに両者が一致すればリーマン積分可能となる。
このやり方は連続関数なんかだと上手くいくのだが、fが積分区間においてほとんど至るところで不連続であったり*1、そもそも積分区間が無理数全体の集合のように不連続かつ稠密であったりすると、どんなに長方形の幅を狭めても面積をうまく近似できない。そもそも、そんな不可思議な関数の面積とは一体何だということも疑問である。
まず値域より始めよ
リーマン積分の問題は、どんなに細かく定義域を分割しても、ある区間内でのfの最大値と最小値が一向に近づいて行かないような関数を扱えないことにある。では、逆にfが取り得る全ての値に対して、その逆像*2の長さを求めてやるのはどうだろうか?そして、その値と逆像の長さを掛け合わせたものの総和を取るのである。
この方法に対しては、すぐに以下のような疑問が湧いてくる。
- fの値の逆像は一点集合だったり離散的な点の集まりだったりするケースもある。その場合、fが取り得る全ての値の逆像は長さ0になってしまい、結局それらを足し合わせた積分値も不当に0になってしまうのではないか?
- fの逆像の長さはいつでもうまく決めてやることができるのか?
1点目については、結論から言うとそうはならない。確かにfの1つの値の逆像は長さ0になることがあるが、例えばfが連続関数だったりすると、総和を取るところで非加算無限回の足し算が発生する。これは単純に0とは言い切れず、極限を用いた厳密な議論が必要となる。どうやら足し算の話が通用するのは加算無限までのようだ[2]。
ではどうするかと言うと、fに収束するような関数列を利用する。すなわち、値域を幅毎に等間隔に分割し、となるようなxに対して値がとなるような関数を考える。当然、である。
誤解を恐れずに言えば、はfを階段状に近似したものである。そのため、fと違っての値の逆像は区間であったり、区間の和集合であったりすることが多くなる。もちろん、それだけではなく、無理数全体の集合の部分集合のような扱い辛い集合になることもあり得るが、それも含めてざっくり階段状であると言えなくもない。fとのイメージを以下に示す。
そこで、そのようなの逆像に長さの概念を定義することができたと仮定する。先ほどの2つ目の疑問でも述べたように、この逆像に対して長さを上手く定義できるかという問題はあるが、ここではそれはできるとして話を進める。
この時、その長さとの値を掛け合わせたものを取り得る全ての値について足し合わせてやることで、面積と呼ぶべき量が得られる。fを直接扱う場合との違いは、は高々加算無限個の値しか取り得ないため、最後の総和を問題なく計算できるところにある。あとはとしてやれば、その極限としてfの積分が求まるというわけである。
測度、可測集合、可測関数
さて、上の議論を成立させるためには、先ほど仮定した長さに関する議論を明確にしておかなければならない。これは集合に対して測度の概念を導入することで解決される。
測度には様々な種類があるが、上で最も良く使うのはルベーグ測度と呼ばれるものである。ルベーグ測度とは、いわゆる日常的な意味で言うところの長さの概念を厳密に定めたものである。本稿では深く触れないが、ルベーグ測度を用いれば無理数全体の集合と区間[0, 1]の交わりのように病的な集合に対しても、長さを決めることができる。
では、測度というのはあらゆる集合に対して定義できるのだろうか?そうだと嬉しいが、さすがにそういうわけにはいかない。測度を定める事ができる集合は可測集合と呼ばれる。
そうなると、問題はの逆像が可測集合になるかどうかであるが、これも常にそうなるとは言えない。逆像が可測集合になるような関数は可測関数と呼ばれ、ルベーグ積分はそういう関数に対してしか定義できない。(追記1参照)
ただし、可測でない集合というのは、普通に生活している分にはあまり出くわすことはない。それどころか、可測でない集合の構成例は1つしか知られていないようだ[1]。しかも、選択公理を用いるかなり技巧的なものである。つまり、集合や関数が可測であるかどうかを確かめることはもちろん重要だが、実際に可測でなくて困るケースというのは稀だと思われる。
定義域の柔軟性
これまでの議論では主に1変数実数値関数が主役だった。しかし、一般の関数の場合は変数の数も様々だし、そもそも定義域がやその部分集合とは全く違う集合であることも考えられる。
しかし、例え定義域がどんな集合であろうとも、測度さえ定義できればルベーグ積分を考えることができる。積分における難しさは測度に押し付けて、積分自体はシンプルに実行する。これこそが、ルベーグ積分の非常にパワフルな点である。
例えば、世の中には確率空間に対して定められる確率測度と呼ばれる概念がある[3]。もし確率空間を定義域とした関数を積分したいと考えたとき、リーマン積分であれば「何をどうやって長方形に分割するんだ?」と悩まなければならない。これがルベーグ積分であれば、測度さえ決めてやればいつでも全く同じ方法で積分を行う事ができるのである。
このような事が成立するのは、被積分関数が常に実数値を取るからである*3。つまり、定義域はその時々によって姿を変えるが、値域はいつもまたはその部分集合なので、こちらに着目した方が積分の定式化がしやすいのである。
まとめ
以上、ルベーグ積分がなぜうまくいくのかについて、値域というキーワードから私なりの考察をしてみた。結論としては、以下の点が重要であることが分かった。
可測関数に対しては関数値の逆像に対して長さの概念、すなわち測度を与えることができるので、それを用いて積分を定義できる。(追記2を参照)- 値域は常に数値なので、どんな空間においても同じ形式で積分が定義できる。代わりに測度の計算が複雑になるが、そこはブラックボックスと考えて良い。
プログラミングっぽくまとめると、測度インターフェースを引数に取るルベーグ積分なるfunctionが定義できて、測度の実装はポリモーフィズムによりその時々で変更可能、と言ったところか。考え方が分かると、ルベーグ積分はなかなか面白い。
追記1
とんでもない誤解をしていたが、可測関数の逆像は必ずしも可測集合とは限らないようだ[1]。区間の逆像は可測集合になるようだか、一般にはそうとは限らないらしい。
正確には、まず先に単純関数と呼ばれる関数を考える。単純関数の定義には「逆像が可測集合である」という条件が含まれる。一般の可測関数fに対しては、fに収束する単純関数の列が存在することが知られている。
つまり、本文中の誤りを訂正すると、もしが単純関数ならば、その逆像は定義から必ず可測集合となる。また、fが可測関数でなければ、そもそもfに収束するするような単純関数の列が存在するとは限らない、ということになるだろう。
追記2
修正を取りこぼしていた。こちらも追記1と同種の誤りである。
正しくは「可測関数fに対しては、単純関数の収束列が存在する。単純関数の逆像に対しては長さの概念、すなわち測度を与えることができるので、それを用いて積分を定義できる。このとき、ある種の条件を満たせば、その関数列の積分値の極限としてfの積分値を得ることができる。」となる。
ここで言うある種の条件については本文では触れていないが、これは結構重要である。詳細はまたの機会に書くつもりでいる。
参考
[1]
- 作者: 寺澤順
- 出版社/メーカー: 日本評論社
- 発売日: 2009/02/01
- メディア: 単行本
- クリック: 9回
- この商品を含むブログ (1件) を見る
[3] 確率測度 - Wikipedia