THEORY: POPULATION DYNAMICS: FROM EXPONENTIAL GROWTH TO LOGISTIC GROWTH

110.302 DIFFERENTIAL EQUATIONS PROFESSOR RICHARD BROWN

Population Dynamics, the used of ordinary differential equations to study the population growth of animal species, is a full and ready toy box of applications to explore the sometimes complex behavior of solution to relatively simple differential equations. We will explore this study in Biology often in this class. For now, we can start with the basics:

1. Exponential Growth

It is common to study growth rates of populations using a simple model of exponential growth: If a certain animal always has 10 offspring, and each offspring upon maturing has 10 offspring, then after one generation, there are 10 new animals present. After the next generation, there are 100 animals (10 each from the 10). After 3 generations, each of those 100 will have had 10, and so on. At the nth stage, there will be 10^{n} animals. If we let t be the integer number of generations, then we can model the population size p(t) as a function of number of generations t, and

p(t) = 10^{t}.

Of course, we typically measure population sizes by time. But this is fine since a generation to a species can be set as a time variable whose whole number scale can be set to reflect the time it takes to produce the next generation. This is common for studying things like bacteria:

Example 1. Suppose a colony of bacteria in a petri dish doubles in size every 2 hours. How long will it take a colony of 100 bacteria to reach 50000?

Solution. One rapid way to do this would be to simply declare a variable t as time in units of 2 hours (t = 1 is 2-hours after start, t = 2 is 4-hours, and so on...), and then say

p(t) = 100 · 2^{t}, t ∈ ℤ_{+} (The positive integers).

Then solving the problem involves solving the equation

50000 = 100 · 2^{t}, ⟹ log_{2} 500 = t,

although at this point, one would need to find a decimal value for the logarithm, grab the whole number part, and then convert that to 2-hour periods.

Another way is to normalize time to hours. In this case, set up the equation so that t = 2 in units of hours, corresponds to the doubling of the population. We would then have our model

p(t) = 100 · 2^{\frac{t}{2}} = 100(2^{\frac{1}{2}} )^{t} = 100(\sqrt{2})^{t}, t in hours.

Solving the problem would be similar to above.

Recognize that we can always change the base of any exponential function to any other positive, non-unit, base simply by solving a = b^{r} for any positive a and b: in this example, we can make the assumption that the time variable is continuous (and not only defined for integer hours, and change the base to the base e, common in all scientific exploration. Thus

2^{\frac{t}{2}} = (\sqrt{2})^{t} = (e^{r})^{t} = e^{rt}, where \sqrt{2} = e^{r}.

This is solved by r = ln \sqrt{2} = \frac{ln 2}{2}. Thus for time in hours, we could assume t is a continuous variable for our model, and write the model as

p(t) = 100e^{rt}, r = \frac{ln 2}{2}.

The quantity r above is called the (continuous) growth rate of the bacteria in this experiment, and an ordinary differential equation using this growth rate would be the model that states “the rate of growth of a population of bacteria is r”, and satisfies the Initial Value Problem

\frac{dp}{dt} = rp, p(0) = 100.

The solution would be to find a function whose first derivative is a constant r times the original function. Exponential functions act this way, and we know that the general solution is

p(t) = Ce^{rt},

and since p(0) = 100 = Ce^{r0} = C. our particular solution is p(t) = 100e^{rt}.

There is a problem with exponential growth, though. Populations cannot grow this way over the long term in a realistic sense since there are limits to resources, space, and such. Real models of population growth need to account for overcrowding, the competition for limited food and resources, disease, etc. Large population typically do not grow at the same rate as small populations. Look back at the standard model for population growth \frac{dp}{dt} = rp. This model says that the growth rate will be the same regardless of the size of the population, and we can graph it like a function h(p) = r, a constant. In real life, growth rates usually change with the size of the population, especially when the populations get large with respect to the environmental conditions they live in. To model this, we can think of a “better” model for animal populations being a different choice for h(p), something not constant. The differential equation will still be autonomous, mind you.

2. Logistic Growth

The easiest way to create a growth rate that changes with the population size is to assume the growth rate is a linear function of population size (instead of a constant). Here, introduce a parameter a as the (negative) slope of a linear function h(p). We can leave the original exponential growth rate as the one valid when the population size is really small (we will call it r_{0} now for the growth rate near 0 population). Then the function h(p) will look like h(p) = r_{0} − ap. Note something special about a line with negative slope; at some point, it will cross the horizontal axis. This point, h(p) = 0, occurs when p = \frac{r_{0}}{a} = K. This point will be special for the model, as any population over this number will result in a negative population growth. In population dynamics, the value of a is not that important, but the value of r_{0} and that of K are quite important. Hence, we can tweak the model to only value these numbers. Remove an r_{0} from the linear function, and we get

\frac{dp}{dt} = (r_{0} − ap)p = r_{0}(1 − \frac{a}{r_{0}} p)p = r_{0}(1 − \frac{p}{K})p,

and the model reflects now these two important parameters. This is one common form of the Verhulst Equation, or the logistic equation. Besides being a better way to model population growth, it is also a common model for example, to model the statistical distribution of fermions over the energy states of a system in thermal equilibrium, or to introduce nonlinearity in neural networks.

Let’s study the new model in a qualitative way (the book does the quantitative study, by actually solving the ODE). Write f(p) = r_{0}(1 − \frac{p}{K})p. Here the equilibrium solutions (corresponding to the values of p where f(p) = 0) are

p(t) = 0, and p(t) = K.

Can we classify them? Here, p(t) > 0 only since we are talking about populations, For 0 < p(0) < K, we have f(p) > 0, and for p(0) > K, we have f(p) < 0. Hence the phase line looks like

We see that the equilibrium p(t) = K is asymptotically stable, while the equilibrium p(t) = 0 is unstable. So what is the conclusion for the model if we are modeling populations...? One thing you can say is, if you start with any reasonable (positive population), the long term behavior of the population size will stabilize at K. Note that this is true whether your starting population is smaller than K or larger that K.

At left is a slope field for the logistic equation, displayed with r_{0} = 2 and K = 2. Also depicted are numerical examples of solutions with initial values p(0) = .1, p(0) = 1, and p(0) = 2.7-ish.