|
既に、ネイピア数については、T8117 長いネイピア数 にて、高精度に求めているが、e の定義に基づいて値を求めてみた。 多倍長で行った例は、ネイピア数2 で紹介している。 ●定義 オイラーによれば、ネイピア数(自然対数の底)は、 e = lim(1 + 1/n)n [n → ∞] である。よく見ると、1に限りなく近い数を、無限回掛け合わせることで得られる。真に、微妙なところで決まる神秘的な数である。 ●実験内容 n を128 から、億まで変えてみて、収束程度を観察する。 ●実験方法 ここでは、多倍長演算ではなく、ネイティブな浮動小数点で演算する。n、計算値、誤差などをリストする。開始のNと、試技回数を指定して、N は、前回の倍とする。 今回は、Double で演算するため、1/N をきれいな二進数にすべく、N = 2k となるようにしている。これであれば、1/64 = [0.000001]二進 と、誤差のない値となるので、少しは正しくでる。 ●結果 N = 268,435,546 まで計算
●考察 グラフから、結構早く収束している。N = 268,435,546 では、小数点以下8桁まで正しい。また、誤差は最後まで連続的の減少しているので、演算誤差はこの範囲では破綻していないことが伺える。 より真値の近い値を望むなら、本法ではなく、別の方法が望ましい。 ●実験のコード 演算は、Double で行う。冪乗演算は、自分で掛け合わしている。
frgPは結果表示のための自製グリッド
Dim Ns As Integer = 64
'開始のN Dim i, k, N As Integer |