円周率πの値の計算

Jan.2020

S&S

$\pi$の値を計算したい。
\[ \tan \frac{\pi}{4}=1 \] だから、
\[ \arctan{1}=\frac{\pi}{4} \] \[ \pi=4\arctan{1} \] $\arctan{1}$が計算できれば$\pi$の値は求まる。
$y=\arctan{x}$の展開式を知りたい。まず、
\[ \frac{dy}{dx}=\frac{d\arctan{x}}{dx} \] を求めてみる。$x=\tan{y}$だから、
\[ \frac{dy}{dx}=\frac{1}{\frac{dx}{dy}} \] \[ =\frac{1}{\frac{d\tan{y}}{dy}}=\frac{1}{\frac{d}{dy}\frac{\sin{y}}{\cos{y}}} \] \[ =\frac{1}{\frac{\cos^2{y}-\left( -\sin^2{y} \right)}{\cos^2{y}}} \] \[ =\frac{1}{1+\frac{\sin^2{y}}{\cos^2{y}}} \] \[ =\frac{1}{1+\tan^2{y}}=\frac{1}{1+x^2} \] \[ \frac{dy}{dx}=\frac{d\arctan{x}}{dx}=\frac{1}{1+x^2} \] であることがわかった。

\[ f=1-x^2+x^4-x^6+x^8-\dots \] の値を求めたい。
\[ f_n=1+\left( -x^2 \right)+{\left( -x^2 \right)}^2+{\left( -x^2 \right)}^3+\dots+{\left( -x^2 \right)}^n \] と置く。
\[ \left( -x^2 \right) f_n=\left( -x^2 \right)+{\left( -x^2 \right)}^2+{\left( -x^2 \right)}^3+\dots+{\left( -x^2 \right)}^{n+1} \] \[ f_n-\left( -x^2 \right) f_n=1-{\left(-x^2 \right)}^{n+1} \] \[ \left( 1+x^2 \right) f_n=1-{\left(-x^2 \right)}^{n+1} \] \[ f_n=\frac{1-{\left(-x^2 \right)}^{n+1}}{1+x^2} \] $|x|<1$の時、$n\to\infty$で、
\[ f=f_\infty=\frac{1}{1+x^2} \] よって、
\[ \frac{dy}{dx}=\frac{d\arctan{x}}{dx}=\frac{1}{1+x^2} \] \[ =1-x^2+x^4-x^6+x^8-\dots \] 不定積分して、
\[ y=\arctan{x}=C+x-\frac{x^3}{3}+\frac{x^5}{5}-\frac{x^7}{7}+\frac{x^9}{9}-\dots \] $\arctan{0}=0$より積分定数$C=0$となることがわかる。
\[ y=\arctan{x}=x-\frac{x^3}{3}+\frac{x^5}{5}-\frac{x^7}{7}+\frac{x^9}{9}-\dots \] これが$|x|\ge 1$でも成り立つと考えて、最初に戻ろう。
$\pi=4\arctan{1}$であった。したがって、
\[ \pi=4\arctan{1}=4\left( 1-\frac{1}{3}+\frac{1}{5}-\frac{1}{7}+\frac{1}{9}-\dots \right) \] 早速数値計算しよう。
私はubuntu(Linux)のC言語コンパイラgccを使ったが、 他のコンパイラでもかまわない。
ソースコードは、

#include <stdio.h>
#include <stdlib.h>

void main()
{
 double wa = 0.0;
 int n = 1;

 while (n < 1000000000) {
  wa = wa + 1.0 / (double)n;
  if (n > 1000000000 - 20)
   printf("%d %11.10lf\n",n,wa * 4.0);
  n += 2;
  wa = wa - 1.0 / (double)n;
  if (n > 1000000000 - 20)
   printf("%d %11.10lf\n",n,wa * 4.0);
  n += 2;
 }
 printf("end\n");
}
実行結果は、
999999981 3.1415926556
999999983 3.1415926516
999999985 3.1415926556
999999987 3.1415926516
999999989 3.1415926556
999999991 3.1415926516
999999993 3.1415926556
999999995 3.1415926516
999999997 3.1415926556
999999999 3.1415926516
end
9桁程度の精度で円周率$\pi$の値が計算できた。

トップページへ