(*2回繰り返し計算する*) y=(1 - (1-y^4) ^ (1/4)) / (1 + (1-y^4) ^ (1/4)) a=((1+y)^4 * a) - (2 ^ 3) * y * ( 1 + y + y^2)
y=(1 - (1-y^4) ^ (1/4)) / (1 + (1-y^4) ^ (1/4)) a=((1+y)^4 * a) - (2 ^ 5) * y * ( 1 + y + y^2)
(*計算終わり。iが円周率の近似値になる *) i=1/a
(*ガウス・ルジャンドルアルゴリズム*)
(* 初期値の設定。*) a = N[1,100] b = N[1 / Sqrt[2],100] t = N[1 / 4,100]
(* 4回繰り返し計算する *) an = a; a = (a + b) / 2; b = Sqrt[an * b]; t = t - (an - a) ^ 2 an = a; a = (a + b) / 2; b = Sqrt[an * b]; t = t - 2 * (an - a) ^ 2 an = a; a = (a + b) / 2; b = Sqrt[an * b]; t = t - 4 * (an - a) ^ 2 an = a; a = (a + b) / 2; b = Sqrt[an * b]; t = t - 8 * (an - a) ^ 2
記録更新じゃない (スコア:0)
勝手に新記録と言い張っているか,まわりが勝手に新記録と呼んでいるだけ
検証が無ければ科学的・学術的な価値はまったく無い
Re:記録更新じゃない (スコア:2, 参考になる)
それを言い出すと東大や筑波大の記録更新の検証計算も怪しいですよ(w
東大や筑波大が記録更新および検証に使っている
- ボールウェインの 4 次の収束アルゴリズム
- ガウス・ルジャンドルアルゴリズム
は独立したアルゴリズムではありません。数学的な話はおいておいて、数値計
算すると直感的にわかります。以下Mathematicaで数値計算した結果を挙げて
おきます。
(* ボールウェインの 4 次の収束アルゴリズム。*)
(* 初期値の設定。有効桁は100桁を指定。 *)
y=N[Sqrt[2]-1,100]
a=N[6-4 * Sqrt[2], 100]
(*2回繰り返し計算する*)
y=(1 - (1-y^4) ^ (1/4)) / (1 + (1-y^4) ^ (1/4))
a=((1+y)^4 * a) - (2 ^ 3) * y * ( 1 + y + y^2)
y=(1 - (1-y^4) ^ (1/4)) / (1 + (1-y^4) ^ (1/4))
a=((1+y)^4 * a) - (2 ^ 5) * y * ( 1 + y + y^2)
(*計算終わり。iが円周率の近似値になる *)
i=1/a
(*ガウス・ルジャンドルアルゴリズム*)
(* 初期値の設定。*)
a = N[1,100]
b = N[1 / Sqrt[2],100]
t = N[1 / 4,100]
(* 4回繰り返し計算する *)
an = a; a = (a + b) / 2; b = Sqrt[an * b]; t = t - (an - a) ^ 2
an = a; a = (a + b) / 2; b = Sqrt[an * b]; t = t - 2 * (an - a) ^ 2
an = a; a = (a + b) / 2; b = Sqrt[an * b]; t = t - 4 * (an - a) ^ 2
an = a; a = (a + b) / 2; b = Sqrt[an * b]; t = t - 8 * (an - a) ^ 2
(*計算終わり。jが円周率の近似値になる *)
j=(a+b)^2/(4*t)
(*円周率の正確な値とのエラーを比較 *)
CForm[Pi - i]
(* 出力例: 5.4721091456899418327485331789641785565936917028247615519e-41 *)
CForm[Pi - j]
(* 出力例: 5.4721091456899418327485331789641785565936917028247615519e-41 *)
(* あれ、エラーが同じ値だぞ… *)
CForm[i - j]
(* 出力例: 0.e-98 *)
(*おわり*)
ちなみに、さらに高精度計算したり計算回数を増やしても同じです。
数値計算からわかるように、筑波大の記録更新で本計算および検証に
使われたアルゴリズムは本質的に同じ数列を計算している事になります。
ボールウェインの4次収束アルゴリズムでの一回の繰り返し計算はガウス・ルジャ
ンドルアルゴリズムの二回の繰り返しの計算に相当します。
また別の見方をしますと、これらのアルゴリズムを使った計算では、
円周率への収束判定をミスして、まだ収束しきってないのに計算を打ち切っても、
双方同じ計算結果になります。
# 個人的には東大や筑波大の計算の検証方法の方が信頼性が低いと思っています。
Re: (スコア:0)
東大・筑波大のプログラムにはそんな要素はありませんが?
Re:(あんたばかぁ?) (スコア:0)
プログラム的に独立したアルゴリズムです。
数学的には証明が終わってるので、プログラムにバグが
存在しないか?
その検証に、別のアルゴリズムでの検証という話題になるのです。
その程度の事も区別付かないのに怪しいとか、本当に馬鹿?と言いたい
Re: (スコア:0)
>プログラム的に独立したアルゴリズムです。
元コメは、本計算と検証計算で同じ数列を計算しているため、もしプログラムにバグがあっても、本計算と検証計算で同じ計算結果になる可能性があるという事ですよ。
このような批判を避けるためには、今後の記録更新では、本計算ではガウス・ルジャンドルアルゴリズムを使い、検証計算では高野喜久雄さんの公式を使えばいいんじゃないかな。