0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

ネイピア数と虚数と円周率

Last updated at Posted at 2021-09-09

はじめに

オイラーの等式と呼ばれる式がある。
e^iπ+1=0
一見関係のない3つの数、ネイピア数と虚数と円周率の間に関係性があるという式。
eとπは無理数で、それぞれの計算式の一例は以下のとおり。
e=Σ1/n! (n=0~∞)

ラマヌジャンよりも収束の速い、チュドノフスキーの式を使って、
sum = Σ((-1)^n*(6n)!(13591409+545140134n))/((3n)!n!^3(640320^3)^(n+0.5))  (n=0~∞)
π = 1/(12*sum)

πの計算は、n=0とn=1を計算すれば、十分な精度が得られる。
ここで、十分とはコンピュータプログラムで一般的に扱える64bit幅の精度のことで、大体15桁。

エクセルでPI()とかEXP(1)を使っても、桁数の限界があるので、これ以上は面倒すぎてやめる。また、エクセルは内部的にeを持ってるのはなくて、同じように近似計算してるのかも。

こうしてみると、
ネイピア数の計算式も、高速に求める式はありそうだ。

問題は、虚数空間と円周率に関係性が見出せるか。面積を何かの式で表すことが出来るか、だ。

さて、プログラムでこういった無理数の計算をすると、必ず、有効桁数の問題にぶつかる。floatが32bitでdoubleが64bit、それぞれおよそ7桁、15桁ぐらいの精度。これ以上になると、専用ライブラリを使う必要が出てくる。

これまでも、簡単なライブラリがないか、調べてはいるもののピンとくるものがない。今回見つけたのは、pythonのdecimal。
decimal.getcontext().prec = 100;//有効桁数指定
decimal.Decimal(1)として使う。
しかし、pythonは速いのか、ライブラリは速いのか問題があって、まだ使ってみる気になってません。

ネイピア数の計算.png

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?