Skip to content

[R-sig-dyn-mod] differential equations with unknown inputs?

3 messages · Thomas Petzoldt, Spencer Graves

#
Hello:


       How would you approach solving a linear differential equation 
system with constant coefficients and unknown inputs sampled at 
irregular time intervals?  I'm trying to model the motion of a bridge 
driven by traffic and heating with a 6-dimensional linear state space 
model with constant coefficients but with no knowledge of the traffic 
and large gaps in my records on the temperature.


       I perceive 3 primary options:  dlm, deSolve, and sde.


             deSolve:  I'm concerned that the difference between 
observation and transition noise could be large in my current application.


             dlm:  This seems like the best option, because unknown 
inputs can be handled as transition noise.  The primary difficulty I see 
is in translating the differential equation into a difference equation, 
including estimating the noise variance as proportional to 
integral(exp(A(t-tau))d.tau).


             sde:  It might make most sense to model this as a 
stochastic differential equation.  However, I have the impression that 
sde will not handle a multivariate state vector.


	  Thanks in advance for any thoughts you may have on this.


	  Best Wishes,
	  Spencer Graves
1 day later
#
Hello Spencer,

your question is a little bit vague, because I don't know what kind of 
inputs you have and how is your model constructed. Nevertheless, I would 
probably start with deSolve and then explore other methods if required.

I'm not sure if the developers of dlm and sde are already on this list, 
so let's send them an invitation.

Thomas
On 3/24/2011 10:40 PM, Spencer Graves wrote:

  
    
#
Hi, Thomas:


       Thanks for the reply.  I'm concerned that if I don't know the 
inputs, I have to estimate them somehow, because otherwise I get only 
the standard homogeneous solution of the differential equation system.  
I don't see how it can support the rich behavior of real physical 
systems subject to substantive but unknown inputs.


       With sufficiently short time between observations, a differential 
equation system can can be turned into difference equations and solved 
using a Kalman filtering approach.  With continuous observations with 
normal errors, the best package I know for that in R is dlm.  It has a 
good vignette, a companion book that appeared less than 2 years ago, and 
seems to be actively maintained.  When the time between observations is 
not sufficiently short, one could still use dlm overall with either a 
theoretical solution or deSolve for the behavior between observations.  
I have not yet tried this, because I uncovered data quality problems 
that need to be fixed before I can proceed.


       At least that is what I'm thinking now.


       Best Wishes,
       Spencer
On 3/26/2011 12:14 PM, Thomas Petzoldt wrote: