概要
超幾何関数を理解するために計算を中心に記載してゆく。超幾何関数に必要な関数も計算してゆく。
\(\Gamma\) 関数
(薮下 1991) の最初にある以下の数式を計算する。
\[ \Gamma(z)=e^{-C z} \frac{1}{z \prod_{n=1}^{\infty}\left(1+\frac{z}{n}\right) e^{-z / n}} \]
import numpy as np from scipy.special import gamma as sp_gamma def my_gamma(z): C = 0.57721 return np.exp(-C*z) / (z *np.cumprod([(1 + z/n)*np.exp(-z/n) for n in range(1, 1000)])[-1]) my_gamma(10.0), sp_gamma(10.0)
import matplotlib.pyplot as plt x = np.linspace(1.0, 5.0, 10000) plt.clf() plt.plot(x, sp_gamma(x), label="scipy.special.gamma") plt.plot(x, my_gamma(x), label="mine") plt.legend() plt.savefig(outfile) outfile
参考文献
薮下 信. 1991. 特殊関数とその応用. 第6刷 ed. 森北出版. https://ci.nii.ac.jp/ncid/BN09363031.