Tjun Kiat Teo
2012-Jul-18 01:59 UTC
[R] Defining a variable outside of optim or differential equation solver.
This is applicable to either using optim or the differential equation
solver or any similar solver
Suppose I want to use the differential equation solver and this is my code
d<-y[2]
vdpol<-function(t,y)
{
list(c(1,
d,
3,
4
)
}
stiff<-ode(y=rep(0,4),times=c(0,1),func=dvdpol,parms=1)
The thing is I want d to be composed of one of state variables in the
differential function vdopl. Can it be done ?
tjun kiat
Thomas Petzoldt
2012-Jul-20 12:16 UTC
[R] Defining a variable outside of optim or differential equation solver.
Hi Tjun Kat,
you can define variables outside the ode function, but normally NOT
state variables, because their values need to be updated by the solver
during the simulation process.
But, if you want to block this for any debugging purposes and want to
e.g. fix a derivative to a certain value, even this is possible. Note
however that this is a very special case and I suspect that you don't
want this.
Can you please tell, why you want to define states outside? I guess you
want to emulate a feature that is already available in deSolve, e.g.
forcings or events. In that case, please have a look into the
documentation and one of the papers tutorial slides etc. that can be
found on:
http://desolve.r-forge.r-project.org
Note also that your code contains 3 errors:
1) The call must be "function(t, y, p)", i.e. with "p" even
if this is
not required by the model, because ode needs this interface.
2) the closing parenthesis ")" of list is missing.
3) dvdpol vs. vdpol
Hope it helps
Thomas Petzoldt
On 7/18/2012 3:59 AM, Tjun Kiat Teo wrote:
> This is applicable to either using optim or the differential equation
> solver or any similar solver
>
> Suppose I want to use the differential equation solver and this is my
code
>
> d<-y[2]
>
> vdpol<-function(t,y)
> {
> list(c(1,
> d,
> 3,
> 4
> )
> }
>
>
> stiff<-ode(y=rep(0,4),times=c(0,1),func=dvdpol,parms=1)
>
>
> The thing is I want d to be composed of one of state variables in the
> differential function vdopl. Can it be done ?
>
> tjun kiat
>
> ______________________________________________
> 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.
>