Page 1 of 1

Algorithm: derivation of ordinary differential equation into

Posted: Mon Sep 06, 1999 12:04 pm
by "Jim Hines"
Marion, you suggest that an "SD [flow] has to be divided into inflow .. and
outflow...". But SD lets you have negative in- or out-flows, right? A
bigger problem involves units. Consider your second example:

> In another case: (1-population/capacity)*population
> a derivation into in-flow and out-flow would be false.

SD would have no problem with this as a net inflow. A problem for SD,
though, is that the equation has units problems. Presumably, the units for
the flow should be "rabbits/year" (or rabbits/month or rabbits/week ...).
But, assuming capacity is measured in rabbits, the units will work out to
"rabbits - dimensionless".

The biggest task in translating from differential equations to acceptable
system dynamics models is coming up with a physically satisfying (and,
hence, unit-consistent) interpretation of the derivatives. A possible
translation of your equation above would be the following (with the level
shown in modified-DYNAMO notation).

Population(t) = Population(t - dt) + dt* netBirths(t - dt)
InitialPopulation = 100
rabbits

netBirths(t) = potentialAdditionalPopulation(t) / timeForPopulationToChange
rabbits/year

timeForPopulationToChange = 1
years

potentialAdditionalPopulation(t) = fractionalRoomToGrow(t) * population(t)
rabbits

fractionalRoomToGrow(t) = roomToGrow(t) / capacity
fraction

capacity = 1000
rabbits

roomToGrowt(t) = capacity - Population(t)
rabbits

Regards,
Jim
MIT and LeapTec
JHines@mit.edu or JHines@LeapTec.net