Python实现的Gamma函数数值计算

来源:水文工具集 分类:代码, 博客 标签:

特殊函数Gamma函数在水文计算中经常会使用到,这里水文工具集给出一个使用Python采用数值计算方法的实现过程,具体源代码如下:

_a =    ( 1.00000000000000000000,
0.57721566490153286061,
-0.65587807152025388108,
         -0.04200263503409523553,
0.16653861138229148950,
-0.04219773455554433675,
         -0.00962197152787697356,
0.00721894324666309954,
-0.00116516759185906511,
         -0.00021524167411495097,
0.00012805028238811619,
-0.00002013485478078824,
         -0.00000125049348214267,
0.00000113302723198170,
-0.00000020563384169776,
          0.00000000611609510448,
0.00000000500200764447,
-0.00000000118127457049,
          0.00000000010434267117,
0.00000000000778226344,
-0.00000000000369680562,
          0.00000000000051003703,
-0.00000000000002058326,
-0.00000000000000534812,
          0.00000000000000122678,
-0.00000000000000011813,
0.00000000000000000119,
          0.00000000000000000141,
-0.00000000000000000023,
0.00000000000000000002
       )
def gamma (x):
   y  = float(x) - 1.0;
   sm = _a[-1];
   for an in _a[-2::-1]:
      sm = sm * y + an;
   return 1.0 / sm;

if __name__ == '__main__':
    for i in range(1,11):
        print "  %20.14e" % gamma(i/3.0)


分类:代码, 博客 标签:

发表评论