Math 336 - Mathematical Modeling
Spring Semester, 2000

 © 1999, All Rights Reserved, SDSU & Joseph M. Mahaffy
San Diego State University -- This page last updated 08-Feb-00

Population Growth

 Outline of Chapter

  1. Population of the United States
  2. Discrete Malthusian Growth model
  3. Compound Interest
  4. Improved Malthusian Growth Model
  5. Logistic Growth Model
  6. Yeast Model
  7. U. S. Census Revisited
  8. Equilibria
  9. Other Behavior of the Logistic Growth Model
  10. References
  11. Problems
  12. Computer Lab Exercises



Population of the United States

The United States takes a census of its population every 10 years. The census has important ramifications for many aspects of our society, such as budgeting federal payments and representation in Congress. Accurately predicting this demographic data is important for planning our communities in the future. There is plenty of political controversy over the numbers, but at the base of all calculations for the future is some type of mathematical model. Current models are quite sophisticated, but first we must appreciate the basic models behind them. Below we present the census data for the history of the U. S.

U. S. Census Data 












































Select the range of Census Data

Growth rate of the range selected



The javascript above shows that the first three growth rates are 35.1%, 36.4%, and 33.1%, which averages 34.9% per decade. This growth rate is almost constant until 1860, so this information should allow us to estimate the census data up until 1860 using a model with a constant growth.


Discrete Malthusian Growth

Let the integer n represent the number of decades after 1790 and define Pn to be the population for the nth decade after 1790 (with P0 again representing the population in 1790). The population for one decade is estimated by using the population from the previous decade and adding to it the average percent growth multiplied by the population from the previous decade. The mathematical model based on this description is given by:

Pn+1 = (1 + r)Pn,

where r is the average growth rate. Our calculations above suggest that we use r = 0.349 to estimate the population of the U. S. from 1790 to 1860.

This equation is the Discrete Malthusian Growth model (named after the work of Thomas Malthus (1766-1834)). The Discrete Malthusian Growth model is a special example of Discrete Dynamical equations or Difference equations, which we will study in more detail as the semester progresses. Population models using difference equations are commonly used in Ecological modeling as one can often determine the population of a species or collection of species knowing the population of the previous generation of the species being studied. The Malthusian growth model states that the population of the next generation is proportional to the population in the current generation, which is what is written in the equation above.

Below is a table and graph showing the discrete Malthusian growth model applied to the U. S. census data up until 1870.




% Error







































From the table and graph above, you can see that until 1870, the population of the U. S. follows the Malthusian growth model extremely well with only a few percent error. However, the error in 1870 jumps dramatically with a prediction that is 8.2% high. Note that between 1860 and 1870 there was the Civil War, which would cause a dramatic decline in the population in the U.S., so you would expect this prediction to be poor. More significantly, the United States was entering the industrial revolution, which had a more lasting effect on population growth. The move from agrarian to an industrial society resulted in a significant decline in the net birth/death rate. The crowding of industrial societies, where children become more of a burden than an asset as they are on farms, results in less desire of the population to have large families.

Clearly, this model is limited to a range of dates where the growth rate remains relatively constant. If you attempt to continue using this model until 1920 or 1970, then the model produces the census values of 192,513,429 and 860,044,211, respectively. Thus, this model becomes increasingly bad if we assume the constant growth rate of 34.9%. The javascript above shows that in 1920 the growth rate is around 15% and further drops to only 13% in 1970. (The lowest growth rate can be seen to have occurred during the Great Depression (between 1930 and 1940) with only a 7.2% growth rate.) Thus, this simple model can only predict population for a limited time into the future, but certainly provides good estimates for some community planning that is required.

Solution of Discrete Malthusian Growth Model

There are not many discrete models that have an explicit solution. However, it is easy to solve the discrete Malthusian growth model. From the model above, we see that

P1 = (1 + r)P0, P2 = (1 + r)P1 = (1 + r)2P0, ... Pn = (1 + r)Pn-1 = (1 + r)nP0.

Thus, the general solution of this model is given by

Pn = (1 + r)nP0.

This shows why Malthusian growth is also known as exponential growth. By making r into a function which depends on either time or population or both, then we can see how this model can be improved. For more information on human population growth you might want to visit the UN website on population.


Let us suppose that a population of yeast, satisfying Malthusian growth, grows 10% in an hour. If the population begins with 100,000 yeast, then find the population at the end of 4 hours. How long does it take for this population to double?


The population of yeast satisfies the equation

Pn+1 = (1 + 0.1) Pn with P0 = 100,000.

The population after one hour is P1 = 1.1P0 = 110,000. After two hours, P2 = 1.1P1 = (1.1)2P0 = 121,000. Thus, after 4 hours, P4 = (1.1)4P0 = 146,410.

For the population to double, it must reach 2P0 = 200,000. Thus, we must solve

2P0 = (1.1)nP0 or 2 = (1.1)n.

By taking the logarithms of both sides we have

ln(2) = ln(1.1)n= n ln(1.1) or n = ln(2)/ ln(1.1) = 7.27 hours.

Compound Interest

You may have noticed that the discrete Malthusian growth model is closely related to compound interest problems. If interest is compounded annually, then the amount of principle in any year n satisfies the discrete Malthusian growth model. The general formula for determining the amount of principle when interest the rate is r (annual), which is compounded k times a year for n years, given an initial amount of P0 satisfies:

Pn = (1 + r/k)knP0,

where Pn is the amount of principle after n years.

In population studies, one can use this concept to examine growth rates for a population growing according to the Malthusian growth model for differing periods of time. For example, our model above on the U. S. census had a growth rate of approximately 35% per decade in the early years. The question arises as to what the appropriate annual rate of growth would be.

If we let r be the annual growth rate, then we need to solve the equation

(1 + r)10 = 1.35.

This is easily solved by taking the 10th root of each side. So

1 + r = 1.350.1 = 1.030465 or r = 0.030465.

Thus, the appropriate annual growth for the population of the U. S. near 1800 was about 3% per year.

Improved Malthusian Growth Model

The section above presents a discrete Malthusian Growth model based on the U. S. population from census data. We noted that if an average growth rate over the first few decades gives a growth rate that is much too high for population prediction in the 20th century. In this section we compare the discrete Malthusian growth model using the average growth rate over all the data and an improved modified model that uses a time dependent growth rate.

The general discrete dynamical population model is given by

where f is a function depending only on the population P at time tn. This difference equation is said to be autonomous as it does not have a temporal or time dependence. A more general difference equation is given by

which is a nonautonomous difference equation.

The growth rate for the Malthusian Growth model is computed by dividing the population at one census date by the population at the previous census date. When the average is take over all the census dates in the table above, we find that the average growth rate

r = 0.2347.

This results in the discrete Malthusian growth model

Clearly, this growth rate is too low for the early years, and too high for later years. Thus, a modified time dependent growth rate can be found by fitting a line through the data. The best fit to the growth rate data as seen in the graph below satisfies the following:

where t is the date of the census.

The resulting modified nonautonomous difference equation is given by

Pn+1 = (1 + k(tn))Pn,

where tn= 1790 + 10*n. The graph below gives a comparative study of these two models. Though the nonautonomous model is clearly much better than the autonomous model, there are problems having a population model that depends on a temporal variable (t). In the next section, we'll examine improved autonomous models.

In general, population biologists would prefer to have a model that is not time dependent.

Discrete Logistic Growth Model

Above we studied the Discrete Malthusian growth model, which showed exponential growth. This model is appropriate for early phases of population growth for most animal populations. However, as a population grows, it encounters crowding pressure due to many factors such as toxic build up or space and resource limitation.

In 1913, Carlson [1] studied a growing culture of yeast. Below is a table of the population for these yeast at one hour intervals. We would like to develop a mathematical model to describe the growth of this culture.












































 The general discrete dynamical system is given by the

pn+1 = f(pn).

This is an iterative map where the population at the (n + 1)st generation depends on the population at the nth generation. The function f(p) is called the updating function as it produces the next population in the iterative scheme. A graph of the updating function has the (n + 1)st generation on the vertical axis, while the nth generation is on the horizontal axis.

It is clear that the population of yeast in the table above does not satisfy a Malthusian growth, which has a linear updating function and grows exponentially without bound. The next obvious addition to the updating function is the addition of a quadratic term, which should be negative to reflect a decrease in the growth of a population due to crowding effects. This is the Logistic Growth model and can be written:

This equation has the Malthusian growth model seen in the previous section with the additional term -rPn2/M. The parameter M is called the carrying capacity of the population.

The behavior of the Logistic growth model is substantially more complicated than that of the Malthusian growth model. There is no exact solution to this discrete dynamical system. The ecologist Robert May (1974) studied this equation for populations and discovered that it could produce very complicated dynamics. In its simplest form the Logistic growth model can be written:

where the parameter m varies between 0 and 4. For a good description of this model complete with Java applet simulations see the website of B. Fraser.


The website of B. Fraser shows a process of geometrically viewing the updating function, which is called cobwebbing. The updating function, f(pn), is graphed with the identity map, pn+1 = pn on a single graph with the vertical axis being pn+1 and the horizontal axis being pn. The idea is that you start at any p0, then go vertically to p1 = f(p0). Next you go horizontally to the identity map to locate p1 on the horizontal axis. From there you find p2 by going vertically to p2 = f(p1). This process is repeated to generate the cobweb of points by this discrete dynamical system. The sequence of points on the horizontal axis form the solution set generated by the discrete dynamical system. The graphical representation allows you make some projections of the behavior of the system. Below is a diagram showing several steps in the cobwebbing scheme for the quadratic map

pn+1 = 3pn(1 - pn ).


Yeast Model

The graph below shows a plot of pn+1 vs. pn from the table above. (This is accomplished by plotting the population from one time against the population from the previous time. For example, the first two points are (9.6, 18.3) and (18.3, 29.0).) The graph of the data is fit applying Excel's polynomial fit with trendline, using a quadratic passing through the origin, and is shown below. This equation becomes the updating function.


Our discrete logistic growth model for the yeast experiment above is given by

pn+1 = 1.56pn - 0.000861pn2.

Below is a simulation showing both the data and the model. As we can see, the model does a fairly reasonable job of simulating the data from this fairly simplistic model.

Qualitatively, we see the same initial roughly exponential growth, then both models seem to level off at approximately the same value. This is the carrying capacity of the population. The equation above shows r = 0.56 and r/M = 0.000861, so M = 650.4. This is clearly a little low based on the original table.

U. S. Census with Logistic Growth Model

We saw that the Malthusian growth model did not work well for the U. S. census data. Can we apply the logistic growth model to the U. S. census data and get a better fit to the data and avoiding the problems of the time varying nonautonomous model developed at the end of the last section?

We return to the U. S. census data in the previous section. As with the yeast model shown above, we need to find the updating function by plotting Pn+1 versus Pn. So it remains a question of how to best fit an updating function of the quadratic form given by the Logistic growth model through this data. It turns out that if you simply perform the least squares best fit of a quadratic function (without the constant term) through this data (as trendline does in Excel), it gives too much weight to the later years of the model and grossly underestimates the rate of growth r. Based on the assumptions of the Logistic growth model that increasing population should decrease the growth rate, I chose r = 0.351 (matching the initial growth rate between 1790 and 1800), then performed a least squares best fit to the data. This gave the Logistic growth model:

The graph of this updating function with the data is seen below (the line Pn+1 = Pn is usually shown for reference and can be used in a process called cobwebbing that we will not discuss at this time):

The simulation of this discrete Logistic growth model compared to the two models of the previous section and with the data is seen below:

It is clear that the discrete Logistic growth model follows the data better than the Malthusian growth model (even the Malthusian model with r = 0.349), but not as well as the non-autonomous growth model of the previous section. The Logistic growth model shown above predicts the population relatively well up until 1900. However, it even has the wrong concavity after 1930, suggesting a premature leveling off of the population of the U. S. Thus, a time varying growth rate seems the best of these three models. This shows that human populations have a more complicated dynamics than these models can predict with both time-varying and crowding factors. (Sociological and technical factors are especially difficult to incorporate into mathematical models.) Your ecology courses should help explain more details underlying the assumptions in these models, so explain a little better when the models are applicable and why they fail in other predictions.


Later we will study the qualitative behavior of discrete dynamical equations in more detail, but for now let's begin with the first elementary step of our analysis. Consider the general discrete dynamical equation:

Pn+1 = f(Pn).

The first step in any analysis is finding equilibria, which is simply an algebraic equation. An equilibrium point of a discrete dynamical system is a point where there is no change in the variable from one iteration to the next. Mathematically, this occurs whenever there is a solution to

Pe = f(Pe).

Graphically, this is when f(P) crosses the line y = P, which is one reason why this line was shown above.

Consider the original discrete Logistic equation listed above with r > 0. The equilibria are found by solving:

Thus, the equilibria for the Logistic growth model are either the trivial solution 0 (no population) or the carrying capacity M.

If we examine the Logistic growth model proposed above for the U. S. census data, then we find the equilibria satisfying:

Thus, Pe = 0 or 2.849*108. Note that this later population will be reached in less than 20 years, while actual projections have the U. S. population rising to over 400 million by the middle of the next century. It is unlikely that human population can continue its current course, but what will be the actual scenario? Mathematical modeling can provide reasonable estimates for short term growth and allows one to predict several different possibilities for longer term depending on the assumptions that are entered into the model.

Other Behavior of the Logistic Growth Model

 Below we present an applet that shows simulations of the logistic growth model for various choices of r.


Robert May (1974) demonstrated that the discrete Logistic growth model could display very complicated dynamics. Watch what happens in the applet above as we choose different values of r. For example, try the values r = 0.5, 1.8, 2.3, and 2.65. (Note that the solution of the discrete Logistic equation only gives solutions at the integer values of n, so the connecting lines are only drawn to help visualize the behavior of the system.) The first value of r shows the curve smoothly ascending to carrying capacity of 1000. The second value of r has the population ascend and actually overshoot 1000, then oscillates about 1000, getting closer to the carrying capacity as n increases. In both of these cases, the equilibrium population of 1000 is said to be stable. When r = 2.3, the solution oscillates about 1000, taking on the values of approximately 690 and 1180. This solution is said to have a period of 2. The last case shows the population oscillating almost randomly about 1000. This last situation could have either a very high period of oscillation or actually be chaotic. Later in this course we will study more of the mathematics behind this sequence of changes, known as bifurcations. We will find that derivatives play an important role in the study of the behavior of these systems.



[1] T. Carlson Über Geschwindigkeit und Grösse der Hefevermehrung in Würze. Biochem. Z. 57: 313-334, 1913.

[2] Statistical Abstracts of the United States (1993) 113 th ed., U. S. Department of Commerce, Bureau of the Census, Washington, DC.


1. Take r = 0.15 and P0 = 75,994,575 (the population in 1900). Use the discrete dynamical system with n = 1,2,3,..8,9 to estimate the population through the 20th century. Compare your results to the actual census data.

2. Consider an annual interest rate r = 6% and an initial investment of P0 = 10,000. Use the discrete dynamical system with interest compounded annually, semiannually, quarterly, and monthly to determine the value of the investment after two years.

3. a. A population of herbivores satisfies the growth equation yn+1 = 1.05 yn. If the initial population is y0 = 2000, then determine the populations y1, y2, and y3. Also, give an expression for the population yn.

b. A competing group of herbivores satisfies the growth equation zn+1 = 1.07 zn . If the initial population is z0 = 500, then determine how long it takes for this population to double.

c. Find when the two populations are equal.

4. The model for breathing an inert gas is given by the equation

cn+1 = (1 - q) cn + qg ,

where c is the concentration of the inert gas in the lung, q is the fraction of air exchanged with each breath, and g is the ambient concentration of the inert gas. Suppose that a 2.5 liter lung begins with c0 = 7.0*10-5 M of Helium. Assume that each breath exchanges 1.5 liters of air with the environment which has a concentration g = 1.0*10-5 M of Helium.

a. Find the concentration of Helium in the lung for each of the first two breaths.

b. Sketch a graph showing the updating function and the identity function labeling important points, like the cn+1 intercept and the equilibrium point. What is the slope of the updating function and the identity function?

c. Show with cobwebbing the first two breaths computed in Part a. Is the equilibrium stable?

d. Suppose that after 5 breaths the lung had a concentration of 1.06*10-5 M of Helium. Determine what the concentration was in the lung after 4 breaths.

5. Below is data on several populations of herbivores in related areas. The data fit a population model of the form

Pn+1 = rPn - m ,

where r is the growth rate and m is the emigration rate.

a. Use the data below to determine the updating function for this population, i.e., find r and m. Take the first line of the data and find the population of the next two generations.

b. Graph the updating function and determine any equilibria. Determine the stability of all equilibria. Sketch the cobweb scheme for the population computed in Part a.









6. The population of China in 1980 was about 985 million, and a census in 1990 showed that the population had grown to 1,137 million. Assume that its population is growing according to the Malthusian growth law,

Pn+1 = rPn

a. Use the data above to find the constant r and then write the solution Pn. Predict the population in the year 2000.

b. How long does it take for China's population to double?

7. Consider the discrete logistic growth model given by

Pn+1 = 1.5 Pn - 0.0025 Pn2.

a. Suppose that the initial population P0 is 50. Find the populations of the next three generations, P1, P2, and P3.

b. Sketch a graph of the updating function and find the equilibria. Show the cobwebbing diagram for this model.

8. Consider the discrete dynamical system xn+1 = f(xn) with the updating function f(x) = 10x/(5 + x).

a. Starting with x0 = 2, compute xn for n = 1,2,3. Find all equilibria.

b. Sketch a graph of f(x) showing the y-intercept and any asymptotes for x > 0. Show the appropriate cobwebbing diagram for the simulation in Part a.

9. A modified version of the discrete logistic growth model is given by

Pn+1 = f(Pn) = 1.1Pn - 0.0001 Pn2 - 9.

a. Discuss the biological significance of each of the terms in the model above.

b. Assume that the initial population is P0 = 500, then determine the population for the next three generations. Repeat this calculation starting with P0 = 100.

c. Find all equilibria. Sketch the cobwebbing diagram for each of simulations in Part a.


Computer Lab Exercises

1. Consider the discrete logistic growth model

Pn+1 = f(Pn) = Pn + rPn(1 - Pn/M)

This problem explores some of the complications that can arise as the parameter r varies.

a. Let M = 5,000. The first step in studying this model is to find all equilibria (where the population stays the same). Determine all equilibria , Pe. Stability of an equilibrium, Pe, requires |f '(Pe )| < 1. For each of the two equilibria, find a condition on r that guarantees stability. 

b. Let r = 1.89 with P0 = 2,000. Simulate the discrete dynamical system for 50 generations. Sketch a graph the solution of dynamical system and write a brief description of what happens. Is the larger equilibrium stable?

c. Repeat the process in Part b. with r = 2.1 and r = 2.62. Is the larger equilibrium stable for these cases?

d. Use the applet above to try to find a parameter value that gives you an oscillation with period 3. This always implies that the dynamical system has gone through chaos. 

3. Below are tables of census data (population in millions) for Canada and India. We want to repeat for these countries the modeling effort that we performed in class for the U. S.





































































a. Find the growth rate for each decade with the data above by dividing the population from one decade by the population of the previous decade and subtracting 1 from this ratio. Associate each growth rate with the earlier of the two census dates. Determine the average (mean) growth rate, r, from the data above. Associate t with the earlier of the dates in the growth ratio, and use EXCEL's trendline to find the best straight line k(t) = a + bt through the growth data. Graph the constant function r, k(t), and the data as a function of t over the period of the census data. 

b. The Discrete Malthusian growth model is given by

Pn+1 = (1 + r)Pn

where r is computed in Part a. and P0 is the population in 1861 or 1901 (depending on the country). Solve this model, not forgetting that n is in decades.

c. Now consider the revised growth model

Pn+1 = (1 + k(tn))Pn

where k(tn) is computed in Part a. and P0 is again the initial population. Solve this nonautonomous discrete dynamical system. (Note that tn = 1861 + 10n or tn = 1901 + 10n.)

d. Use EXCEL to graph the data and the solutions to the models in Parts b. and c. for the period from 1861 (or 1901) to 2000. Briefly discuss how well these models predict the population over this period. List some strengths and weaknesses of each of the models and how you might obtain a better means of predicting the population.

f. Find the percent error between the actual census data and the models in 1921, and 1981. Use each of the models to predict the populations in 2001 and 2031. Decide if the calculated value is most likely high or low.