Gamma関数 |
Top > Pi > Gamma Function
はじめにGamma関数とは、次の式で表される特殊関数です。
よく知られているように、ガンマ関数は階乗の拡張になっており、次の関係式が成り立ち
また、次に示すベータ関数B は、ガンマ関数を用いて、次のように表されます。
x = y = 1/2 のときx = y = 1/2 のとき、次のようになります。
ここで、
となります。従って、
であることが分かります。さらに、
となることも分かります。
となります。
とします。例えば、
です。このように定義すると、全ての n で、
が成立します。いくつか例示しますと、
となります。 x = (q + 1)/p, y = 1/2 のときこのとき、
となります。ここで
となります。 無限級数展開その1式(2)より、
となりますが、一方、
となります。したがって、
が成り立ちます。
となります。一方、
です。従って、
となります。例えばk = 0, 1, 2 のとき、
が成立します。
において、(1 - t)q - 1 を無限級数展開すると、
となるので、
となります。
p = 3/2, q = 1/2 のとき、無限級数展開は次のようになります。
p = 5/2, q = 1/2 のとき、無限級数展開は次のようになります。
これらの式は、先に挙げた無限級数展開に他なりません。 次に、十進BASIC のプログラムを示します。収束が大変遅いことが確認できます。 Gamma1.BAS1: OPTION ARITHMETIC DECIMAL 2: ! n=0 3: LET DblFact = 1 4: LET n = 0 5: LET s1 = 2 * DblFact / (2 * n + 1) 6: LET s2 = 4 * DblFact / (2 * n + 3) 7: LET s3 = 16 / 3 * DblFact / (2 * n + 5) 8: PRINT " n k = 0 k = 1 k = 2" 9: PRINT USING "####### #.##### #.##### #.#####":n, s1, s2, s3 10: 11: FOR n = 1 TO 1000000 12: LET DblFact = DblFact * (2 * n - 1) / 2 / n 13: LET s1 = s1 + 2 * DblFact / (2 * n + 1) 14: LET s2 = s2 + 4 * DblFact / (2 * n + 3) 15: LET s3 = s3 + 16 / 3 * DblFact / (2 * n + 5) 16: IF MOD(n, 100000) = 0 THEN 17: PRINT USING "####### #.##### #.##### #.#####":n, s1, s2, s3 18: END IF 19: NEXT n 20: END 無限級数展開その2この節では、オイラーの関数等式
ここで、
を利用して無限級数展開しますと、
が得られます。 たとえばx = 1/6 のとき、
となります。従って、
より、
が得られます。 次に、十進BASIC のプログラムを示します。こちらのプログラムも、収束が遅いことが分かります。 Gamma2.BAS1: OPTION ARITHMETIC DECIMAL 2: ! 初期設定 3: LET a = 1 / 14 4: LET s = 3 + a 5: PRINT USING "#### #.############":1,s 6: 7: ! 繰り返し 8: FOR n = 2 TO 4000 9: LET a = (6 * n - 5)^2 / 6 / n / (6 * n + 1) * a 10: LET s = s + a 11: PRINT USING "#### #.############":n,s 12: next n 13: END |