6

円周率を手計算で近似する話

696
0
$$\newcommand{C}[0]{\mathbb{C}} \newcommand{N}[0]{\mathbb{N}} \newcommand{Q}[0]{\mathbb{Q}} \newcommand{R}[0]{\mathbb{R}} \newcommand{Z}[0]{\mathbb{Z}} $$

はじめに

この記事では,僕流の$\pi$の近似の仕方について少しお話したいと思います. 現在,円周率の値はコンピュータの計算によって数十兆桁までわかっています.しかし,それ以前の時代では,偉大なる数学者たちが円周率の近似を手計算で求めていました.(その歴史については下のリンクから見れます.)手計算でやることの楽しさと難しさが伝わればいいなと思います.

円周率の歴史

近似の手順

ここから,僕がやっている近似の方法について話します.近似の手法は次の通りです.

区間$a\leq x\leq b$においてほぼ$0$となる関数$f(x)$で,
$\displaystyle \int _a^b f(x)dx=A\pi+B$
のかたちで表されるものを見つけてくる.このとき $\displaystyle \int _a^b f(x)dx\fallingdotseq 0$であることを利用して
$\pi \fallingdotseq-\displaystyle \frac{B}{A}$ と近似できる.
  

これだけ見ても分かりずらいと思うので,簡単な例を見ていきましょう.

$\displaystyle a=0, b=\frac{\pi}{6},f(x)=(1-\cos x)^2$とすると,
$\displaystyle \int_0^{\frac{\pi}{6}}(1-\cos x)^2~dx=\frac{1}{8}(2\pi-8+\sqrt{3})$
$(1-\cos x)^2$$x=0$の近くではほぼ$0$なので,
$\pi \fallingdotseq \displaystyle \frac{8-\sqrt{3}}{2} \fallingdotseq 3.13397$

こんな感じで$\pi$を近似することができます.さらに言えば,被積分関数は常に$0$より大きいので,$\pi>3.13$$\pi$を下から評価することもできます.

近似の精度を高めるために

積分区間を短くする

先程の例において,$b=\displaystyle \frac{\pi}{12}$としてみましょう.

$\displaystyle \int_0^{\frac{\pi}{12}}(1-\cos x)^2~dx$$\displaystyle=\frac{1}{8}(\pi+1+4\sqrt{2}-4\sqrt{6})$
よって$\pi \fallingdotseq \displaystyle 4\sqrt{6}-4\sqrt{2}-1 \fallingdotseq 3.14110$

先程よりも良い近似ができました.この近似のやり方は$\displaystyle \int _a^b f(x)~dx$$0$とみなすことによって行っていたので,区間が大きくなればなるほど,誤差が大きくなってしまい,精度が悪くなってしまいます.

マクローリン展開を考える

冒頭の近似のやり方において,$a\leq x\leq b$においてほぼ$0$となる関数$f(x)$を見つけてくるといいましたが,これについてもう少し詳しく話します.ここでは$a=0$の場合に限った話とします.先ほども述べましたが,この近似のやり方は$\displaystyle \int _0^b f(x)~dx$$0$とみなすことによって行っていました.ですので,精度を高めるためには,$x=0$付近において$f(x)$ができるだけ$0$に近づける必要があります.したがって,$f(x)$をマクローリン展開したとき,最低次数が大きくなるようにすればよいです.
 極端な例を考えましょう.(WolframAlphaを使いました)

$\displaystyle \int_0^{\frac{\pi}{12}}\sin^{50}x~dx$$=\displaystyle\frac{3}{9200741448727239065600}(28694856520796265800\pi$$-253864564330649356346 $$+ 94522062039795105625\sqrt{3})$
これより$\pi\fallingdotseq 3.141592653589793238462643383276999$

小数第$29$位まで一致しました.なぜここまで精度が高いかといえば,$\sin^{50}x=x^{50}+O(x^{52})$だからです.とはいえ$\sin^{50}x$を手計算でやるのは不可能に近いです.手計算が可能かつマクローリン展開したときに最低次数が大きくなる$f(x)$をうまく見つけられるかがポイントになってきます.
 なお,先ほど登場した$(1-\cos x)^2$$(1-\cos x)^2=\displaystyle \frac{1}{4}x^4+O(x^6)$で,簡単な関数にしてはかなり良い関数になっています.
 ここで登場したランダウの記号($O(x)$)については,湧水さんの記事を参照してください.
  湧水さんの記事

僕が見つけた$3.1415<\pi<3.1417$の証明

最後に僕が今まで試行錯誤したなかで一番うまくいった例を示します.

$\pi>3.1415$の証明
$\displaystyle \int_{0}^{\frac{\pi}{12}}\sin ^2x\tan^4x~dx$
$\displaystyle= \int_{0}^{\frac{\pi}{12}}\left(\sin^2x+\tan^4x-\tan^2x \right)dx$
$\displaystyle=\int_{0}^{\frac{\pi}{12}} \left\{\frac{1}{2}(1-\cos2x) +(\tan x)'\tan^2x-2\tan^2 x \right\}dx$
$\displaystyle= \frac{1}{12} \biggl[30x-3\sin 2x +4\tan^3x-24\tan x \biggr]_0^{\frac{\pi}{12}}$
$\displaystyle= \frac{1}{12} \left\{ 30\cdot \frac{\pi}{12}-3\cdot \frac{1}{2}+4(2-\sqrt{3})^3-24(2-\sqrt{3})\right\}$
$\displaystyle=\frac{5\pi+109-72\sqrt{3}}{24}$
これが$0$より大きいことと$\sqrt{3}>1.73205$より
$ \displaystyle \pi>\frac{72\sqrt{3}-109}{5}>\frac{72\cdot1.73205-109}{5}=3.14152>3.1415$

$\pi<3.1417$の証明
$\displaystyle \int_{0}^{\frac{\pi}{12}}\sin ^4x\tan^2x~dx$
$\displaystyle=\int_{0}^{\frac{\pi}{12}} \left(\tan^2x-\sin^4x-\sin^2x \right)dx$
$\displaystyle=\int_{0}^{\frac{\pi}{12}} \left\{\tan^2x-\frac{1}{8}(\cos4x-4\cos2x+3)-\frac{1}{2}(1-\cos2x)\right\}dx$
$\displaystyle= \frac{1}{32} \biggl[-60x+32\tan x-\sin4x +16\sin 2x\biggr]_0^{\frac{\pi}{12}}$
$\displaystyle=\frac{1}{32} \left\{ -60\cdot\frac{\pi}{12}+32(2-\sqrt{3})-\frac{\sqrt{3}}{2}+16\cdot \frac{1}{2}\right\}$
$\displaystyle=\frac{-10\pi+144-65\sqrt{3}}{64}$
これが$0$より大きいことと$\sqrt{3}>1.73205$より
$ \displaystyle \pi<\frac{144-65\sqrt{3}}{10}<\frac{144-65\cdot1.73205}{10}=3.141675<3.1417$

ここで登場した$\sin ^2x\tan^4x$$\sin ^4x\tan^2x$をマクローリン展開すると
$\displaystyle \sin ^2x\tan^4x=x^6+x^8+O(x^{10})$
$\displaystyle \sin ^4x\tan^2x=x^6+\frac{2}{15}x^{10}+O(x^{12})$
になります.

さいごに

以上でこの記事は終わりです.みなさんも$\pi$を手計算で近似してみませんか?最後まで読んでいただきありがとうございます.

投稿日:202126

この記事を高評価した人

高評価したユーザはいません

この記事に送られたバッジ

バッジはありません。

投稿者

とりゐ
とりゐ
129
12000
数学好きな大学1年生です。ゆる~く記事を書いていきます

コメント

他の人のコメント

コメントはありません。
読み込み中...
読み込み中