"j-d" is right to remind us of the vital importance of the Why question as
opposed to the tricks of coding. ANY model has to be designed to answer
questions or be fit for a purpose. the test of the goodness of a model is
how well it meets its purpose though, as Richardson and Pugh profoundly
point out, the question is best out in the negative in what ways does this
model FAIL to meet its purpose?.
The best answer to Marion and Oddurs questions is to tell them to read some
of the SD textbooks.
Two new questions. Can the software vendors see their way to putting
information about the SD Society and SD Review in with the product? Why
wont j-d tell us who he is?
Regards,
Geoff Coyle
geoff.coyle@btinternet.com
Professor Geoff Coyle
Consultant in System Dynamics and Strategic Analysis
Tel: (44) 01793 782817 Fax: 01793 783188
Algorithm: derivation of ordinary differential equation inoS
-
- Senior Member
- Posts: 94
- Joined: Fri Mar 29, 2002 3:39 am
Algorithm: derivation of ordinary differential equation inoS
Dear Marion
Prof. Coyle and Jim Hines responded to your second case, with the expression
"(1-population/capacity)*population" in your email as not being a rate. This
stock-flow distinction is extremely important and is often misapplied; of
course you can use this expression as a part of a flow equation as Prof.
Coyle showed (in that case, it is the classic Verhulst equation in
population dynamics). You may also use it in the form of a dimensionless
function (tabular/graphical) that acts as a multiplier on a
"normal_population_growth_rate". Both these instances will provide
dimensional consistency. The multiplier case will yield the rate as the
product "multiplier*normal_pop_growth_rate*pop".
In the first case, where population rate may be written as
pop_rate := (intrinsic growth rate r)*(1-population P/capacity K)*population
P ... Eq. 1
separation such as
pop_rate:= r*P - (r*P^2)/K ... Eq. 2
is possible, and gives you a different way of looking at the same problem;
e.g., the above may be interpreted as the pop_rate being a maximum growth
rate modified by the constraint due to environmental capacity K. The BIG
problem is that it has no physical inflow-outflow interpretation, that is,
there is no real in-flow of "r*P" and out-flow of "(r*P^2)/K". Hence the Eq.
2 is nonsensical from an SD point of view though perfectly valid, totally
acceptable and used much in mathematical biology. This leads me to wonder
what motivated your query in the first place. WHY??? Why would you like to
automate the process of changing a given ODE (Ordinary Differential
Equation) into flows? - it is interesting, but may lead to physically
strange results, and may even lead to some SD people losing their jobs, if
you automate the definition of the rates (the bread and butter of SD
modeling);-)
Let me follow the above "Automation of SD modeling" a little more as a
thought experiment (ignoring all the would-be detractors, as it is only a
THOUGHT-EXPERIMENT). Supposing we dump into a computer the life history of a
stock (say, population), and the life history of the rest of the world (i.e.
time histories of all other variables). Let the computer also be wise to
nonlinear feedback thinking (i.e., no laundry-list thinking). Well, how will
the computer start?? How does a human start from its jumble of knowledge?
Taking cues from our current SD practice, Id say - we humans start with
building causal-loop diagrams (CLD) in a client setting, or by actually
putting the stock (pop) first on the screen and pondering on what changes
it? Because the computer is fast with numbers, my guess it will take the
second non-CLD approach (as Id too by the way, because of the massive
eventual problems I have seen with CLD approach, in teaching/consulting).
For the computer it now becomes a big system identification problem!! The
computer has to hypothesize relationships, test them, do Maximum Likelihood
Estimations and test again, etc. etc. Humans are very good at hypothesizing
the structure part because of our experience with systems (typically, though
may not always be the case) and the peer review offered in the
modeler-client settings (the client may be equally clueless about the system
though). The end result of computers cogitations and agitations: it
produces a large nonlinear pop ODE for you. What I think is that this ODE
can be split/seen in a large number of ways, offering different ways of
looking at the same equation/problem. Some of them will be physically
nonsensical but valid; and some may give insights into the as-yet unknown
physical nature of things. Before someone thinks I am totally out-of-kilter
here, the discovery of positrons (electrons with positive charge) was first
made as a valid mathematical result (one of the two roots of a quadratic
equation), and then discovered in nature. So your query is indeed an
interesting one.
In my Ph. D. work, I had to "reduce" the rate equations in the World3/91
model in terms of other stocks and constants alone, and that had resulted in
EXTREMELY LARGE rate equations (sometimes hundreds of pages). Some of these
equations were describing the population (cohort) rates. The inverted
question of whether one can get those kinds of rate equations automatically
is a fascinating one for me, because the equations were so large and
nonlinear that human definition of them would look impossible (I still
remember the day when I first went down line by line and then page by page
of Maple output, and then stopped, as it was total about 800 pages of sheer
mathematical text!!!).Of course, Meadows et al. had done it, but they knew
how to get about the system- but what about a large and complex system such
as the current stock market, or the electric demand and pricing markets!!
Will automation of SD modeling help here (we do know there is tremendous
feedback and nonlinearity in both these systems!!)? Do the current trends
in data warehousing and analysis have a role here?
Let me also add that the above is NOT TYPICAL SD AT ALL, hence you are in
bad company here. Catch some AI people for this, if they are still
around:-))
But I will ask the same question I did to Oddur - what motivates your
question?? WHY?? Let us know.
Best regards
Jaideep
From: "j-d" <j-d@technologist.com>
Prof. Coyle and Jim Hines responded to your second case, with the expression
"(1-population/capacity)*population" in your email as not being a rate. This
stock-flow distinction is extremely important and is often misapplied; of
course you can use this expression as a part of a flow equation as Prof.
Coyle showed (in that case, it is the classic Verhulst equation in
population dynamics). You may also use it in the form of a dimensionless
function (tabular/graphical) that acts as a multiplier on a
"normal_population_growth_rate". Both these instances will provide
dimensional consistency. The multiplier case will yield the rate as the
product "multiplier*normal_pop_growth_rate*pop".
In the first case, where population rate may be written as
pop_rate := (intrinsic growth rate r)*(1-population P/capacity K)*population
P ... Eq. 1
separation such as
pop_rate:= r*P - (r*P^2)/K ... Eq. 2
is possible, and gives you a different way of looking at the same problem;
e.g., the above may be interpreted as the pop_rate being a maximum growth
rate modified by the constraint due to environmental capacity K. The BIG
problem is that it has no physical inflow-outflow interpretation, that is,
there is no real in-flow of "r*P" and out-flow of "(r*P^2)/K". Hence the Eq.
2 is nonsensical from an SD point of view though perfectly valid, totally
acceptable and used much in mathematical biology. This leads me to wonder
what motivated your query in the first place. WHY??? Why would you like to
automate the process of changing a given ODE (Ordinary Differential
Equation) into flows? - it is interesting, but may lead to physically
strange results, and may even lead to some SD people losing their jobs, if
you automate the definition of the rates (the bread and butter of SD
modeling);-)
Let me follow the above "Automation of SD modeling" a little more as a
thought experiment (ignoring all the would-be detractors, as it is only a
THOUGHT-EXPERIMENT). Supposing we dump into a computer the life history of a
stock (say, population), and the life history of the rest of the world (i.e.
time histories of all other variables). Let the computer also be wise to
nonlinear feedback thinking (i.e., no laundry-list thinking). Well, how will
the computer start?? How does a human start from its jumble of knowledge?
Taking cues from our current SD practice, Id say - we humans start with
building causal-loop diagrams (CLD) in a client setting, or by actually
putting the stock (pop) first on the screen and pondering on what changes
it? Because the computer is fast with numbers, my guess it will take the
second non-CLD approach (as Id too by the way, because of the massive
eventual problems I have seen with CLD approach, in teaching/consulting).
For the computer it now becomes a big system identification problem!! The
computer has to hypothesize relationships, test them, do Maximum Likelihood
Estimations and test again, etc. etc. Humans are very good at hypothesizing
the structure part because of our experience with systems (typically, though
may not always be the case) and the peer review offered in the
modeler-client settings (the client may be equally clueless about the system
though). The end result of computers cogitations and agitations: it
produces a large nonlinear pop ODE for you. What I think is that this ODE
can be split/seen in a large number of ways, offering different ways of
looking at the same equation/problem. Some of them will be physically
nonsensical but valid; and some may give insights into the as-yet unknown
physical nature of things. Before someone thinks I am totally out-of-kilter
here, the discovery of positrons (electrons with positive charge) was first
made as a valid mathematical result (one of the two roots of a quadratic
equation), and then discovered in nature. So your query is indeed an
interesting one.
In my Ph. D. work, I had to "reduce" the rate equations in the World3/91
model in terms of other stocks and constants alone, and that had resulted in
EXTREMELY LARGE rate equations (sometimes hundreds of pages). Some of these
equations were describing the population (cohort) rates. The inverted
question of whether one can get those kinds of rate equations automatically
is a fascinating one for me, because the equations were so large and
nonlinear that human definition of them would look impossible (I still
remember the day when I first went down line by line and then page by page
of Maple output, and then stopped, as it was total about 800 pages of sheer
mathematical text!!!).Of course, Meadows et al. had done it, but they knew
how to get about the system- but what about a large and complex system such
as the current stock market, or the electric demand and pricing markets!!
Will automation of SD modeling help here (we do know there is tremendous
feedback and nonlinearity in both these systems!!)? Do the current trends
in data warehousing and analysis have a role here?
Let me also add that the above is NOT TYPICAL SD AT ALL, hence you are in
bad company here. Catch some AI people for this, if they are still
around:-))
But I will ask the same question I did to Oddur - what motivates your
question?? WHY?? Let us know.
Best regards
Jaideep
From: "j-d" <j-d@technologist.com>