微分、積分などの知識を使って円周率を計算します。まずはじめに、単純なところから。
$\tan \frac{\pi}{4}=1$
$\pi/4$は45度なので、$tan=1$なのはすぐにわかります。そこでtanの逆数arctanを考えます。
$\displaystyle \frac{\pi}{4}=\arctan 1$
ここで$acrtan(x)$について微分をします。この結果は$-x^2$の等比数列となるので、面白い形になります。
$\arctan^{\prime}(x)=\dfrac{1}{1+x^2}=1-x^2 +x^4-x^6 +x^8\cdots$
これを再度、積分してarctanに戻します。
$\displaystyle \arctan(x) = x-\frac{x^3}{3}+\frac{x^5}{5}-\frac{x^7}{7}+\frac{x^9}{9}\cdots$ |
テイラー展開を使わなくても、こんな計算ができるところが素晴らしいことです。
ここで$x=1$を代入すると次の通りになります。
$\displaystyle \frac{\pi}{4}=1-\frac{1}{3}+\frac{1}{5}-\frac{1}{7}+\frac{1}{9}\cdots$ |
total=0
for i in range(100):
total+=(-1)**i*1/(2*i+1)
total*4
3.1315929035585537
とりあえず計算はできましたが、100回ループを回しても3.131とあまり精度が良くありません。
そこで、少し工夫してみます。
$\displaystyle\arctan a+\arctan b=\arctan\left(\frac{a+b}{1-ab}\right)$
となるので、arctan 1を考えると、$\displaystyle \frac{a+b}{1-ab}=1$を満たすa,bの一つとして$a=\frac{1}{2};b=\frac{1}{3}$があるので次の式の通りになります。
$\arctan 1=\displaystyle\arctan \frac{1}{2}+\arctan \frac{1}{3}$
ここからpthonで簡単に計算をすると次の通りになります。
total=0
for i in range(100):
num=2*i+1
total+=(-1)**i*(1/(num*(2**num)))+(-1)**i*(1/(num*(3**num)))
total*4
3.1415926535897922
3.14159265358979まで、小数点第14桁まで正しく計算できました。ちょっとした工夫で精度が上がるものです。