∑(1/2^n) = 1, n = 1 ~ ∞ である。1/2 + 1/4 + 1/8 + 1/16 + … 延々と
では、どのぐらいで 1になるか?
∑(1/n^2) n = 1 ~ ∞は π^2 / 6 に収束することが知られている。だいたい 1.64だ。これがどのぐらいまで計算すればその値になるかというと。。。先日、計算したら n = 100万では収束しなかった。
てなわけで今日は∑(1/2^n) = 1, n = 1 ~ ∞ の計算である。分母は急速に大きくなるから収束は速いであろうと想像だ。
計算値と収束値の誤差が1E-6ぐらいだとどうか。
1/2 + 1/4 + 1/8 + ... = 1 になるらしいぞ
n=20 までの和は 0.99999904632568359375
n = 20 でだいぶ近いではないか。では誤差を 1E-12にしてみようずら。
1/2 + 1/4 + 1/8 + ... = 1 になるらしいぞ
n=40 までの和は 0.99999999999909050530
うむうむ。しかし、まだ右側の桁をみると足りないなあ。誤差を 1E-18にしてみようずら
1/2 + 1/4 + 1/8 + ... = 1 になるらしいぞ
n=40 までの和は 0.99999999999909050530
おお、だいぶ近い。だが、小数点以下全部 9が並ぶと収束とみなそうばい。誤差 1E-24にした
1/2 + 1/4 + 1/8 + ... = 1 になるらしいぞ
n=54 までの和は 1.00000000000000000000
おんや、収束しとる。うーむ。∑(1/n^2) は n = 100万でも収束しなかったのにぃ。。。
∑(1/2^n), ∑(1/n^2) この違い。分母が急激に大きくなるので収束が速いのだな。
ここら数学の本では無限大で収束するとだけ書いてあって実際の数値計算例がない。もっとも n = 54で収束した・・・・とワタクシが考えるのは半分は正しいかもだが半分は間違っていよう。いや、カンポキに間違いかもな。もっと精度を上げれば n = 54 でジャスト1.0にはならないのだろうさ~。
どこまでも精度を上げれば・・・そうすることができれば、収束するのは無限大であるというのが数学の屁理屈ってことだろ。知らんけど。
数学の抽象思考では、1,2,3で次はたくさーーーーん。この たくさーーんが無限大なのだ。一気に数から抽象思考へ頭脳明晰な連中は飛躍するのだ。愚脳のワタクシはそれができないのだ。これは仕方がない。愚脳だからな(´・ω・`)
だが上のような計算を実際にやって見ることで無限大ってなんだろけってあたりの理解が進む気がするのだ。100万でも100兆でも、それは無限大ではない。無限大は たくさーん! という抽象的な概念なので数字が出てきた瞬間に無限大ではなくなるのだ。そう考えることにしている次第である。
ちなみに10兆とか100兆とかの計算(∑(1/n^2 の方)をDELL OPTIPLEX 7010SFF Win 11 23H2(非推奨PC)でやるととんでもなく時間がかかるのもわかった。そりゃそうだってか。これだって愚脳のワタクシは自分でやってみて とんでもなく時間がかかるって 分かったのであってな。
C++のコード(の一部)
while(fabs(s - const_value) >= 1E-24 ){
s += 1.0/pow(2, k); // 1/2, 1/2^2, 1/2^3 収束して 1 のはず
k += 1;
}
ちなみに int n だと21億ぐらいが上限なので、それを超えそうな時は long long int ってつかうのだよよよん。これも自分でやってみて分かったのであって(笑)
というわけで、ゼータ関数の本を読むかい。図書館にあったので借りている。オイラーとリーマンの話でもある。抽象数学の典型だわな。ワタクシはそういうのは数学の屁理屈と呼ぶことにしている。だって分からんので悔しいす(´・ω・`)
posted by toinohni at 06:55| 東京 🌁|
Comment(0)
|
ソフト系雑学
|
|