# [R] recursive term

andrew andrewjohnroyal at gmail.com
Thu Dec 11 23:30:27 CET 2008

```you might try the following.

Pochhammer_n <- function (a,b,c,n) {
if(n==0) return(1)
return(a*b*Pochhammer_n(a+1, b+1, c+1, n-1)/(c*n))
}

hypergeo_sum <- function (a,b,c,z,n) {
comb_sum <- 0
for (i in 0:n)   {
comb_sum <- comb_sum + Pochhammer_n(a,b,c,i)*z^i
}
return(comb_sum)
}

hypergeo_sum2 <- function (a,b,c,z,n) {
comb <- rep(1,n+1)
for (i in 2:(n+1)){
comb[i] <- comb[i-1]*(a+i-2)*(b+i-2)*z/((i-1)*(c+i-2))
}
return(sum(comb))
}

system.time(hypergeo_sum (1.25,1.75,1.25,0.5,300))
system.time(hypergeo_sum2(1.25,1.75,1.25,0.5,300))

On Dec 10, 4:28 pm, Roslina Zakaria <zrosl... at yahoo.com> wrote:
> Hi,
>
> I would like to write a function for this formula:
> F(a,b,c,z)=1+(ab)/(1!c)+ +(a(a+1)b(b+1))/(2!c(c+1))+ +(a(a+1)(a+2)b(b+1)(b+2))/(3!c(c+1)(c+2))+…
>
> I wrote this function but not sure what is not right:
>
> hypergeo_sum <- function (a,b,c,z,n)
> { for (i in 1:n)
>   { aa <- 1+(a*b*z)/c
>   aa[i] <- (aa-1)*(a+i)*(b+i)*z/((i+1)*(c+i))
>   comb_sum <- aa + aa[i]+ aa[i+2]
>   }
>   comb_sum}
>
>
> hypergeo_sum (1.25,1.75,1.25,0.5,3)
>
> output:> hypergeo_sum (1.25,1.75,1.25,0.5,3)
>
>  2.394531       NA 1.039062
>
>
> The answer should be 2.852539.
>
> Or can you suggest any R book that I can refer to. Thank you so much for your help.
>
> ______________________________________________
> R-h... at r-project.org mailing listhttps://stat.ethz.ch/mailman/listinfo/r-help