Kebebe Ergano
2018-May-29 00:02 UTC
[R] Difficulty in writing R code for one pool dynamic model
Hi everyone,
I was trying to mode the following exercise using R.
The question: Set up a one pool model using numericintegration. The model will
run from time 1 to time 30 using a time step of 1.The pool (A) will be fed by
flux "inA" at a rate of 5 units per hour anddrained by flux
"outA" at a rate of 20% per hour. At time 0, A has 5units. At time 30,
what is the pool size of A (rounded to 1 decimal)? In theanswer sheet provide
the value of pool could be (23.8, 24.8, 25.0 or 24.7). Thevalue I got does not
correspond to any of the choices given above. ?I don't know where I got it
wrong.?
Below is the Ro code I tried to estimate thepool size of A at time 30.
#Step 1: Specify time?
Tstart <- 1
Tstop <- 30
Tstep <- 1
#Step 2: Set variables corresponding to pools
inA<-5
A <- inA
t <- Tstart
#Step 3: Set up rate parameters
A<-5
kinA <- 5
koutA <- 0.2
#Step 4: Write arrays that track pool size overtime
val <- array(1, dim=c(1, length(seq(Tstart,Tstop, by=Tstep))))
val
#Step 5: Set up while loop we use to runintegration
?while(t<=Tstop){
?if(t==Tstart) A <- inA else A <- val[1, t-1]
??# Setup rates
? inA<- kinA*A
? outA<- A*koutA
? A <-A+inA-outA
?val[1,t] <- A
? t <-t+1
}
# Step 6: Print the output as array
value <- data.frame(val)
# Transpose 'value' using t
value <- t(value)
value
[[alternative HTML version deleted]]
David Winsemius
2018-May-29 00:26 UTC
[R] Difficulty in writing R code for one pool dynamic model
> On May 28, 2018, at 5:02 PM, Kebebe Ergano via R-help <r-help at r-project.org> wrote: > > > Hi everyone, > > I was trying to mode the following exercise using R. > > The question: Set up a one pool model using numericintegration. The model will run from time 1 to time 30 using a time step of 1.The pool (A) will be fed by flux "inA" at a rate of 5 units per hour anddrained by flux "outA" at a rate of 20% per hour. At time 0, A has 5units. At time 30, what is the pool size of A (rounded to 1 decimal)? In theanswer sheet provide the value of pool could be (23.8, 24.8, 25.0 or 24.7). Thevalue I got does not correspond to any of the choices given above. I don't know where I got it wrong. >Homework is not on-topic for r-help. Nevertheless you might try using a small time increment if you are being asked to do numeric integration. You also might look up the many worked examples of compound interest. David.> Below is the Ro code I tried to estimate thepool size of A at time 30. > > #Step 1: Specify time > > Tstart <- 1 > > Tstop <- 30 > > Tstep <- 1 > > #Step 2: Set variables corresponding to pools > > > inA<-5 > > A <- inA > > t <- Tstart > > #Step 3: Set up rate parameters > > > A<-5 > > kinA <- 5 > > koutA <- 0.2 > > #Step 4: Write arrays that track pool size overtime > > val <- array(1, dim=c(1, length(seq(Tstart,Tstop, by=Tstep)))) > > val > > #Step 5: Set up while loop we use to runintegration > > > while(t<=Tstop){ > > if(t==Tstart) A <- inA else A <- val[1, t-1] > > # Setup rates > > inA<- kinA*A > > outA<- A*koutA > > A <-A+inA-outA > > val[1,t] <- A > > t <-t+1 > > } > > # Step 6: Print the output as array > > > value <- data.frame(val) > > # Transpose 'value' using t > > value <- t(value) > > value > > > > [[alternative HTML version deleted]] > > ______________________________________________ > R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see > 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.