Skip to main content
\( \newcommand{\lt}{ < } \newcommand{\gt}{ > } \newcommand{\amp}{ & } \)

Section3.2Sequence Projection Models


Populations are frequently modeled using sequences. Many population are adapted to reproduce on an annual cycle, so it makes sense that such populations might be censused on an annual basis. Even for populations that reproduce throughout the year, it might still make sense to measure the population at the same time to measure year-over-year growth or decline. Fast growing populations like bacteria or some species of insects might be measured on even shorter time scales, such as hourly (bacteria) or weekly (insects). Sequences are appropriate in these circumstances because we are interested in the population size at specific times rather than at all possible times.

There are many variables that determine how a population changes. Some of these are unpredictable. Unpredictability or randomness is called stochasticity. Populations are subject to environmental stochasticity and demographic stochasticity. Environmental effects might include temperature fluctuations or variation in rainfall. Demographic stochasticity includes the randomness in number of offspring (e.g., seeds or eggs) or randomness in mortality or the timing of development.

In spite of these random effects, it is often the case that the size of the population can be approximately predicted knowing the population of the previous year. Recursive equations for sequences provide a mathematical framework for modeling these sequences. If we use \(P\) for the name of our population sequence, then we attempt to find a function \(f\) that relates consecutive values of the population as a recursive equation \begin{equation*}P_{n+1} = f(P_n).\end{equation*} That function is called the projection function.

This section discusses strategies for creating projection functions and analyzing the behavior of the resulting sequences. Much of that discussion will relate to per capita growth rates.

Subsection3.2.2Per Capita Rates

Population sizes change because individuals are entering and leaving the population. Growth in the population includes births as well as immigration. Decline in the population includes deaths as well as emigration. During any year, each of these quantities can be represented by its own variable and the state of the population will be the set of all variables.

For example, consider a population that only changes from births and deaths. Let \(P\) be the size of the population, let \(B\) be the number of births during the year, and let \(D\) be the number of deaths during the year. If we index these variables by an index variable \(t\) for the years, then the population sequence will satisfy a recurrence relation \begin{equation*}P_{t+1} = P_t + B_t - D_t.\end{equation*} We usually consider a reference time \(t=0\) so that the first value in the sequence would actually be \(P_0\) (and not \(P_1\)).

The simplest model would be that the number of births and deaths is a constant value every year, in which case the recursive equation becomes \begin{equation*}P_{t+1}= P_t + \Delta P\end{equation*} where \(\Delta P = B-D\) is a constant. We recognize this as defining an arithmetic sequence with an increment \(\Delta P\). Using Theorem 3.1.5, we know the explicit formula for this sequence is given by \begin{equation*}P_t = P_0 + \Delta P \cdot t.\end{equation*}

Of course, it is not realistic to think that a population has the same number of births, regardless of how large the population is. Rather, we would expect that the population will see more births when the size of the population itself is larger. The simplest model for this would be that the number of births is proportional to the size of the population. That is, we expect that there is a parameter \(b\) so that \(B = b \cdot P\). This parameter is the proportionality constant and is called the per capita birth rate. The phrase “per capita” literally means per head. If we rewrote the equation relating \(B\) and \(P\) as \begin{equation*}b = \frac{B}{P},\end{equation*} we see that the model is really saying that the total number of births in a year divided by the population that year is always the same constant. In a similar way, we might expect the number of deaths to be proportional to the population size, \begin{equation*}D = d \cdot P,\end{equation*} where \(d\) is the per capita death rate.

Using constant per capita birth and death rates leads to a new model for the population, \begin{equation*}P_{t+1} = P_t + b \cdot P_t - d \cdot P_t.\end{equation*} Because \(b\) and \(d\) are constants in this model, we can rewrite the equation in the form of a geometric sequence, \begin{equation*}P_{t+1} = (1+b-d) \cdot P_t,\end{equation*} with the ratio \(\rho = 1+b-d\). Again using Theorem 3.1.5, we know the explicit formula for this sequence is given by \begin{equation*}P_t = P_0 \cdot (1+b-d)^{t}.\end{equation*} This form of growth for the sequence is often called Malthusian growth.

In many circumstances, we may not be as interested in the individual values of the per capita birth and death rates \(b\) and \(d\) as we are in their difference \(b-d\). This quantity is called the net per capita growth rate and is frequently denoted by the symbol \(r=b-d\). In that case, the explicit formula for the Malthusian growth model can be rewritten in the same form as compounded interest, \begin{equation*}P_t = P_0 \cdot (1+r)^{t}.\end{equation*} That is, we can interpret \(r\) as the decimal value corresponding to percent change in the population year-over-year.


Suppose a population of 2500 has 400 births and 250 deaths in the year. Compare the model for constant births and death rates with the model for constant per capita birth and death rates over the next five years.


Subsection3.2.3Related Modeling Scenarios

The mathematical models introduced for sequences of populations can be applied and adapted to other situations. The ideas of per capita growth rates are mathematically the same as percentage growth or decay, such as appears in compounded interest investment problems. Any situation where a quantity increases or decreases by a fixed amount or by a fixed proportion or percentage will be modeled using a sequence defined in a similar way.

Example3.2.2Car Loan

Suppose you want to buy a car and obtain a loan for $10000 that includes an annual interest rate of 3%. A bank charges interest in a way that the annual percentage rate is converted into a monthly rate of \(\frac{3}{12}\)% on the remaining balance of your loan. If you make a monthly payment of $250, find a model for your remaining loan balance.


How would you generate data for such a sequence? Computing the values by hand would be possible but quite tedious for more than just a few terms. (Yes, you need to know how to do that too.) Computers can do this efficiently and don't get tired. You just need to know how to instruct the computer what it should do.

Example3.2.3Using a Spreadsheet

One way to generate a sequence is with a spreadsheet. Common spreadsheet applications include Microsoft Excel, Apple Numbers, and Google Drive Sheets. A spreadsheet essentially starts as a giant blank table with rows and columns. The rows are numbered starting at 1 and the columns are labeled by letters. (After the first 26 columns, columns are labeled by pairs of letters.) Every cell in the table is identified by its column and row. So cell B4 would be the cell in the fourth row of the second column.

Spreadsheets are designed to perform calculations based on the values of other cells. Suppose that A1 contained the number 3 and A2 contained the number 5. If you were to type in cell A3 the formula =A1+A2 (including the equal sign), then A3 would show the value 8. If you were to change the values in either A1 or A2, the value in A3 would automatically be updated.

We can take advantage of these calculations to compute the values of sequences. For style, it usually is best to have some cells contain labels. In cell B1 we will enter the label Balance and then in B2 we will enter the initial loan amount 10000. (I am using the second column because I will later want to add a first column containing the number of months into the loan.) We want to continue computing values, but from this point on we want the spreadsheet to do the calculations for us.

We want the value in B3 to be based on the formula and the previous balance contained in B2. Since our recursive formula was \begin{equation*}B_{t+1} = B_t -250 + 0.0025B_t,\end{equation*} we will replace the variable \(B_t\) with the cell's reference. In B3, we type =B2-250+0.0025*B2 (include both the equal sign and the multiplication symbol). When you hit Enter, the value should update and show the value 9775 (the balance after one month).

To continue the process, we don't want to type in a formula for every cell. Spreadsheets have the ability to apply a formula repeatedly, and that is what we want to do. If you select the cell B3, you should see a small bold square in the bottom right corner. If you click and drag that corner down, you will generate a range of cells that all apply the same formula, except that they will refer to the cell directly above them instead of all referring to the value of B2 that was used for B3.

We'd like to plot our data. If we only plot a single column, then a spreadsheet labels the values with an index that starts with 1. We want our first index to be 0 corresponding to the original loan balance. So we need to create a column for index values, which we will put in column A. Put a header in A1 saying month. Then start our index values in the first two cells. In A2 type 0 and in A3 type 1. Once you have these two values, select both cells (click and drag) and again you will see the small bold square. When multiple cells are selected, if you drag the square, the spreadsheet will follow the pattern created by your cells, which in this case increase by 1.

Now that you have two columns, the first having the index and the second having the monthly balance, you can create a scatter plot. Select the two columns and then add a scatter plot. (This varies based on application.)

There are other tools than spreadsheets that are more efficient once you learn how to use them. Writing computer instructions in a scripting language is one of the most efficient approaches. A free online tool called Sage uses a scripting language based on the Python programming language. The online version of this text has interactive cells where you can try the scripts directly. Otherwise, you can use the following website and type the scripts:

The following script will print out a table showing the same values as in the spreadsheet above. Python counts its range of values starting at 0. The hashtag marks a comment and is ignored by the computer.

Suppose we wanted the computer to create a figure as well. The following script will generate the values and plot a scatter plot. In Sage, that is called a list plot. To create a plot, the script needs to keep track of the history of all the previous calculations.

Notice from the figure that the last month in which there is a positive balance is month 42. Consequently, the monthly payment for month 43 will be less than $250 and finish paying off the remaining balance.

Example3.2.4Mixing Solutions

Another example that follows similar dynamics is in mixing solutions. Suppose that you have 2 liters of salt water that initially has 200 grams salt. You pour out 0.5 liters from your bottle, replace it with a solution of pure water, and then shake well. This is repeated, making your bottle less and less salty. Use a sequence to describe the saltiness of the solution as a function of the number of dilutions.


Subsection3.2.4Nonlinear Projection Functions

Much more interesting (and surprising) dynamics occur when a sequence is defined by a nonlinear projection function. To motivate one example where this might occur, we return to the ideas of per capita growth for a population.

Recall that our earlier discussion used the idea that the net per capita growth rate was a constant and did not depend on the population size. That is, the number of births and deaths were simply proportional to the total population size. However, this is ultimately not physically possible. When a population gets too large, resources are limited and the population will eventually be unable to sustain such rapid growth. Either the per capita birth rate will decrease or the per capita death rate will increase (or both). Either way, the net per capita growth rate \(r=b-d\) will need to decrease as a function of population size.

Once we say that one variable decreases with respect to another variable, we can use a mathematical model to capture that idea. In this case, we want \(r\) to be a decreasing function of the population \(P\), \(P \mapsto r\). The simplest such model would be a linear function with a negative slope. If we had enough data, we could plot points \((P, r)\) and find a line of best fit. For now, we will use a parametrized model, \begin{equation*}r(P) = r_0 - \alpha P,\end{equation*} where the parameter \(r_0\) is called the intrinsic net per capita growth rate (because that is the growth rate for a very small population before resources are limited) and \(\alpha \gt 0\) is the magnitude of the negative slope. A better parametrization uses the formula for a line given both the intercepts, \((P,r) = (0,r_0)\) and \((P,r)=(K,0)\), so that \begin{equation*}r(P) = r_0\big(1-\frac{P}{K}\big).\end{equation*} The value \(K\) is called the carrying capacity because for \(P \gt K\), the growth rate will be negative (net decrease in population). That is, for any population greater than \(K\), the available resources are inadequate to support such a population.

The population growth model is based on the model we just found. Recall that a population grows with a recursive model \begin{equation*}P_{t+1} = P_t + r P_t,\end{equation*} where \(r\) is the net per capita growth rate. Using the model for \(r\) give above, we get a nonlinear model for the population, \begin{equation*}P_{t+1} = P_t + r_0\big(1-\frac{P_t}{K}\big) P_t = (1+r_0) P_t - \frac{r_0}{K} P_t^2.\end{equation*} This model is called the discrete logistic model and only makes sense when the parameter \(r_0\) is in the interval \(r_0 \in (0,3)\). Different behaviors for the population arise, depending on the values of the parameter \(r_0\). The following graphs were generated by Sage using an initial value \(P_0=5\) and parameter values \(K=100\) (all plots) and \(r_0 = 0.2\), \(r_0=1.8\), \(r_0=2.2\) and \(r_0=2.6\).

Figure3.2.5Logistic growth with \(r_0=0.2\) and \(K=100\) with \(P_0=5\).
Figure3.2.6Logistic growth with \(r_0=1.8\) and \(K=100\) with \(P_0=5\).
Figure3.2.7Logistic growth with \(r_0=2.2\) and \(K=100\) with \(P_0=5\).
Figure3.2.8Logistic growth with \(r_0=2.6\) and \(K=100\) with \(P_0=5\).