Logistic Population Growth Model

The logistic equation is a mathematical model for population growth with crowding, which, though simple in form, simulates phenomena of amazing complexity.


As is well known, a small population introduced into an empty environment (think bacteria in a Petri dish) tends to grow at an exponential rate. If Pn is the population after n generations, then:


Pn = Rn * P0


where P0 is the initial population and R is the growth rate (R > 1 is a growth rate, R < 1 is a decay or negative growth rate). If the population grows by 5% each generation, then R = 1.05. If the population doubles every 10 years, then R is approximately 1.07.


Expressed another way, P0 is specified and Pn is determined by the recursion equation:


Pn+1 = R * Pn


This model works fairly well until the population becomes so large that crowding becomes significant. How should we model crowding? Let's add another factor to the recursion equation. Let's specify a maximum population, call it C, for Capacity, so Pn cannot exceed C (without, say, leading to immediate extinction from over exploitation of resources). With such a C, let's hypothesize a new recursion equation, with the effective growth rate reduced:


Pn+1 = R * (1 - Pn /C) * Pn


The new effective growth rate is " R* (1 - Pn /C) ". Notice that with the assumption that: Pn < C ( C is the maximum population), then this new factor satisfies:


0 < 1 - Pn /C < 1


and thus reduces the effective growth rate. When Pn is small, that is, Pn <<< C, then the effective growth rate is still approximately R. But the closer Pn approaches C, the greater is the reduction in the effective growth rate.


How does one determine C? One doesn't. One eliminates it. Let:


pn = Pn / C


So pn is the population as a fraction of capacity, 0 < pn < 1. And the recursion equation becomes:


pn+1 = R * (1 - pn) * pn


Using Excel one can easily explore the behavior of populations governed by such an equation:


1) Label column A as "Rate" ( A1 = "Rate" ).

2) Let A2 = 2 (for now).

3) Let A3 = "=A2".

4) Click, drag and copy A3 down to A100.

( So column A is 2's all the way down. Yes, we could do fixed cell addressing, but this is easier.)

5) Label column B as "Population" ( B1 = "Population" ).

6) Let B2 = 0.01 (a small initial population for now).

7) Let B3 = "=A2*B2*(1-B2)"

( the logistic recursion equation)

8) Click, drag and copy B3 down to B100.


Notice!  The population rapidly converges to a value of 0.5 - half capacity.  If you change the initial population ( B2 = 0.9 or B2 = 0.3 - remember the initial population must be < 1 ), it still converges rapidly to a steady state of half capacity.


Now add a graph of column B only. (It's easier for us visually oriented primates to understand than a table of numbers).


9) Click on column B.

10) Click on "Insert - Chart - Scatter - choose one which connects the points - Finish"


And you can see it approach 0.5.  Change the initial population and watch the graph change instantly - this is computational experimental science!


Try a growth rate of A2 = 1.5. The population approaches a smaller steady state population.


Try A2 = 2.5. It approaches a higher steady state population. And each of these approaches the same steady state independent of the initial population - try it for different B2's and verify this.


Unlike the exponential model - which approaches infinity - this model simulates an approach to a steady state population - at least for those rates tried so far - which is far more realistic.


Try A2 < 1 and it rapidly approaches zero - extinction. Makes sense - negative growth leads to extinction.


Try A2 = 3.0 and ... hmmmmmmmm ... it seems to bounce back and forth and approach a limit. Try different B2's, and it still behaves the same.


Try A2 = 3.1 or 3.3 and it now bounces back and forth between two levels - it's cyclic with period 2. Try different B2's, and it still behaves the same.


Try A2 = 3.5 and it now bounces back and forth between four levels - it's cyclic with period 4. Try different B2's, and it still behaves the same.


Try A2 = 3.9.  It's CHAOS!!! There's no limiting pattern at all. Try different initial populations - try B2 = 0.43 and B2 = 0.44. Very different patterns! Try A2 = 3.91 with the same B2. Very different patterns! This is mathematical chaos. Not only is there no pattern to the long term behavior, but very small changes in the initial conditions result in completely different behaviors. The logistic equation is completely deterministic, and yet it results in apparently "random" and unpredictable behavior. And since one can never know the initial conditions with complete accuracy, and even a small change in the initial conditions results in completely different behaviors, we have an example of a deterministic phenomenum which is inherently unpredictable.


"A butterfly flapping its wings in China will change the weather in the USA two weeks later."  


ŠJames S. Freeman, 2002

Return to Home Page