1st Order Linear Loops

A feedback loop is first order if it only contains one stock. A causal connection is linear of the effect is proportional to the cause. Thus, in a linear first-order feedback loop, the flows of the stock are proportional to the stock itself. Such loops have constant impact.

There are two types of first-order linear loops: the compounding process, a reinforcing loop; and the draining process, a balancing loop. Consider a model with both loops:

expmodel

where

expequation

For example, the reinforcing loop could be a birth process and the balancing loop a death process.

The easiest way to find the loop impacts is to differentiate the model equation by time and note the coefficients of the first derivative of x:

expdiff

Thus the two loop impacts are:

expimpacts

where the underline subscript indicates the loop. Both impacts are constant; the reinforcing one is positive; the balancing one is negative. As they are first order loops, the loop impact equals the loop gain.

The loop with the largest numerical value of impact determines the form of behaviour. Thus, if a > b, then the reinforcing loop has the larger impact and so dominates. Thus there is exponential growth:

expgrowth

However, if b > a, then the balancing loop has the larger impact and thus dominates, giving exponential decline.

expdecline

The model is often called the exponential model.

The impacts can also be computed using pathway differentiation. Express the model equation in causally connected form, with underline subscripts indicating the causal pathways associated with each loop:

expccde

The x with the subscript R has the same numerical value as x with subscript B. They differ in their causal origin, in this case separate feedback loops. This use of this notation allows the differential equation to capture both the numerical values of the flows and the causal pathways into the stock via those flows. Thus, using the pathway derivative definition of loop impact, the values of the impact along each causal pathway can be extracted:

exppathdiff

This confirms the values of the two loop impacts.