next up previous
Next: A. PRINT USING Up: 3.1 どの方法を使う? Previous: 3.1.2 AGM でやってみようか

3.1.3 色々な $ \arctan$ 公式を比較する

http://nalab.mind.meiji.ac.jp/~mk/syori2-2006/jouhousyori2-2006-05/node16.htmlで紹介した公式を比較してみるのも面白いです。

こういうのは実際に試してみて初めて分かることが多く、 挑戦できる腕力のある人は是非やってみることをお勧めします。

いくつかアドバイスをします。

(1)
たくさんの $ \arctan$ を計算するので、 $ \arctan$ の計算を副プログラム (関数またはサブルーチン) にすることを お勧めします。 次のサンプル・プログラムは、 piarctan.bas を外部副関数を使って計算するように書き換えたものです。

REM piarctan2.bas --- マーダヴァ・グレゴリー・ライプニッツ級数でπを計算
REM arctanの級数の計算は外部副関数に任せることにした。
DECLARE EXTERNAL FUNCTION arctan
INPUT x
INPUT n
LET  s=arctan(x,n)
PRINT "arctan(x)≒";s
print "その4倍";4*s
PRINT USING "πとの差=-%.###^^^^^^":4*s-PI
END

EXTERNAL FUNCTION arctan(x,n)
REM arctan x の級数を第 n 項まで計算
LET  f=-x*x
LET  t=x
LET  s=0
for j=1 to n
   LET  a=t/(2*j-1)
   LET  s=s+a
   LET  t=f*t
NEXT j
LET  arctan=s
END FUNCTION
(2)
一体級数の部分和 $ s_n(x)$ は、 $ n$ をどこまで大きく取れば十分な精度を持つのか。 一般にはそれほど簡単ではありませんが、 今考えている $ \arctan$ の級数の場合は、 各項の絶対値が単調に減少する交代級数になるので、 次の Leibniz の定理によって簡単に分かります ($ s_n$ の誤差は、次に足す項の絶対値 $ a_{n+1}$ 以下である)。
交代級数に関する Leibniz の定理
数列 $ \{a_n\}_{n\ge 1}$ は単調減少 ( $ a_1\ge a_2\ge \cdots$) で、 $ \dsp\lim_{n\to\infty}a_n=0$ を満たすとき、級数

$\displaystyle s=\sum_{n=1}^\infty (-1)^{n-1}a_n
=a_1-a_2+a_3-a_4+\cdots
$

は収束する。第 $ n$ 部分和を $ s_n$ とすると、

$\displaystyle s_{2n}\le s\le s_{2n-1}$   $\displaystyle \mbox{($n\in\N$)}$$\displaystyle ,
$

$\displaystyle \left\vert s-s_n\right\vert\le a_{n+1}$   $\displaystyle \mbox{($n\in\N$)}$

が成り立つ。

次に掲げる結果は、 100桁程度の精度を得るために、 級数の和を何項加える必要があるか概算し、 実際にそれを実行するとどれくらいので精度になるかを計算したものである。

大体どれくらいか…

シャープ
第 205 項まで加えて要求精度を達成しました。
 9.81E-101

マチン 2項公式
第 71 項まで加えて要求精度を達成しました。
第 22 項まで加えて要求精度を達成しました。
 1.20E-101

Gauss 3項公式
第 40 項まで加えて要求精度を達成しました。
第 29 項まで加えて要求精度を達成しました。
第 22 項まで加えて要求精度を達成しました。
 1.23E-102

Gauss 4項公式
第 32 項まで加えて要求精度を達成しました。
第 29 項まで加えて要求精度を達成しました。
第 22 項まで加えて要求精度を達成しました。
第 21 項まで加えて要求精度を達成しました。
 1.09E-103

Gauss 9項公式
第 14 項まで加えて要求精度を達成しました。
第 13 項まで加えて要求精度を達成しました。
第 13 項まで加えて要求精度を達成しました。
第 12 項まで加えて要求精度を達成しました。
第 12 項まで加えて要求精度を達成しました。
第 11 項まで加えて要求精度を達成しました。
第 11 項まで加えて要求精度を達成しました。
第 10 項まで加えて要求精度を達成しました。
第 10 項まで加えて要求精度を達成しました。
 7.45E-106

高野喜久雄の4項公式
第 30 項まで加えて要求精度を達成しました。
第 29 項まで加えて要求精度を達成しました。
第 22 項まで加えて要求精度を達成しました。
第 11 項まで加えて要求精度を達成しました。
 7.29E-105

Stormerの4項公式
第 29 項まで加えて要求精度を達成しました。
第 22 項まで加えて要求精度を達成しました。
第 18 項まで加えて要求精度を達成しました。
第 13 項まで加えて要求精度を達成しました。
 7.73E-104

この結果をどう分析すべきか… 書きたくてむずむずするけれど、 誰かにやって欲しいので書きません。


next up previous
Next: A. PRINT USING Up: 3.1 どの方法を使う? Previous: 3.1.2 AGM でやってみようか
Masashi Katsurada
平成20年10月18日