[R] Trouble with compound functions---differential equations

Berend Hasselman bhh at xs4all.nl
Thu Jun 16 05:40:31 CEST 2011


Aimee Jones wrote:
> 
> Hi all,
> My apologies if this message is incredibly inept but I am very new to both
> computer programming and to R.
> 
> I am working with the odesolve add-on and have the following function
> defined
> 
> RVF_Single <- function(t, x, p)
> within the script I also have the following functions defined:
> 
> T1<-function(t) {T1<-27.5-12.5*cos(2*pi*t/365)}
> and
> 
> B1<-function(T1,t) {B1<-dnorm(T1(t),mean=22.5,sd=3.3)}
> 
> When the script is run it doesn't return an error message but the graphs
> returned are "wrong". When I input "plot(T1,0,3650)" it returns the plot
> of
> T1 as expected---a series of waves between 15 and 40, BUT when I input
> "plot(B1,0,3650)" I get an error message of "Error in 2 * pi * t : 't' is
> missing".
> 
> Can anyone advise as to why t registers for function T1 but disappears for
> function B1?
> 

Because B1 is a function with 2 arguments.
plot calls B1 with 1 argument, which will be argument T1. So t is missing
since it hasn't received a value.

Redefine B1 as 

B1<-function(t) {B1<-dnorm(T1(t),mean=22.5,sd=3.3)}

and you will get your plot.

Berend


--
View this message in context: http://r.789695.n4.nabble.com/Trouble-with-compound-functions-differential-equations-tp3601070p3601403.html
Sent from the R help mailing list archive at Nabble.com.



More information about the R-help mailing list