閑樂祕鍵

OTIVM HOMINEM HOMINEM FACIT

曲線の長さのパラドックス

最近、このようなコンテンツがインターネットのごく一部でバズっている:

私はTwitterでこの動画の投稿主の告知ツイートをRTしてコメントしたのだが、自分の考えをちゃんとした文章としてまとめておいた方がいいかもしれないと思いこの記事を書くことにした。

ちなみに、これと同様のネタは過去に何度もTwitterなどでバズっている。いい加減「ああ、またこのネタか」と人々に飽きられるのではないか? と思うのだが、案外初見の人が多いということだろうか。数ヶ月後か1年後あたりに再びこれと同じネタをTwitterに投稿すれば、誰でもバズれる可能性があるのではないかと思う。

とにかく、この問題に対する答案を私なりにマジメに書いてみると、次のようになる:

折れ線の長さの極限は、折れ線の極限の長さに必ずしも一致しない。

たったこれだけの話だと思う。一方、インターネットではああでもないこうでもないという侃侃諤諤の議論が延々と続けられているようだ。このような状況が生じた背景として、今回の問題に答えるためには人々が想像する以上に高級な数学的技能を必要とする、という事実が挙げられると思う。

例えば私のような数学専攻の学生にとっては、「極限と積分の順序を交換する時には必ず条件を確かめるべし」というような教訓は何度も体験していることで、身近なものだと言ってよい(つまり、\[\lim_{n \to \infty} \int f_n(x)\; dx = \int \lim_{n \to \infty}\; f_n(x)\; dx\]は自明に成り立つわけではないという認識が身についている)。そういう事を考える癖が肌感覚で身についている人からすれば、今回の問題は自ずと答えが出るものだと思う。

ところで、「折れ線の $n$ をいくら $n \to \infty$ としたところで、折れ線は円弧自身には決してなり得ない」と答えている人も結構多く見かけた。こういった主張が出てくる理由はとてもシンプルで、高校では「数列の極限」という概念は習っても「函数列の極限」という概念は習わないからだ。「函数列の極限」という概念は、理工系の学部教養程度の数学で初めて現れるものである。こう言うと、「えっ、函数列の極限って ${\displaystyle \lim_{n \to \infty}\; f_n(x)}$ のことでしょ? 高校でも受験勉強してれば出てくるだろ」という声が挙がるかもしれない。だが、それは $f_n(x)$ を数列 $a_n$ と見做した時の極限だから、結局数列の極限の話に還元できる。函数列の極限とは、次のようなものをいう:

函数の列 $f_1, f_2, \ldots$ があるとする。各 $x$ に対して極限 ${\displaystyle \lim_{n \to \infty} f_n(x)}$ が存在するとき、函数 $f$ を ${\displaystyle f(x) := \lim_{n \to \infty} f_n(x)}$ で定める。このとき、函数 $f$ を函数列 $\{f_n\}_{n = 1}^\infty$ の極限と呼ぶ。

「さっきと同じだろ」と思った人もいるかもしれないが、そうではない。さっきのは、$x$ という特定の値を入力したとき、それに応じて $\{f_n(x)\}_{n = 1}^\infty$ という数列を考えることができるという話であったが、今回のは任意の $x$ に対する ${\displaystyle \lim_{n \to \infty}\; f_n(x)}$ を考えることで初めて $f$ という函数を考えることができるという点に注意されたい。

そういうわけで、これにてようやく「折れ線の列がある曲線に収束する」という現象が数学の言葉で厳密に記述できるようになった。つまり、函数列を折れ線の列と見做し、函数列の極限を収束先の円弧と見做すことができる。その前提の下で、「折れ線の長さの極限は、折れ線の極限の長さに必ずしも一致しない」という私の主張が真に意味をなしてくる。これが、高級な(つまり中等教育では扱わない)数学の技能が必要とされているという事の意味だ。

(ちなみに、函数列の収束というものには、もう一種類有名なものがある。それが、一様収束である。一様収束とは何なのかについては面倒なのでググって頂きたいが、先ほど言及した函数列の収束は各点収束と呼ばれており、一様収束とは区別される。さらに言えば、一様収束は各点収束よりも「強い」条件である。つまり、ある函数列がある函数に一様収束するならば、その函数列はその函数に必ず各点収束する。一様収束する函数列は、函数列の積分の極限と函数列の極限の積分が一致するという嬉しい性質を持つ。では今回の問題における例はどうかといえば、折れ線の列は円弧に一様収束する。だが、函数列の曲線の長さはまた別の函数列によって表されるから、曲線の長さについても極限の順序を交換して計算できるとは限らないのである。この点、なかなかややこしい部分だと思う。なお、この記事では簡単のために曲線列を表す函数列を考えたが、元の動画では折れ線の一部が y 軸に平行になっているから厳密には x函数で表せない。しかし、扇形を少し傾けて考えたり、あるいは x, y の二変数函数として定義し直すことで適切に記述できるから、大した問題ではないだろう)

ところで、「折れ線の長さの極限は、折れ線の極限の長さに必ずしも一致しない」ことを、曲線の長さの定義に立ち返って説明してみるとどうなるか考えてみた。曲線の長さは、その曲線上の幾つかの点を線分で結んで得られる折れ線がとりうる長さの値の全体がなす集合を考えたとき、その集合の上限として定義される(連続の公理より、実数からなる任意の集合は、上に有界ならば必ず上限を持つ。また、二つの点 $(x_1, y_1), (x_2, y_2)$ を結ぶ線分の長さは $\sqrt{(x_1 - x_2)^2 + (y_1 - y_2)^2}$ として定義される)。この曲線の長さの定義との比較という視点から言えば、今回の問題で円弧を外側から近似する折れ線は、そもそも曲線上の点以外にも頂点を持ってしまっている。よって、円弧の長さを考察するための近似折れ線としては全く相応しくないということになる。もちろん先ほどの「曲線の長さ」の定義に合致するような折れ線(つまりすべての頂点が曲線上にあるような折れ線)を選んで極限を取れば、「折れ線の長さの極限が折れ線の極限の長さに一致する」のは(曲線の長さの定義より)明らかだろう。

疲れてきたし忙しいので、このあたりで記事を終えることにする。何か追記・修正すべき点もあるだろうと思うので、気付き次第対応していきたい。