『収束』の陰険性

 数列が収束するのか、 するとすれば何に収束するのかに関する話の一つに、
「グラフを見ていると騙される」
という現象がある。 生物学、医学、経済など多くの、『数学応用分野』の論文 (つねに注意しろと言われ続けるところはそうでもないのだが)に この点について考慮せずに収束性を主張しているものが見受けられますが、 気をつけないととんでもない目にあう、と言う良い例をご覧にいれよう。

 次の数列について考えよう。

    S(N)= Σ(n=1,N) 1/( n3 * sin2(n) )
   
ここで、sin() の引数は radian である (つまり360度ではなく 2π で円一周分を表現している)。

 上の数列の最初の 23 項は次のようになる。

N S(N)
1 1.412283
2 1.563464
3 3.423233
4 3.450514
5 3.459214
6 3.518513
7 3.525267
8 3.527263
9 3.535339
10 3.538718
11 3.539469
12 3.541479
13 3.544058
14 3.544429
15 3.545130
16 3.548075
17 3.548295
18 3.548599
19 3.555090
20 3.555240
21 3.555394
22 4.754112
23 4.754227

 この数列は徐々に 4.8近辺の数字に収束していっているように見える。 実際 354 番目までの要素は着実に 4.807444 という数字を目指しているように見える。 が、この状態が 355 番目の要素で突如崩れる。 350項から 360項までの出力結果を見て欲しい。

N S(N)
350 4.807443
351 4.807443
352 4.807444
353 4.807444
354 4.807444
355 29.405625
356 29.405625
357 29.405625
358 29.405627
359 29.405627
360 29.405627

 なぜこんなことになったのかを解説するのは実は簡単である。 n=355 の時、sin(n) の値は -0.000030(近似値) というとんでもなく小さな値を取る。 これの二乗は、355 の三乗値よりもはるかに小さいため、 分母の絶対値が 1 未満になるのだ。

 現在のところ、この数列が本当に収束するのかどうかは判っていない。 少くとも計算機によるシミュレーションは (ごく普通の double レベルの計算精度で演算する限り) 30.314546… という値に向かって収斂しているように見える。 一億項のオーダー程度では大きなジャンプが発生するようには見えない。

 一方で、2π が無理数で、n が整数なので、 sin(n) の値が同じ値になることは絶対にない。 同じ値になるためには k2π = n (k は整数であれば良い)が 成立するような n と k の組が必要になるが、 そんな n と k があるぐらいなら最初から「無理数と有理数」などという 数字のジャンル分け自体が存在しないはずだ。

 ということは sin(n) の挙動の内、唯一予想できるのは 絶対 0 にはならない ということだけである。 いっそ 0 になってくれれば発散するとわかるのに、それもないのだ。

 ちなみに、この「大きなジャンプ」を発生させるような N の数列の 規則が(一部でも)判明すれば、 πを計算する速度を圧倒的に高速化できる。 逆に言えば1億項、 つまりたかが8桁かそこらの周辺には次のジャンプはないと思った方が 良さそうである。


 このように収束性というのは意外と判定が難しく騙されやすい。

 読者を騙さないようにするためわざとグラフによる表現を省略したが、 最初の 30項ぐらいのグラフを見ていると本当に収束するような 気分になってしまう。

 これは、別に数学の場合だけに成立する話ではない。 数学モデルに対する予測性が十分ではない、というのはようするに
「あなたが、こういうものに騙されやすい」
「あなたは、このような危険の存在を検知できない」
という意味なのだから。