Parabola Shape

This forum supports discussion on topics of specific interest to the Model Analysis Special Interest Group of the System Dynamics Society (SIG-MA). It is currently unmoderated, and anybody who is signed in may post to the forum.

Moderator: Jim Duggan

Post Reply
Sarah Boyar
Posts: 16
Joined: Sat Jul 18, 2009 5:22 pm

Parabola Shape

Post by Sarah Boyar » Wed Sep 21, 2011 1:05 pm


I'm interested in learning/developing a generic formula for creating a parabola shape. (Upside-down parabola)

This would mean that the rate of change, or the slope of the curve would be biggest at time 0 and as time passes the slope would get smaller and smaller, being zero at the peak and then get even smaller going negative until the shape intersects with the x-axis.

I would like to be able to exogenously specify the area under the curve as well as the rate of change of the slope (e.g. to make a fatter or thinner parabola).

The curve will be used to drain a stock - e.g. I want the drain/year out of the stock to take the form of a parabola in my model. As such, the stock variable will likely need to be an input into the parabola equation: will the stock be the area under the curve? Or will the initial value of the stock be the input "area under the curve"?

Is it possible to shape a parabola based on the area under the curve plus a coefficient for the rate of change for the slope?

From a SD perspective, this would mean the second half of the (drain/year) curve is exponential decline (a positive loop, getting slower faster) but the first half of the curve is a negative loop (the rate is growing but the growth is decelerating). So, from a CLD perspective it actually feels a bit complicated whereas from a stock-flow perspective it should be rather simple?

Any advice much appreciated. I've been able to create something similar, s-shaped growth and decline, but the data regarding the situation is not properly s-shaped. Well, maybe the second half of the curve is arguably s-shaped but the first side feels more like a parabola - the second half of the s-curve.

In fact, one could argue that a parabola is s-shaped growth and decline with the tails 'cut-off' at the mid-rift...but how to model that, I'm not sure. Basically, I'm experiencing from my (albeit limited) repertoire that that one equation is not sufficient for the two sides of the hump, that each side has its own dynamic. Thoughts? Or else maybe it's a segment of a goal-gap oscillation. Thanks.

Best wishes,

Eliot Rich
Posts: 20
Joined: Mon Jan 12, 2009 3:39 pm
Location: University at Albany, SUNY

Re: Parabola Shape

Post by Eliot Rich » Thu Sep 22, 2011 2:24 am

Hello Sarah:

A question and a suggestion. Is the underlying process controlling the stock really a represented by a parabolic equation, or are there two overlapping representations that change as you move from the central point? If it's the latter, consider representing the equations as two separate effects, one active when x<0, the other when x >0. Lookups make more sense when they link back to data or a strong theoretical base.

Jean-Jacques Lauble

Re: Parabola Shape

Post by Jean-Jacques Lauble » Thu Sep 22, 2011 3:27 am

Hi Sarah
Generally in these situations, one has two options.
Either represent the curve by an analytical function or maybe more (as noted by Elliot) with a limited number of parameters that when varying, will vary the shape of the curve, or use a lookup table.
The advantage of the analytical function is that you can vary the shape of the curve easily by varying a limited number of parameters. The problem with analytical functions is that often they behave badly especially in extreme conditions and one must find them. If you go to the website you have a free software to find analytical functions that best fit to data.
I prefer to use lookup tables that adjust best to what one wants exactly. If I want to experiment different shapes, I just build different lookup tables and use nested if then else.
If type of shape = 1, use the lookup table 1, else if type of shape = 2, use the lookup table two etc…
This way by varying the type of shape you can easily experiment with the most representative shapes you want to consider.
Best regards.
Jean-Jacques Laublé

Thomas Fiddaman
Posts: 152
Joined: Thu Jan 15, 2009 6:55 pm
Location: Bozeman, MT

Re: Parabola Shape

Post by Thomas Fiddaman » Mon Oct 10, 2011 2:11 pm

It's no problem to work out the algebra for such a curve; Wolfram Alpha is helpful for quick noodling around - for example type in "integrate y=a*x^2+c".

But, building on Eliot Rich's point, it seems important to have some kind of physical basis for this behavior.

Presumably you want the outflow to start at time 0, then increase and decrease, ending up at 0 at the same moment that the stock is fully drained. This implies the following constraints:
- the outflow is 0 initially
- the outflow has a maximum at time t/2
- the outflow is 0 again at time t
- the area under the parabola from time 0 to t is equal to the initial value of the stock (assuming no inflow)

You could specify something like outflow = 1-(time-1)^2, with suitable logic for time<0 and time>1. But that's an open loop system, i.e. the outflow is a function of time and independent of the current value of the stock. That's not very desirable; for example, if some disturbance removes a bit of the stock while the outflow is underway, the outflow wouldn't respond and the stock would end up negative, which is unrealistic.

So, what you really want is a differential equation dstock/dt = f(stock) that just happens to yield the desired parabolic behavior. Unfortunately that's impossible to achieve, because the first constraint (outflow=0 initially) implies that the outflow at the initial value of the stock is 0, so that the stock would never move off its initial level. You could fix that by relaxing the constraint, but then the parabola implementation starts to get very messy.

It seems that what must be going on in the real system must be somehow more complex than a first order outflow, an it would be good to explicitly capture the dynamics that yield the shape of the outflow.

The shifting loop dominance story sounds a bit like the logistic model running in reverse. That would be:
outflow = r*stock*(1-stock)
where r is a rate parameter. If you start the system with stock = a bit less than 1, the outflow will rise, peak, and decline, with the stock draining towards 0 in an s-shape.

If you rewrite the outflow equation as
outflow = r*stock - r*stock^2
you can see that there are essentially two loops, one positive and one negative, which shift in dominance due to the ^1 vs ^2 powers.

This might be a plausible solution for you, though it does still have the problem of getting stuck if the initial stock = 1. See ... ion_growth for interpretation.

Another possibility is that this really reflects a higher-order process, like a 3rd order delay. In that case you could check out


Sarah Boyar
Posts: 16
Joined: Sat Jul 18, 2009 5:22 pm

Re: Parabola Shape

Post by Sarah Boyar » Thu Oct 20, 2011 6:10 am

Thanks to everyone who responded. I have been playing with all these ideas and find the math all unsatisfactory. All the methods of lookups or equations seem to create a boundary or exogenous (subjective) input my model, whereas an explicit articulation of the structure of the system would be preferable.

As Tom wrote: "It seems that what must be going on in the real system must be somehow more complex than a first order outflow, and it would be good to explicitly capture the dynamics that yield the shape of the outflow."

Thus, I believe that the question to be explored further is - in project dynamics - am I correct in observing from some data that the work tends to be doled out in a up-side down parabolic shape (vs. s-shaped growth and decline)? If this observation is correct, is it significant? (I mean, the areas under the curves are pretty close in the two shapes). And, if it's a significant difference, what is the operational structure that causes this allocation of work? Is the operational structure project-specific or a generic process?

Post Reply

Who is online

Users browsing this forum: No registered users and 1 guest