[R] Beginners problem
Thomas Petzoldt
thpe at hhbio.wasser.tu-dresden.de
Mon Oct 4 23:09:31 CEST 2004
Rolf Wester wrote:
> Hi,
>
> I'm new to R and have a problem with a little test program (see below).
> Why doesn't <<- in function rk4
The reason is lexical scoping (see FAQ), and I suggest to implement rk4
as function with a return value (see # !!!). BTW there are already a rk4
(and lsoda) functions in the odesolve package.
Thomas P.
Your example formally corrected:
rk4 <- function(x,y,f,h) {
n <- length(y)
hh <- h*0.5
k1 <- f(x,y)
k2 <- f(x,y+k1*hh)
k3 <- f(x,y+k2*hh)
k4 <- f(x,y+k3*h)
y + h/6.0*(k1 + 2.0*k2 + 2.0*k3 + k4) # !!!
}
rkf <- function(x,y) {
-y
}
rktest <- function(){
y <- 1.0
x <- 0.0
h <- 0.1
for(i in 1:10) {
y <- rk4(x,y,rkf,h) # !!!
print(y)
}
}
rktest()
More information about the R-help
mailing list