Skip to content
Back to formatted view

Raw Message

Message-ID: <4C290964.3040808@TU-Dresden.de>
Date: 2010-06-28T20:43:16Z
From: Thomas Petzoldt
Subject: [R-sig-dyn-mod] deSolve::ode workaround for solutions with NaN
In-Reply-To: <AANLkTin-QJbueRZe8fPa1NTHn6gQYWyiQrf8Vg7n9sIV@mail.gmail.com>

Hi Mike,

an NaN can occur if you apply log(Q) to a negative Q. I guess there are 
several ways to prevent this. Can you please give us a reproducible 
example specifying input1, input2, parameters and time steps. Which 
solver did you use?

Thomas Petzoldt

On 6/28/2010 8:36 PM, Maik Renner wrote:
> Dear List,
>
> I have a question regarding unstable solutions using deSolve. Due to
> my model equation I get NaN, when my state drops below zero.
> Now, I wish to set the state to some default value, when this happens,
> such that the simulation is continuing without NaNs.
> However I could not figure out how to do that technically.
>
> An if clause in the Model equation did not help. And I also tried the
> event / root example in the vignette, but it did not run, having some
> problems with my forcing inputs.
>
> I have a model with one simple differential equation and one state and
> a forcing vector. Here is the model implementation:
>
> KirchSimeq19<- function(t, state, parameters, input1, input2) {
>   with(as.list(c(state, parameters)),{
>    P<- input1(t)
>    E<- input2(t)
>    dQ<- exp(c1 + c2 * log(Q) + c3 * (log(Q))^2) * ( (P - k_E * E) / Q  - 1)
>   list(c(dQ))
>   }) # end with(as.list...
> }
>
>
>
> Any help  is appreciated,
>
> Maik
>
>
>


-- 
Thomas Petzoldt
Technische Universitaet Dresden
Institut fuer Hydrobiologie        thomas.petzoldt at tu-dresden.de
01062 Dresden                      http://tu-dresden.de/hydrobiologie/
GERMANY