fortran66のブログ

fortran について書きます。

超伝導の積分 数値でチェック

超伝導積分とは、\int_0^D \tanh(x)/x\,dxのことで、中途半端に解くのが難しく普通の演習書の範囲を超えるが論文等に解き方を載せるほどでもないレベルで、レポート等で出されて困らせられるものです。しばらく前に雑誌の固体物理に、詳しい解法が載ったことがあった気がします。

幾つか解き方がありますが、私の学生時代に知られていた解法は、部分積分して [\log(x)\tanh(x)]-\int_0^D \log(x)/\cosh^2(x) dxの形にしてから、複素積分に持ち込む方法と、hyperbolic 関数を無限積の形に直してから項別に積分する方法でした。固体物理に載ったのも同じ解法でした。今の時代はネットもあるし、機械が積分とかしてくれるので力技でゼータ関数を集めてくる方法もあるようです。

さて積分 \int_0^D\log(x)/\cosh^2(x)\, dx積分区間の上限は十分大きいとして無限大にして解くことになっていたのですが、それを Maple で計算して確かめてみます。

f := proc (b) options operator, arrow; evalf[20](-(int(log(x)/cosh(x)^2, x = 0 .. b))) end proc;
 
f(infinity)
0.81878014017202330530

無限大までの積分値は Euler定数\gammaを用いて\gamma-\ln(\pi/4)となります。残念ながら Maple の Identify 関数は正解を見つけてくれませんでした。

gamma-ln((1/4)*Pi);
evalf(%, 20);
0.81878014017202330530

`$`(f(b), b = 1 .. 10);
0.9096747536, 0.8511986323, 0.8249322648, 0.8197852461, 0.8189345840,
0.8188031082, 0.8187834876, 0.8187806215, 0.8187802087, 0.8187801499

こんな感じなので、積分の上限が5~6で、5桁くらいまで一致するようです。



なお複素積分で難しいのは1/\cosh^2(x)の極を見つけるところですが、これは記憶が正しければ\cosh(x)=\exp(-x)(\exp(2x)+1)/2と変形することで、\exp(2x)+1=0となるところ、すなわち\exp(2x)=-1\rightarrow x=(2n+1)\pi i/2となって、虚軸上にとびとびの無限個の極が見つかります。ここから調和級数が出て、LOGとセットでオイラー定数を出します。