Page 1 of 1

Writing level equations

Posted: Mon Apr 30, 2007 9:48 am
by Monte
Hi,

We have many ways to write a level equation with a single rate.

In DYNAMO, we write

LEVEL.K=LEVEL.J+(DT)RATE.JK

In Vensim, however, the same equation is

Level=INTEG(rate, INITIAL LEVEL)

which makes time notation implicit.

Here are my two questions:

I. Do you think RATE.JK is indeed equal to RATE.J?
In the 1960s, several authors write RATE.JK instead of RATE.J, although mere RATE.J is multiplied by

DT to find LEVEL.K.

II. Are Vensim's levels equivalent to this equation?

L(t)=L(t-DT)+(DT)R(t-DT)

where L(t-DT) is LEVEL.J; DT a constant time step; and R(t-DT) is RATE.J.
Assume that R(t-DT)=f(h, d) and Euler method is used.

Thanks for your helps.
Monte

Posted: Mon Apr 30, 2007 10:12 am
by bob@vensim.com
Hi Monte,

The old Dynamo syntax emphasized Euler integration, which is effectively a discrete time conceptualization. Usually it is better to conceptualize continuously. rate.jk meant the rate as computed using everything else at time j. You could actually write rate.kl in dynamo, though I don't think it did anything differently.

As far as Vensim goes with euler integraion

Level(Time) = Level(Time-TIME STEP) + Rate(Time - TIME STEP) * TIME STEP
Rate(Time-TIME STEP) = some function of(Level(Time - TIME STEP))

with difference integration

Level(Time) = Level(Time - TEMP STEP) + Rate(Time) * TIME STEP
Rate(Time) = some function of(Level(Time - TIME STEP))

The difference is actually only one of reporting, not computation.

I hope that helps.