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
Writing level equations
-
- Senior Member
- Posts: 1107
- Joined: Wed Mar 12, 2003 2:46 pm
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.
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.