[R] Recursion problem
William Dunlap
wdunlap at tibco.com
Sun Aug 22 17:51:41 CEST 2010
> -----Original Message-----
> From: r-help-bounces at r-project.org
> [mailto:r-help-bounces at r-project.org] On Behalf Of Shant Ch
> Sent: Saturday, August 21, 2010 9:04 PM
> To: r-help at r-project.org
> Subject: [R] Recursion problem
>
>
>
> Hi,
>
>
> I wanted to compute the value of the function ifn at certain
> values of n. But I
> am receiving the following error when I was using the
> following code(given at
> the end).
>
> Error: evaluation nested too deeply: infinite recursion /
> options(expressions=)?
>
> I feel that since the function Grx is recursively related,
> perhaps making the
> code too complicated too handle. Can anyone let me know if
> there is any other
> way to handle this problem?
>
>
> d1=10.5
> Grx<-function(x,r)
> {
> G0=Grx(x,0)
> G0=1;
> fu1<-function(t){exp(-t^2/(2*r*(r+1)))*Grx(x,r-1)}
> return(integrate(fu1,0,x)$value)
> }
Your keep calling Grz(x, r-1) forever, as r descends
from its starting value towards -Inf. Are you try
to use the
G0=Grz(x,0)
G0=1
to say what to return when r==0 (vaguely like Haskell)?
If so the proper syntax would be
Grx <- function (x, r) {
retval <- if (r < 0) {
# must r be integral?
stop("r must be nonnegative")
}
else if (r == 0) {
1
}
else {
fu1 <- function(t) {
exp(-t^2/(2 * r * (r + 1))) * Grx(x, r - 1)
}
integrate(fu1, 0, x)$value
}
# Uncomment next line to trace the recursion
# cat("x=", x, ", r=", r, " -> ", retval, "\n")
retval
}
Bill Dunlap
Spotfire, TIBCO Software
wdunlap tibco.com
>
> grx<-function(x,r)
> {
> Grx(x,r)*exp(-x^2/(2*(r+1)))
> }
>
> ifn<-function(n)
> {
> w=n*d1/2;S1=0;
> for(k in 1:(n-1))
> {
> S1=S1+choose(n,k)*grx(w,k)*grx(w,n-k-1)
> }
> return(S1);
> }
>
> ifn(7)
>
> Thanks in advance.
>
> Shant
>
>
>
> [[alternative HTML version deleted]]
>
> ______________________________________________
> R-help at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide
> http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.
>
More information about the R-help
mailing list