[英]Gamma Function in R
我正在嘗試使用以下規則從頭開始實現伽馬函數:
這個條件使我得到以下更簡化的條件
我的代碼看起來像這樣,但我似乎無法使其適用於符合第 8 點標准的值。
gama <-function(z){
fgama <- function(x)
{
x**(z-1)*exp(-x)
}
functie <-integrate(fgama,0,Inf)
if(z==1/2)
{
return (sqrt(pi))
}
if(isNatural(z))
{
return(factorial(z-1))
}
if(z%%2==0.5 || z%%2==1.5){
return((z-1)*gama(z-1))
}
else
{
while(z > 1)
{
n <- (z-1)*gama(z-1)
}
return(functie)
}
}
print(gama(4.3))
它給出了這個錯誤:
Error in (z - 1) * gama(z - 1) : non-numeric argument to binary operator
你可以試試下面的代碼
fg <- function(z) {
integrate(function(x) exp(-x) * x^(z - 1), 0, Inf)
}
你會看到
> fg(10)
362880 with absolute error < 0.025
> gamma(10)
[1] 362880
> fg(1.5)
0.8862265 with absolute error < 2.5e-06
> gamma(1.5)
[1] 0.8862269
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.