数値解析日記

数値解析関係のネタ帳。C++,pythonなど

n=5000兆でヤコブ・ベルヌーイのeの定義は使えるか?

n=5000兆でヤコブ・ベルヌーイのeの定義は使えるか?

https://twitter.com/nrmti/status/868980739047530496 の検証
見づらかったら、ここ見てね 素のコード jupyter ipynb

言語はPythonです。

import decimal
decimal.Context()
Context(prec=28, rounding=ROUND_HALF_EVEN, Emin=-999999, Emax=999999, capitals=1, clamp=0, flags=[], traps=[InvalidOperation, DivisionByZero, Overflow])

5000兆円欲しい

want = decimal.Decimal(5000 * 10 ** 12)
want
Decimal('5000000000000000')

不要かもだけど

one = decimal.Decimal('1')
one
Decimal('1')

wikipediaの収束数列による定義を参照

e = (one + one / want) ** want
e
Decimal('2.718281828459044963532104625')
import math
math.e
2.718281828459045

うーん、まあまあか

おまけ: doubleでやると

double_want = 5000 * 10 ** 12
e = (1 + 1 / double_want) ** double_want
e
3.0350352065492636

ダメダメですね