Skip to main content
Biology LibreTexts

7.1.1: Geometric and Exponential Growth

  • Page ID
    68552
  • \( \newcommand{\vecs}[1]{\overset { \scriptstyle \rightharpoonup} {\mathbf{#1}} } \)

    \( \newcommand{\vecd}[1]{\overset{-\!-\!\rightharpoonup}{\vphantom{a}\smash {#1}}} \)

    \( \newcommand{\id}{\mathrm{id}}\) \( \newcommand{\Span}{\mathrm{span}}\)

    ( \newcommand{\kernel}{\mathrm{null}\,}\) \( \newcommand{\range}{\mathrm{range}\,}\)

    \( \newcommand{\RealPart}{\mathrm{Re}}\) \( \newcommand{\ImaginaryPart}{\mathrm{Im}}\)

    \( \newcommand{\Argument}{\mathrm{Arg}}\) \( \newcommand{\norm}[1]{\| #1 \|}\)

    \( \newcommand{\inner}[2]{\langle #1, #2 \rangle}\)

    \( \newcommand{\Span}{\mathrm{span}}\)

    \( \newcommand{\id}{\mathrm{id}}\)

    \( \newcommand{\Span}{\mathrm{span}}\)

    \( \newcommand{\kernel}{\mathrm{null}\,}\)

    \( \newcommand{\range}{\mathrm{range}\,}\)

    \( \newcommand{\RealPart}{\mathrm{Re}}\)

    \( \newcommand{\ImaginaryPart}{\mathrm{Im}}\)

    \( \newcommand{\Argument}{\mathrm{Arg}}\)

    \( \newcommand{\norm}[1]{\| #1 \|}\)

    \( \newcommand{\inner}[2]{\langle #1, #2 \rangle}\)

    \( \newcommand{\Span}{\mathrm{span}}\) \( \newcommand{\AA}{\unicode[.8,0]{x212B}}\)

    \( \newcommand{\vectorA}[1]{\vec{#1}}      % arrow\)

    \( \newcommand{\vectorAt}[1]{\vec{\text{#1}}}      % arrow\)

    \( \newcommand{\vectorB}[1]{\overset { \scriptstyle \rightharpoonup} {\mathbf{#1}} } \)

    \( \newcommand{\vectorC}[1]{\textbf{#1}} \)

    \( \newcommand{\vectorD}[1]{\overrightarrow{#1}} \)

    \( \newcommand{\vectorDt}[1]{\overrightarrow{\text{#1}}} \)

    \( \newcommand{\vectE}[1]{\overset{-\!-\!\rightharpoonup}{\vphantom{a}\smash{\mathbf {#1}}}} \)

    \( \newcommand{\vecs}[1]{\overset { \scriptstyle \rightharpoonup} {\mathbf{#1}} } \)

    \( \newcommand{\vecd}[1]{\overset{-\!-\!\rightharpoonup}{\vphantom{a}\smash {#1}}} \)

    \(\newcommand{\avec}{\mathbf a}\) \(\newcommand{\bvec}{\mathbf b}\) \(\newcommand{\cvec}{\mathbf c}\) \(\newcommand{\dvec}{\mathbf d}\) \(\newcommand{\dtil}{\widetilde{\mathbf d}}\) \(\newcommand{\evec}{\mathbf e}\) \(\newcommand{\fvec}{\mathbf f}\) \(\newcommand{\nvec}{\mathbf n}\) \(\newcommand{\pvec}{\mathbf p}\) \(\newcommand{\qvec}{\mathbf q}\) \(\newcommand{\svec}{\mathbf s}\) \(\newcommand{\tvec}{\mathbf t}\) \(\newcommand{\uvec}{\mathbf u}\) \(\newcommand{\vvec}{\mathbf v}\) \(\newcommand{\wvec}{\mathbf w}\) \(\newcommand{\xvec}{\mathbf x}\) \(\newcommand{\yvec}{\mathbf y}\) \(\newcommand{\zvec}{\mathbf z}\) \(\newcommand{\rvec}{\mathbf r}\) \(\newcommand{\mvec}{\mathbf m}\) \(\newcommand{\zerovec}{\mathbf 0}\) \(\newcommand{\onevec}{\mathbf 1}\) \(\newcommand{\real}{\mathbb R}\) \(\newcommand{\twovec}[2]{\left[\begin{array}{r}#1 \\ #2 \end{array}\right]}\) \(\newcommand{\ctwovec}[2]{\left[\begin{array}{c}#1 \\ #2 \end{array}\right]}\) \(\newcommand{\threevec}[3]{\left[\begin{array}{r}#1 \\ #2 \\ #3 \end{array}\right]}\) \(\newcommand{\cthreevec}[3]{\left[\begin{array}{c}#1 \\ #2 \\ #3 \end{array}\right]}\) \(\newcommand{\fourvec}[4]{\left[\begin{array}{r}#1 \\ #2 \\ #3 \\ #4 \end{array}\right]}\) \(\newcommand{\cfourvec}[4]{\left[\begin{array}{c}#1 \\ #2 \\ #3 \\ #4 \end{array}\right]}\) \(\newcommand{\fivevec}[5]{\left[\begin{array}{r}#1 \\ #2 \\ #3 \\ #4 \\ #5 \\ \end{array}\right]}\) \(\newcommand{\cfivevec}[5]{\left[\begin{array}{c}#1 \\ #2 \\ #3 \\ #4 \\ #5 \\ \end{array}\right]}\) \(\newcommand{\mattwo}[4]{\left[\begin{array}{rr}#1 \amp #2 \\ #3 \amp #4 \\ \end{array}\right]}\) \(\newcommand{\laspan}[1]{\text{Span}\{#1\}}\) \(\newcommand{\bcal}{\cal B}\) \(\newcommand{\ccal}{\cal C}\) \(\newcommand{\scal}{\cal S}\) \(\newcommand{\wcal}{\cal W}\) \(\newcommand{\ecal}{\cal E}\) \(\newcommand{\coords}[2]{\left\{#1\right\}_{#2}}\) \(\newcommand{\gray}[1]{\color{gray}{#1}}\) \(\newcommand{\lgray}[1]{\color{lightgray}{#1}}\) \(\newcommand{\rank}{\operatorname{rank}}\) \(\newcommand{\row}{\text{Row}}\) \(\newcommand{\col}{\text{Col}}\) \(\renewcommand{\row}{\text{Row}}\) \(\newcommand{\nul}{\text{Nul}}\) \(\newcommand{\var}{\text{Var}}\) \(\newcommand{\corr}{\text{corr}}\) \(\newcommand{\len}[1]{\left|#1\right|}\) \(\newcommand{\bbar}{\overline{\bvec}}\) \(\newcommand{\bhat}{\widehat{\bvec}}\) \(\newcommand{\bperp}{\bvec^\perp}\) \(\newcommand{\xhat}{\widehat{\xvec}}\) \(\newcommand{\vhat}{\widehat{\vvec}}\) \(\newcommand{\uhat}{\widehat{\uvec}}\) \(\newcommand{\what}{\widehat{\wvec}}\) \(\newcommand{\Sighat}{\widehat{\Sigma}}\) \(\newcommand{\lt}{<}\) \(\newcommand{\gt}{>}\) \(\newcommand{\amp}{&}\) \(\definecolor{fillinmathshade}{gray}{0.9}\)

    INTRODUCTION

    We will begin by developing a population model in discrete time. That is, we will treat time as if it moved in steps, rather than continuously. This allows us to use difference equations rather than differential equations, and thereby avoid the calculus. This assumption is realistic for many populations that have seasonal, synchronous reproduction. Strictly speaking, the discrete-time model represents geometric population growth. Later in the chapter, we will develop a continuous-time model, properly called an exponential model.

     

    Model Development

    To begin, we can write a very simple equation expressing the relationship between population size and the four demographic processes. Let:

    • Nt represent the size or density of the population at some arbitrary time t (we will ignore the distinction between population size and population density)
    • Nt+1 represent population size one arbitrary time-unit later
    • Bt represent the total number of births in the interval from time t to time t + 1
    • Dt represent the total number of deaths in the same time interval
    • It represent the total number of immigrants in the same time interval
    • Et represent the total number of emigrants in the same time interval

     

    Then we can write

    clipboard_ecd3cd7272e03a26fab27123ec1e2d79c.png

     

    For simplicity, this exercise ignores immigration and emigration. Our equation becomes

    clipboard_e1377a84ae2ef3c8ad958e2eda2a8c7a2.png

    This equation is easy to understand but inconvenient for modeling. The problem lies in the use of “raw” birth and death rates (Bt and Dt). We have no obvious, biologically reasonable starting assumptions about these numbers. However, if we switch from raw birth and death rates to per capita birth and death rates, we can do some fruitful modeling.

     

    Geometric (Discrete-Time) Model of Population Growth

    A per capita rate is a rate per individual; that is, the per capita birth rate is the number of births per individual in the population per unit time, and the per capita death rate is the number of deaths per individual in the population per unit time. Per capita birth rate is easy to understand, and seems a reasonable thing to model because reproduction (giving birth) is something individuals rather than whole populations do. Per capita death rate may seem strange at first; after all, an individual can die only once. But remember, this rate is calculated per unit time. You can think of per capita birth and death rates as each individual’s probability of giving birth or dying in a given unit of time.

    Keeping in mind that per capita rates are per individual rates, we can translate the raw rates Bt and Dt into per capita rates, which we will represent with lower-case letters (bt and dt) to distinguish them from the raw numbers. To calculate per capita rates, we divide the raw numbers by the population size. Thus,

    clipboard_e8f129c09a24c17b2cdb166f7fc1522b2.png

    Conversely,

    clipboard_e7663525087dca4d59330e457f5f51983.png

     

    Now we can rewrite our model in terms of per capita rates:

    clipboard_e737bd2e31f7fc1b1cae87fe57536afb1.png

    Perhaps this seems to have gotten us nowhere, but it turns out to be a very informative model if we make one further assumption. Let us assume, just to see what happens, that per capita rates of birth and death remain constant over time. In other words, let us assume that average number of births per unit time per individual in the population and the average risk of dying per unit time remain unchanged over some period of time. What will happen to population size?

    Because we assume constant per capita birth and death rates, we can make one further minor modification to our equation by leaving off the time subscripts on b and d:

    clipboard_efa5716ea407a5edc4bba1bb902d4fffb.png

    At this point, you’re probably thinking that this assumption is unrealistic—that per capita rates of birth and death are likely to change over time for a variety of reasons. You are quite correct, but the model is still useful for three reasons:

    • It provides a starting point for a more complex and realistic model in which per capita rates of birth and death do change over time.
    • It is a good heuristic model—that is, it can lead to insights and learning despite its lack of realism.
    • Many populations do in fact grow as predicted by this model, under certain conditions and for limited periods of time.

     

    You may also wonder why we use this complex model (Equation 1) rather than the simpler forms of the geometric and exponential models presented in most textbooks (and developed here beginning with Equation 2). We prefer Equation 1 for three reasons:

    • It emphasizes the roles of per capita birth and death rates rather than the more abstract quantities R or r (explained later).
    • It allows you to manipulate per capita birth and death rates directly and separately, and discover that neither alone, but rather the difference between them, determines population growth rate.
    • It allows you to discover that the per capita rate of population growth (DNt/Nt) is a constant, which you can then relate to R (and r if desired).

     

    Because per capita birth and death rates do not change in response to the size (or density) of the population, this model is said to be density-independent.

     

    We can further simplify Equation 1 by factoring Nt out of the birth and death terms:

    clipboard_e3a943f9ff26de5a2defb5d335c183f6e.png

     

    The term (b – d) is so important in population biology that it is given its own symbol, R. Thus R = b d, and is called the geometric rate of increase. Substituting R for (b d) gives us

    clipboard_e18958097de63aad96775c7ed64c8263e.png

    To further define R, we can calculate the rate of change in population size, DNt, by subtracting

    Nt from both sides of Equation 2:

    clipboard_e20ec5f37f067f7cba772d355b9b88f64.png

    Because DNt = Nt+1 – Nt, we can simply write

    clipboard_eee65e5b5b41613465c08a983ab99b0fd.png

    In words, the rate of change in population size is proportional to the population size, and the constant of proportionality is R.

    We can convert this to per capita rate of change in population size if we divide both sides by Nt:

    clipboard_eb43c4670742b038cd07853edeae95d85.png

    In other words, the parameter R represents the (discrete-time) per capita rate of change in the size of the population.

    Moving on, we can simplify Equation 2 (Nt+1 = Nt + RNt) even further by factoring Nt out of the terms on the right-hand side, to get

    clipboard_e983e8e46cbb124c6acc0c5f9c0d47d83.png

    The quantity (1 + R) is often given its own symbol, l (lambda), and its own name: the finite rate of increase. Substituting l, we can write

    clipboard_e4b8fb9d4a66080440fb4f9c7574621eb.png

    The quantity λ can be very useful in analyzing real population data. Some additional algebra will show us how.

     

    If we divide both sides of Equation 5 by Nt, we get

    clipboard_e18851bb6fefbfc442882b5c4003709a8.png

    In words, λ is the ratio of the population size at one time to its size one time-unit earlier. We can calculate λ from population counts at successive times, even if we do not know per capita rates of birth and death.

    In Equations 2 and 5, we showed how to calculate the size of the population one time unit into the future. What if you wanted to know how big the population will be at some distant future time? You could carry out the one-time-step calculations many times, until you arrived at the desired answer. But there is also a shortcut. Population size at time 1 is λ1N0, at time 2 it is λ2N0, and at time 3 it is λ3N0. In general, we can write

    clipboard_e6199a200097262735eba30b94c01feed.png

    This expression may strike you as rather abstract. One way to understand its impact is to use Equation 7 to calculate doubling time (tdouble)—that is, the time required for the population to double in size. If we plug the doubling time into Equation 7, we get

    clipboard_e97939a95eac32903f6c73f06177bdbb6.png

    We can derive doubling time by exploiting the fact that the population at time tdouble is, by definition, twice the population at time 0:

    clipboard_eced7647e59fcfc9965cf204026fa050e.png

    Substituting 2N0 for Nt double gives us

    clipboard_e93fb91f06d6f15a8d91a365091da51d7.png

    If we divide both sides by N0, we get

    clipboard_e2b9134a3bd4c70ae9b7fbd3b95e9aa2f.png

    Taking the logarithm of both sides gives us

    clipboard_e9cfc8eefc3aeb1629ede436638c0929b.png

    Dividing both sides by lnλ, we get

    clipboard_e2ba1d2e7c4f56746c913f83f0d0e6061.png

    What does this mean? Suppose R = 0.1 individuals/individual/year. Therefore, λ = 1 + R = 1.1. This implies that the population increases by 10% per year, which doesn’t sound like much. But, if you plug this value of λ into Equation 8, you’ll find that the population doubles in about 7.27 years, which seems more impressive.

    You may be wondering how a population that grows in discrete intervals of a year can double in a non-integer number of years. It can’t, of course. This calculation really means that the population will not quite double in 7 years, and will more than double in 8 years.

     

    Exponential (Continuous-Time) Model of Population Growth

    Population growth can also be modeled in continuous time, which is more realistic for populations that reproduce continuously, rather than seasonally. Continuous-time models also allow use of the calculus, which provides many powerful analytical tools. Here, we will eschew the calculus, and simply present some results.

    Most textbooks begin with the continuous-time analog of Equation 3:

    clipboard_ec84df69a4b7b9dc393fad4eca280c58d.png

    The left-hand side of Equation 9 represents the instantaneous rate of change in population size, which is different from the rate of change over some discrete time interval, DNt /Nt, that we looked at in Equation 7. Therefore, we use a lowercase r to distinguish the continuous-time exponential model from the discrete-time geometric model. The symbol r is called the instantaneous rate of increase or the intrinsic rate of increase. The parameters r and R are not equal, although they are related, as we will show below.

     

    As we did with the discrete-time model, we can calculate the per capita rate of population growth by dividing both sides of Equation 9 by N:

    clipboard_e80b01e2c1f10cc379875e84179316efe.png

    You can use the calculus to operate on Equation 10 and calculate the size of the population at any time. We will spare you the derivation, but the resulting equation is

    clipboard_e76643bc448f9d4bf2cde3769cbe90fde.png

    where e is the root of the natural logarithms (e ~ 2.71828).

    You can derive the relationship between r and R as follows. Suppose we start two populations with the same initial number of individuals, N0, and both grow at the same rate. However, one grows in continuous time and the other grows in discrete time. Because they grow at the same rate, at some later time, t, they will have reached the same size, Nt. If we write the discrete-time population on the left and the continuous-time population on the right we can derive as follows:

     

    clipboard_e7290fe815f0bee11eaa541e5c120775f.png

    clipboard_e078bb2ddf8a078569dd685f7182786a4.png

     

    So, we can convert back and forth between continuous-and-discrete time models. Remember that λ = 1 + R.

    Suppose we have a population growing in continuous time with some value of r, and a population growing in discrete time with the same value of R, i.e., r = R. Which will grow faster? As we did with the geometric model, we can derive the doubling time for the exponential model (Gotelli 2001). We begin with Equation 11, and plug in tdouble:

    clipboard_ed161368937888cc2ec9d8653b269877d.png

    Substituting 2N0 for Ntdouble, we get

    clipboard_e82e77bd5f3bc0a553b43995c3f734442.png

    Dividing both sides by N0 gives us

    clipboard_e85424b5814ed7412df26f42576a69846.png

    and taking the natural logarithm of both sides yields

    clipboard_ebbbbaa6dff34b50823f1b8eb18cc9122.png

    Finally, we divide both sides by r, and rearrange, to get

    clipboard_e21685db7adbc2ce73aec72572b81b4ee.png

    Parallel to our earlier example, let us suppose r = 0.1 individuals/individual/year. As before, this implies a 10% annual increase in the population, but now this increase occurs continuously rather than in discrete time intervals. How long does it take for this population to double? Plugging in the value 0.1 for r yields a doubling time of 6.93 years, somewhat faster than indicated by the geometric model.

     

    clipboard_e1a7d8e0859066d81339dc2bf6dd5cf66.png

    EXPLORE THIS MODEL

    Before moving on to the next section, explore this Exponential Growth Shiny App  developed by Dr. Aaron Howard to better understand how changes to the initial population size (N) and the population growth rate (r) impact population size over time.

     

    SECTION SOURCE

    Donovan, T. M. and C. Welden. 2002. Spreadsheet exercises in ecology and evolution. Sinauer Associates, Inc. Sunderland, MA, USA.

    LITERATURE CITED

    Gotelli, N. J. 2001. A Primer of Ecology, 3rd Edition. Sinauer Associates, Sunderland, MA.


    7.1.1: Geometric and Exponential Growth is shared under a not declared license and was authored, remixed, and/or curated by LibreTexts.

    • Was this article helpful?