Leibniz の公式の収束オーダーと誤差について

Leibniz の公式,円周率πを計算するにはあまりにも遅いということでは有名ですが,その誤差がこういう面白い性質を持つというのは知りませんでしたね.興味深いことです.
5
ぱっぷす=むぎゅたん @Pappus_Mugyutan

@n0_longer_humqn 収束は確かに遅いんだけど、10^-8くらいだったらまあなんとかできる。不正確ってどういう意味?

2016-01-30 15:11:25
madoka_0723 @n0_longer_humqn

@Pappus_Mugyutan 自分でも?なんですがここらへん間違ってるんですよね? pic.twitter.com/re1z1TgHSx

2016-01-30 15:14:45
拡大
ぱっぷす=むぎゅたん @Pappus_Mugyutan

@n0_longer_humqn あり変わらず適当なwikipediaだなw 多分計算回数が多すぎてコンピューター丸め誤差が出てきてしまっているということだと思うが、まあ計算環境を変えれば解消されるので、アルゴリズムが間違っているわけではない。

2016-01-30 15:17:06
Tomoki UDA @t_uda

いやたぶんそれは丸め誤差関係なく実際にその桁までしか計算できない

2016-01-30 16:52:37

※註:たまたま TL を遡っていた数値計算ヤクザが「丸め誤差」にキーワード反応してエアリプしたところです.その前の会話の流れは一切知らん.

ぱっぷす=むぎゅたん @Pappus_Mugyutan

@t_uda 計算できないっていうのはどういう意味ですか?

2016-01-30 17:08:21
Tomoki UDA @t_uda

@Pappus_Mugyutan あとで実際に試しのでちょい待ち

2016-01-30 17:27:12
Tomoki UDA @t_uda

@Pappus_Mugyutan 組み込みの数学定数,愚直に和を計算する方法,丸め誤差の影響が少ない和を計算する方法 (Kahan summation),多倍長十進 100 桁精度版 Kahan sum の比較です. pic.twitter.com/qihDu0CO0B

2016-01-30 18:04:37
拡大
Tomoki UDA @t_uda

@Pappus_Mugyutan 端的に述べると,500 万回程度の和では丸め誤差の影響は 10^{-7} のところまで及びません.ただ実際,和の形が桁落ちの発生しやすい形になっているので,どの方法でも 16 桁目で誤差が生じています(が,その程度です).

2016-01-30 18:09:44
Tomoki UDA @t_uda

@Pappus_Mugyutan というかその wikipedia の下のところにも書いてあるけど,Leibniz 級数の 500 万項の部分和の誤差は O(10^{-7}) だそうです.1000 万 = 10^7 の 7 ね.

2016-01-30 18:13:49
そすうぽよ @_primenumber

@Pappus_Mugyutan @N0_Longer_Humqn (無限精度で計算しても)500万項目までで打ち切るとこうなるというだけでしょ

2016-01-30 18:13:51
ぱっぷす=むぎゅたん @Pappus_Mugyutan

@t_uda なるほど。でもここでは7桁以降の桁は一致してるみたいなことが書いてありますがどういうことなのでしょうか。

2016-01-30 18:21:13
Tomoki UDA @t_uda

@Pappus_Mugyutan それもその下の式見てみ.誤差が N^{-2m-1} の和で近似されるって書いてある.だから N を 10 の冪(例えば 1000 万)でとると,誤差が出てくる桁がぴったり予測できるらしい(これは私も知らなかった).

2016-01-30 18:23:20
ぱっぷす=むぎゅたん @Pappus_Mugyutan

@t_uda なるほど。誤差がべき級数で近似できるという意味ですか。これってNを動かしているということですかね。じゃあキリの良い回数以外ではこういうことは起こらないということでしょうか。よくわかりません。

2016-01-30 18:28:06
Tomoki UDA @t_uda

@Pappus_Mugyutan この書き方を信じるならキリの良い N じゃなくても誤差の式成り立つっぽいけどね.そこはニョロまかして(誤魔化して)書いてあるからわからん.たぶん 4 冪なら 4 進法で誤差のある桁わかるんじゃない?

2016-01-30 18:34:08
ぱっぷす=むぎゅたん @Pappus_Mugyutan

@t_uda 10進展開したときに部分的に一致するのは10べきのときだけということですよね。(どうやってこの評価を得るのかさっぱりわからない)

2016-01-30 18:37:02
ぱっぷす=むぎゅたん @Pappus_Mugyutan

これが本当なら収束遅いわけではないし、アルゴリズム複雑になるけど問題なく求められる(そもそもこの近似の速度が謎だが)

2016-01-30 18:39:14
Tomoki UDA @t_uda

@Pappus_Mugyutan あぁ,そうだね.10 進展開で一部以外の桁はだいたいあっている,っていう奇妙なことが起きるのは 10 冪のときだけだね.(この評価なぞ過ぎる……)

2016-01-30 18:39:26
ぱっぷす=むぎゅたん @Pappus_Mugyutan

@_primenumber @n0_longer_humqn でもこれってnケタ目までを一度の計算で揃えようと思わなければ、500万項計算した時点で40ケタくらいまで求められてるってことですよね。(本当なのか)

2016-01-30 18:42:35
そすうぽよ @_primenumber

@Pappus_Mugyutan @n0_longer_humqn wikipediaの記述が正しければそう(もっと収束速い方法があるから実用性はないけど)

2016-01-30 18:44:26
ぱっぷす=むぎゅたん @Pappus_Mugyutan

@_primenumber @n0_longer_humqn これが円周率の場合の特殊なケースなら良いですけど、こういうことが他にも成り立つならそもそも収束が早いというときにどういうことを考えるべきかは変わってくるのでは?

2016-01-30 18:45:51
ぱっぷす=むぎゅたん @Pappus_Mugyutan

まあ級数に調整を加えているというだけか

2016-01-30 18:50:25