Hi all,
I'm currently working to an extension of one of Prof. Sterman's models with a student. We got an error on the "Fixed Asset" variable due probably to a symultaneous equation condition.
The model is attached.
Can you help us giving some hints on how to solve it?
Thanks in advance!!!
Giovanni
Error on Symultaneous equation
Error on Symultaneous equation
- Attachments
-
- Model Sterman Oliva + Fin.Accounts.mdl
- (105.97 KiB) Downloaded 316 times
-
- Super Administrator
- Posts: 4683
- Joined: Wed Mar 05, 2003 3:10 am
Do you have the equation for fixed assets correct?
I would have thought it should be
INTEG ( capital expenditure - depreciation , initial investment in fixed assets )
I would be very surprised if any of Sterman's models had simultaneous conditions.
Before you go any further you should also fix all the unit errors. For example, "cash flow before financing" is subtracting "$/year" from "$/week". Any results from this model could be junk until you fix them.
I would have thought it should be
INTEG ( capital expenditure - depreciation , initial investment in fixed assets )
I would be very surprised if any of Sterman's models had simultaneous conditions.
Before you go any further you should also fix all the unit errors. For example, "cash flow before financing" is subtracting "$/year" from "$/week". Any results from this model could be junk until you fix them.
Error on symultaneous equation
Hi ,
the errror is the part that we added not in Sterman's model of course....
Thanks!!
G
the errror is the part that we added not in Sterman's model of course....
Thanks!!
G
errro in simultaneous equation
Hi Giovanni
In your simultaneous loop, fixed assets is depending linearly from capital expenditure and capital expenditure is depending linearly from fixed assets. This kind of loop cannot converge and grows infinitely or converges to zero. It is a kind of equation like x^n depending on x being more than 1, it grows or decline infinitely.
If it declines it is ok. You may get a better control of the loop using a find zero functiion althoug if you leave the equations unchanged I do not see how it may change anything.
A good idea would be to correct the unit errors. The error may be somewhere else. The fact that the model comes from Sterman, does not guaranty anytning. I have already found errors in some Sterman's model, conceptual or technical.
There is too a second loop dealing with depreciation that is not mentioned as error if one changes the fixed assets to a normal equation. The problem may come from this loop too.
One solution is to simplify the model progressively until the error disappears to spot where the error lies.
You may try too to put the simultaneous equation on the other variables of both loops, so that you can initialize both loops with different values
One must think at the real signification of both loops. Why initialize the fixed assets to zero?
Where did you find that model and its explanations?
Regards.
JJ
In your simultaneous loop, fixed assets is depending linearly from capital expenditure and capital expenditure is depending linearly from fixed assets. This kind of loop cannot converge and grows infinitely or converges to zero. It is a kind of equation like x^n depending on x being more than 1, it grows or decline infinitely.
If it declines it is ok. You may get a better control of the loop using a find zero functiion althoug if you leave the equations unchanged I do not see how it may change anything.
A good idea would be to correct the unit errors. The error may be somewhere else. The fact that the model comes from Sterman, does not guaranty anytning. I have already found errors in some Sterman's model, conceptual or technical.
There is too a second loop dealing with depreciation that is not mentioned as error if one changes the fixed assets to a normal equation. The problem may come from this loop too.
One solution is to simplify the model progressively until the error disappears to spot where the error lies.
You may try too to put the simultaneous equation on the other variables of both loops, so that you can initialize both loops with different values
One must think at the real signification of both loops. Why initialize the fixed assets to zero?
Where did you find that model and its explanations?
Regards.
JJ
Hi
I do not kow how Vensim can compute two simultaneous loops centered on the same variable at the same time. I tried to transform the two loops into one loop, but did not find how. I think that it is important to understand what these simultaneous loops are doing and why they are working on the same variable. If one knocks out the depreciation loop by taking away the depreciation from the fixed assets variable, the first loop is still generating an overflow. I do not understand either how a so small time step (around an hour) is possible with such a long time horizon (5 years).
Replacing the simultaneous loops with classic loops with levels would simplify the calculation, but is it compatible with the purpose of the model?
Regards.
JJ
I do not kow how Vensim can compute two simultaneous loops centered on the same variable at the same time. I tried to transform the two loops into one loop, but did not find how. I think that it is important to understand what these simultaneous loops are doing and why they are working on the same variable. If one knocks out the depreciation loop by taking away the depreciation from the fixed assets variable, the first loop is still generating an overflow. I do not understand either how a so small time step (around an hour) is possible with such a long time horizon (5 years).
Replacing the simultaneous loops with classic loops with levels would simplify the calculation, but is it compatible with the purpose of the model?
Regards.
JJ
In some cases it is possible to solve a problem with multiple simultaneous loops using FIND ZERO, which can take array arguments. An example would be a market clearing process, where supply and demand are simultaneous, and you have an array of prices that clears the market. However, in most cases, it's better to come up with some explicit dynamic process to replace the simultaneity.
Tom
Tom
/*
Advice to posters (it really helps us to help you)
http://www.ventanasystems.co.uk/forum/v ... f=2&t=4391
Blog: http://blog.metasd.com
Model library: http://models.metasd.com
Bookmarks: http://delicious.com/tomfid/SystemDynamics
*/
Advice to posters (it really helps us to help you)
http://www.ventanasystems.co.uk/forum/v ... f=2&t=4391
Blog: http://blog.metasd.com
Model library: http://models.metasd.com
Bookmarks: http://delicious.com/tomfid/SystemDynamics
*/
-
- Senior Member
- Posts: 107
- Joined: Wed Nov 26, 2008 6:12 am
Hi Giovanni,
A lot of the unit errors can be easily corrected
For example you have defined:
"cash in" {$/year} = "Credit Collection Rate" {$/year}
"Credit Collection Rate" = DELAY3("Revenue", "Receivable Collection Delay")
"Revenue" is in {$/Week} and "Receivable Collection Delay" is 4 {Weeks}
Vensim does not automatically convert weeks into years and if you want your model to run in years then for example, "Receivable Collection Delay should be = 1/52*4 Years
There are many such unit issues, if you can convert everything to "years" (or weeks, whichever you choose but consistently); it would make things easier to debug.
My Best,
Karan
A lot of the unit errors can be easily corrected
For example you have defined:
"cash in" {$/year} = "Credit Collection Rate" {$/year}
"Credit Collection Rate" = DELAY3("Revenue", "Receivable Collection Delay")
"Revenue" is in {$/Week} and "Receivable Collection Delay" is 4 {Weeks}
Vensim does not automatically convert weeks into years and if you want your model to run in years then for example, "Receivable Collection Delay should be = 1/52*4 Years
There are many such unit issues, if you can convert everything to "years" (or weeks, whichever you choose but consistently); it would make things easier to debug.
My Best,
Karan
Simultaneous equations
Hi all,
thanks for the suggestions and hints. We'll simplify the model in order to reduce the simultaneity and correct all the unit of measure errors.
Thanks again, talk to you on the next thread!!
Giovanni
thanks for the suggestions and hints. We'll simplify the model in order to reduce the simultaneity and correct all the unit of measure errors.
Thanks again, talk to you on the next thread!!
Giovanni