pythonでバーゼル問題を考える3
これまで$${\sin x}$$のワイエルシュトラスの因数分解定理(無限乗積展開)である(1)式とTayler展開をした(2)式の$${x^3}$$の係数を比較することで、(3)式を導き、$${\pi}$$の値を計算しました。
$${\displaystyle \sin x =x\left(1-\frac{x^2}{\pi^2}\right)\left(1-\frac{x^2}{2^2\pi^2}\right)\cdots\left(1-\frac{x^2}{n^2\pi^2}\right)=x\prod_{n=1}^{\infty}\left(1-\frac{x^2}{n^2\pi^2}\right) \cdots(1)}$$
$${ \displaystyle \sin x = \sum _{n=0}^{\infty }{\frac {(-1)^{n}}{(2n+1)!}}x^{2n+1} =x-{\frac {x^{3}}{3!}}+{\frac {x^{5}}{5!}}-{\frac {x^{7}}{7!}}+\cdots(2)}$$
$${\displaystyle\sum_{k=1}^{\infty} \dfrac{1}{k^{2}}=1+\frac{1}{2^2}+\frac{1}{3^2}+\frac{1}{4^2}+\frac{1}{5^2}+\frac{1}{6^2}\cdots=\frac{\pi^2}{6}\cdots(3)}$$
(1)の左端に$${x}$$があるため、$${x^5}$$の係数はそれ以降の無限大個の()の積の$${x^4}$$の係数になります。これは、無限大個の()のうちから2つだけが$${\displaystyle \frac{x^2}{n^2\pi^2}}$$でそれ以外は1となる項の係数の総和となるので、次の通り表現できます。 $${\displaystyle\frac{1}{1^2\pi^2\times 2^2\pi^2}+\frac{1}{1^2\pi^2\times 3^2\pi^2}+\frac{1}{1^2 \pi^2\times4^2\pi^2}+\cdots+\frac{1}{2^2\pi^2\times 3^2\pi^2}+\frac{1}{2^2\pi^2\times4^2\pi^2}+\frac{1}{2^2 \pi^2\times5^2\pi^2}+\cdots+\frac{1}{3^2 \pi^2\times4^2\pi^2}+\frac{1}{3^2 \pi^2\times 5^2\pi^2}+\frac{1}{3^2 \pi^2\times 6^2\pi^2}+\cdots\ \displaystyle=\sum_{1\leq n_1\lt n_2}^{\infty}\frac{1}{n_1^2\pi^2\times n_2^2 \pi^2}\cdots(4)}$$
ここで、$${\displaystyle\frac{1}{2^2\pi^2\times 1^2\pi^2}}$$という組合せは含まれないので、Σ記号のfromの部分は$${1\leq n_1\lt n_2}$$となることに注意が必要です。ところで、n個の変数$${X_1,X_2,X_3,X_4,\cdots}$$のうち2つを取り出して積を求め、これらを合計した値、つまり$${X_1 \times X_2+X_1 \times X_3+X_1 \times X_4+X_2 \times X_3+X_2 \times X_4+X_3 \times X_4\cdots=\displaystyle \frac{1}{2}\{(X_1+X_2+X_3+X_4\cdots)^2-(X_1^2+X_2^2+X_3^2+X_4^2\cdots)\}}$$であらわすことができます。ここで$${X_1,X_2,X_3,X_4\cdots}$$を$${\displaystyle \frac{1}{n_1^2 \pi^2},\frac{1}{n_2^2 \pi^2},\frac{1}{n_3^2 \pi^2},\frac{1}{n_4^2 \pi^2}\cdots}$$とおくと(4)式は、
$${\displaystyle\sum_{1\leq n_1\lt n_2}^{\infty}\frac{1}{n_1^2\pi^2\times n_2^2 \pi^2}=\frac{1}{2}\left\{\left(\frac{1}{n_1^2 \pi^2}+\frac{1}{n_2^2 \pi^2}+\frac{1}{n_3^2 \pi^2}+\frac{1}{n_4^2 \pi^2}\cdots\right)^2-\left(\frac{1}{n_1^4 \pi^4}+\frac{1}{n_2^4 \pi^4}+\frac{1}{n_3^4 \pi^4}+\frac{1}{n_4^4 \pi^4}\cdots\right)\right\}=\frac{1}{2}\left\{\left(\sum_{1\leq n}^{\infty}\frac{1}{n^2 \pi^2}\right)^2-\sum_{1\leq n}^{\infty}\frac{1}{n^4 \pi^4}\right\}}$$
となります。ということは、 $${\displaystyle\sum_{1\leq n_1\lt n_2}^{\infty}\frac{1}{n_1^2\pi^2\times n_2^2 \pi^2}}$$は$${\sin x}$$の(2)のtayler展開の$${x^5}$$の係数と等しく$${\displaystyle \frac{1}{5!}=\frac{1}{120}}$$となります。
ここで、$${\displaystyle\frac{1}{2^2\pi^2\times 1^2\pi^2}}$$という組合せは含まれないので、Σ記号のfromの部分は$${1\leq n_1\lt n_2}$$となることに注意が必要です。ところで、n個の変数$${X_1,X_2,X_3,X_4,\cdots}$$のうち2つを取り出して積を求め、これらを合計した値、つまり
$${X_1 \times X_2+X_1 \times X_3+X_1 \times X_4+X_2 \times X_3+X_2 \times X_4+X_3 \times X_4\cdots=\displaystyle \frac{1}{2}\{(X_1+X_2+X_3+X_4\cdots)^2-(X_1^2+X_2^2+X_3^2+X_4^2\cdots)\}}$$であらわすことができます。ここで$${X_1,X_2,X_3,X_4\cdots}$$を$${\displaystyle \frac{1}{n_1^2 \pi^2},\frac{1}{n_2^2 \pi^2},\frac{1}{n_3^2 \pi^2},\frac{1}{n_4^2 \pi^2}\cdots}$$
とおくと(4)式は、
$${\displaystyle\sum_{1\leq n_1\lt n_2}^{\infty}\frac{1}{n_1^2\pi^2\times n_2^2 \pi^2}=\frac{1}{2}\left\{\left(\frac{1}{n_1^2 \pi^2}+\frac{1}{n_2^2 \pi^2}+\frac{1}{n_3^2 \pi^2}+\frac{1}{n_4^2 \pi^2}\cdots\right)^2-\left(\frac{1}{n_1^4 \pi^4}+\frac{1}{n_2^4 \pi^4}+\frac{1}{n_3^4 \pi^4}+\frac{1}{n_4^4 \pi^4}\cdots\right)\right\}=\frac{1}{2}\left\{\left(\sum_{1\leq n}^{\infty}\frac{1}{n^2 \pi^2}\right)^2-\sum_{1\leq n}^{\infty}\frac{1}{n^4 \pi^4}\right\}}$$
となります。ということは、
$${\displaystyle\sum_{1\leq n_1\lt n_2}^{\infty}\frac{1}{n_1^2\pi^2\times n_2^2 \pi^2}}$$は$${\sin x}$$の(2)のtayler展開の$${x^5}$$の係数と等しく$${\displaystyle \frac{1}{5!}=\frac{1}{120}}$$となります。
それでは、次の2式を使い$${\pi}$$を計算してみます。
$${\displaystyle\sum_{k=1}^{\infty} \dfrac{1}{k^{2}}=1+\frac{1}{2^2}+\frac{1}{3^2}+\frac{1}{4^2}+\frac{1}{5^2}+\frac{1}{6^2}\cdots=\frac{\pi^2}{6}}$$
$${\displaystyle\sum_{k=1}^{\infty} \dfrac{1}{k^{4}}=1+\frac{1}{2^4}+\frac{1}{3^4}+\frac{1}{4^4}+\frac{1}{5^4}+\frac{1}{6^4}\cdots=\frac{\pi^4}{90}}$$
kが$${10^{7}}$$まで$${10^{k}}$$ごとに$${\pi}$$を計算します。
power = 7
sigma2 = sigma4 = 0
kubun = 10
digits =15
for i in range(1,10**power + 1):
sigma2 += 1/(i ** 2)
sigma4 += 1/(i ** 4)
if i == kubun:
print(f'{i:>8},n=2:{(sigma2*6)**(1/2):.{digits}f} n=4:{(sigma4*90)**(1/4):.{digits}f})')
kubun *= 10
#output
10,n=2:3.049361635982070 n=4:3.141384622466971)
100,n=2:3.132076531809105 n=4:3.141592415307368)
1000,n=2:3.140638056205995 n=4:3.141592653348270)
10000,n=2:3.141497163947215 n=4:3.141592653589592)
100000,n=2:3.141583104326456 n=4:3.141592653589592)
1000000,n=2:3.141591698660509 n=4:3.141592653589592)
10000000,n=2:3.141592558095903 n=4:3.141592653589592)
$${\pi=3.141592653589793}$$なのでn=4の方が精度が高くなります。
この記事が気に入ったらサポートをしてみませんか?