pianofisica

Mathematics & Physics, Maxima, a bit Python & Wolfram, and Arts

Bernoulli数・Euler数を求める(MaximaでTaylor展開)

数学の具体的な計算にMaximaを使って、数学もMaximaも同時に学んでしまいましょう。

今回はMaximaを使って、

ある関数のTaylor(テイラー)展開の展開係数として定義されるBernoulli数とEuler数を求めてみます。

Bernoulli数とEuler数は互いに関係しているのですが、それもMaximaを使って確かめてみます。

Maximaのごく基本的な使い方については以下の記事を参照してください:

pianofisica.hatenablog.com


Bernoulli数

Bernoulli数は関数

 \displaystyle{f(x)=\frac{x}{e^x-1}}

 x=0 のまわりでTaylor展開した

  \displaystyle{f(x)=\sum_{n=0}^\infty f^{(n)}(0) \frac{x^n}{n!}}

の展開係数として求められます:

  \displaystyle{B_{n}=f^{(n)}(0)}

つまり

 \displaystyle{\frac{x}{e^x-1}=\sum_{n=0}^\infty B_{n}\frac{x^{n}}{n!}}

です。

Bernoulli数をMaximaで求める

まずMaximaで関数  f(x) を定義します:

f(x):=x/(exp(x)-1);

関数  f(x) x=0 のまわりで  k 次までTaylor展開したものを

f[k]:=taylor(f(x), x, 0, k)$

とします。

Taylor展開の  k 次の係数は

F[k]:=ratcoeff(f[k], x, k)$

によって取り出すことができます。

Beroulli数はTaylor展開の  k 次の係数に  k! を掛けたものなので

B[k]:=k!*F[k]$

としておきます。

最後に、この数を30個並べたリストを作成してみます:

Ber:makelist(B[k], k, 0, 29);

このリスト Ber の k 番目の要素は Ber[k] によって参照することができます。たとえば

Ber[5];

などです。リスト化したことで、要素の番号付けと展開の次数がずれたことに注意してください。

また、リストの個数は

length(Ber);

によって知ることができます。いま30個の要素を並べたので、30という値が出力されたと思います。


実は、わざわざ上のようにして求めなくても、

MaximaにはBernoulli数がすでに組み込まれています bern(k):たとえば

bern(4);

などです。


そこでリスト Ber の各要素に対して、

それが組み込みのBernoulli数に等しいか?という真偽判定をさせてみます:

makelist( is(Ber[k]=bern(k-1)), k, 1, length(Ber));

30個すべての要素について一致することが確認できたと思います。

Euler数

次にEuler数を求めてみます。Euler数は関数

 \displaystyle{g(x)=\frac{2}{e^x+e^{-x}}}

 x=0 のまわりでTaylor展開した展開係数として求められます:

  \displaystyle{\frac{x}{e^x+e^{-x}}=\sum_{n=0}^\infty E_{n}\frac{x^{n}}{n!}}


Euler数をMaximaで求める

Euler数を求めるには、Bernoulli数を求めるMaximaの入力で、

入力する関数を  \displaystyle{f(x)=\frac{x}{e^x-1}} から  \displaystyle{g(x)=\frac{2}{e^x+e^{-x}}} に置き換えればよいでしょう:

g(x):=2/(exp(x)+exp(-x));
g[k]:=taylor(g(x), x, 0, k)$
G[k]:=ratcoeff(g[k], x, k)$
E[k]:=k!*G[k]$
Eul:makelist(E[k], k, 0, 29);

Euler数もMaximaにはすでに組み込まれています: euler(k)

これが上で求めた数と一致するか確認してみましょう:

makelist( is(Eul[k]=euler(k-1)), k, 1, length(Eul));

30個すべての要素について一致が確認できたと思います。

Euler数とBernoulli数の関係

Euler数とBernoulli数の間には

 \displaystyle{E_{2n}=1+\sum_{k=1}^n \binom{2n}{2k-1}\frac{2^{2k}-2^{4k}}{2k}B_{2k}\\ B_{2n}=\frac{2n}{2^{4n}-2^{2n}}\sum_{k=0}^{n-1} \binom{2n-1}{2k}E_{2k}}

の関係が成り立ちます。これをMaximaで確かめてみます:

Eu(n):=1+sum(binomial(2*n,2*k-1)*(2^(2*k)-2^(4*k))/(2*k)*bern(2*k), k, 1, n)$
makelist( is(Eu(n)=euler(2*n)), n, 0, 20);
Be(n):=(2*n/(2^(4*n)-2^(2*n)))*sum(binomial(2*n-1,2*k)*euler(2*k), k, 0, n-1)$
makelist( is(Be(n)=bern(2*n)), n, 1, 21);

確かに成り立っていることがわかります。


キーワードMaxima、Bernoulli数、Euler数