189 8069 5689

伽玛函数c语言 c语言伽马函数

伽玛(Gamma)函数怎么求?

Γ(2)伽玛函数公式:Γ(x)=积分:e^(-t)*t^(x-1)dt。

成都创新互联公司是一家集网站建设,确山企业网站建设,确山品牌网站建设,网站定制,确山网站建设报价,网络营销,网络优化,确山网站推广为一体的创新建站企业,帮助传统企业提升企业形象加强企业竞争力。可充分满足这一群体相比中小企业更为丰富、高端、多元的互联网需求。同时我们时刻保持专业、时尚、前沿,时刻以成就客户成长自我,坚持不断学习、思考、沉淀、净化自己,让我们为更多的企业打造出实用型网站。

利用伽马函数γ(n)=(n-1)γ(n-1)=(n-1)!及γ(1/2)=√π,有γ(1/2+n)=γ[(n-1+1/2)+1]=[(2n-1)/2]γ(n-1/2)。

=[(2n-1)/2]][(2n-3)/2](1/2)γ(1/2)。

=[(2n-1)(2n-3)^(1)/2^n]γ(1/2)。

=[√π/2^n](2n-1)!!。“(2n-1)!!”表示自然数中连续奇数的连乘积。

Stirling公式

Gamma函数从它诞生开始就被许多数学家进行研究,包括高斯、勒让德、魏尔斯特拉斯、刘维尔等等。这个函数在现代数学分析中被深入研究,在概率论中也是无处不在,很多统计分布都和这个函数相关。

Gamma函数作为阶乘的推广,首先它也有和Stirling公式类似的一个结论:即当x取的数越大,Gamma函数就越趋向于Stirling公式,所以当x足够大时,可以用Stirling公式来计算Gamma函数值。

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

简单的说就是整数阶乘的推广,它有一个积分的表达式:

Γ(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 (y3.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);

}

伽玛函数

伽玛函数的定义(或叫第二类欧拉积分):

Γ(x)=积分:e^(-t)*t^(x-1)dt (e的负t次方乘以t的(x-1)次方),积分区间是0到正无穷,x>0

而可以把x延拓到复平面上,除了0和负整数的点.这里,利用Γ函数在x>0的区间上的性质Γ(x+1)=xΓ(x) ,可以定义:

Γ(z)=Γ(z+n+1)/z(z+1)(z+2)...(z+n)

在正整数的范围内,由于Γ(x+1)=xΓ(x) 关系,Γ(n+1)=n!

这样,因为z可以取非整数,我们就用伽玛函数延拓了阶乘的定义.定义x!=Γ(x+1),这里x可以取非整数.


标题名称:伽玛函数c语言 c语言伽马函数
文章地址:http://jkwzsj.com/article/ddddhoo.html

其他资讯