永发信息网

如何用C语言用伽马函数求值

答案:1  悬赏:0  手机版
解决时间 2021-03-25 02:33
  • 提问者网友:贪了杯
  • 2021-03-24 08:26
如何用C语言用伽马函数求值
最佳答案
  • 五星知识达人网友:千杯敬自由
  • 2021-03-24 09:13
简单的说就是整数阶乘的推广,它有一个积分的表达式:
Γ(x)=∫e^(-t)*t^(x-1)dt (积分的下限式0,上限式+∞)
算法源自《常用算法程序集》徐士良
#include "stdio.h"
double gam1(x)
double x;
{ int i;
double y,t,s,u;
static double a[11]={ 0.0000677106,-0.0003442342,
0.0015397681,-0.0024467480,0.0109736958,
-0.0002109075,0.0742379071,0.0815782188,
0.4118402518,0.4227843370,1.0};
if (x<=0.0)
{ printf("err**x<=0!\n"); return(-1.0);}
y=x;
if (y<=1.0)
{ t=1.0/(y*(y+1.0)); y=y+2.0;}
else if (y<=2.0)
{ t=1.0/y; y=y+1.0;}
else if (y<=3.0) t=1.0;
else
{ t=1.0;
while (y>3.0)
{ y=y-1.0; t=t*y;}
}
s=a[0]; u=y-2.0;
for (i=1; i<=10; i++)
s=s*u+a[i];
s=s*t;
return(s);
}
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯