2024年05月13日

一日一項目 級数和の計算してアーーーソブ またかよ

∑(1/n^2) は収束する。π^2 / 6 になる。1.64ぐらいだ(笑) これは昔のエライ数学者が照明したらしいのだ。ここで n –> 無限大の場合ね。
実際にはn –>∞って計算できるはずもないので想像だろけどな。数学の屁理屈では収束するというコトだ。
ところで∞ってどのぐらいかしら。∞は数字ではないのだが、では ∑(1/n^2) をn = 1 ~ インクリインクリしていってどのぐらいで収束値にどのぐらい近づくかしらという興味が出たばい。

C++  の一部
for(n = 1 ; n <= n_max ; n++){
    summation += 1.0/(pow((double)n,2));  // 指数が1 より大だと収束するという話

これで n = 100 億まで計算してみた。その場合には n は long long int にしないとならない。int だと 21億ぐらいが上限だからだ。どーや。知らなかっただろ。うむ。ワタクシは知らなかったさ~(笑)
結果
image

1/n^2 の収束は = 1.6449340668482264061   計算値ね。
100億で n = 10000000000 までの和は  1.64493405783457502523 

1.6449340668482264061   収束値の理論値 
1.64493405783457502523 100億までの計算値

  誤差が 10のマイナス9乗のオーダーである。収束していない。100億では収束しない。よーし、こうなったら 100兆まで計算してやるか・・・・・ やらんわい(笑)

次はこのコードをOpenMPで並列化してみる。上は370秒ぐらいだがOpenMPで半分ぐらいになったら 100兆まで計算してみるぞ。夜に仕掛けたら明日の朝には・・・・
その場合にはWin 11の電源オプションでスリープ設定は解除しとけよ。この間は別の計算で夜に仕掛けて翌日の朝に見たらPCがスリープしていたで コンコンチキ!!

というわけで数学の抽象的な話では実際の数字は出てこない。無限大で収束する・しないという議論では無限大ってどんなんだいって思うのだが具体的には数字が出ない。数字が出たら、それは無限大ではないからね。
こういうところにモヤモヤを感ずるワタクシは一応計算してみて、おお、100億まで行っても収束しないぞ、100兆までだったらどうなるかしら・・・・などと試行錯誤するのが趣味なのである。抽象数学は賢い連中にまかせちゃう(笑) ワタクシは抽象数学は苦手だが中小では数学できたで(笑) どや。
なにが? 

ところで、誤差がどのぐらいになれば収束したと言えるか?  それは倍精度での限界まで行っても、それも無限大ではないからねえ。数字が出た瞬間に無限大ではなくなるからねえ。そこらがヤダねえ。誤差が 10のマイナス300乗とかね。。。。そこまで計算すると数億年ぐらいかかっても達しないだろな。知らんけど。

posted by toinohni at 11:57| 東京 ☔| Comment(0) | 物理科学雑学 | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
コチラをクリックしてください