伽瑪函數的定義(或叫第二類歐拉積分):
為藁城等地區用戶提供了全套網頁設計制作服務,及藁城網站建設行業解決方案。主營業務為網站設計制作、網站制作、藁城網站設計,以傳統方式定制建設網站,并提供域名空間備案等一條龍服務,秉承以專業、用心的態度為用戶提供真誠的服務。我們深信只要達到每一位用戶的要求,就會得到認可,從而選擇與我們長期合作。這樣,我們也可以走得更遠!
Γ(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可以取非整數.
方法如下:
/*This program can calculate the factorial of (int n).*/
#include stdio.h
int factorial(int n)
{
return (n == 1)?n:factorial(n-1)*n;//recursion.
}
int main(void)
{
int n,fac;
printf("Please input the value of n:");//initialize n.
scanf("%d",n);
fac = factorial(n)//variable fac is not necessary.
printf("The result is:%d\n",fac);? ? ?
return 0;
}
相關內容:
階乘是定義在自然數范圍里的(大多科學計算器只能計算 0~69 的階乘),小數科學計算器沒有階乘功能,如 0.5!,0.65!,0.777!都是錯誤的。但是,有時候我們會將Gamma 函數定義為非整數的階乘,因為當 x 是正整數 n 的時候,Gamma 函數的值是 n-1 的階乘。
簡單的說就是整數階乘的推廣,它有一個積分的表達式:
Γ(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);
}
分享文章:c語言gamma函數 gamma函數常用值
文章路徑:http://vcdvsql.cn/article0/dosdioo.html
成都網站建設公司_創新互聯,為您提供動態網站、網站營銷、電子商務、關鍵詞優化、用戶體驗、定制網站
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯