伽玛函数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://cdiso.cn/article/ddddhoo.html