Skip to main content
Mathematics LibreTexts

8.6: Logistic Growth

  • Page ID
    34223
  • \( \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}\)

    In our basic exponential growth scenario, we had a recursive equation of the form

    \(P_{n}=P_{n-1}+r P_{n-1}\)

    In a confined environment, however, the growth rate may not remain constant. In a lake, for example, there is some maximum sustainable population of fish, also called a carrying capacity.

    Carrying Capacity

    The carrying capacity, or maximum sustainable population, is the largest population that an environment can support.

    For our fish, the carrying capacity is the largest population that the resources in the lake can sustain. If the population in the lake is far below the carrying capacity, then we would expect the population to grow essentially exponentially. However, as the population approaches the carrying capacity, there will be a scarcity of food and space available, and the growth rate will decrease. If the population exceeds the carrying capacity, there won’t be enough resources to sustain all the fish and there will be a negative growth rate, causing the population to decrease back to the carrying capacity.

    A graph with horizontal axis labeled Population and the vertical axis labeled Growth Rate.  The graph shows a straight line, starting at 0.1 when the population is 0, decreasing to 0 when the population is 5000, and decreasing to -0.1 when the population is 10000.If the carrying capacity was 5000, the growth rate might vary something like that in the graph shown. Note that this is a linear equation with intercept at \(0.1\) and slope \(-\frac{0.1}{5000}\), so we could write an equation for this adjusted growth rate as:

    \(r_{\text {adjusted}}=0.1-\frac{0.1}{5000} P=0.1\left(1-\frac{P}{5000}\right)\)

    Substituting this in to our original exponential growth model for \(r\) gives

    \(P_{n}=P_{n-1}+0.1\left(1-\frac{P_{n-1}}{5000}\right) P_{n-1}\)

    Logistic Growth

    If a population is growing in a constrained environment with carrying capacity \(K\), and absent constraint would grow exponentially with growth rate \(r\), then the population behavior can be described by the logistic growth model:

    \(P_{n}=P_{n-1}+r\left(1-\frac{P_{n-1}}{K}\right) P_{n-1}\)

    Unlike linear and exponential growth, logistic growth behaves differently if the populations grow steadily throughout the year or if they have one breeding time per year. The recursive formula provided above models generational growth, where there is one breeding time per year (or, at least a finite number); there is no explicit formula for this type of logistic growth.

    Example 15

    A forest is currently home to a population of 200 rabbits. The forest is estimated to be able to sustain a population of 2000 rabbits. Absent any restrictions, the rabbits would grow by 50% per year. Predict the future population using the logistic growth model.

    Solution

    Modeling this with a logistic growth model, \(r = 0.50\), \(K = 2000\), and \(P_­0 = 200\). Calculating the next year:

    \(P_{1}=P_{0}+0.50\left(1-\frac{P_{0}}{2000}\right) P_{0}=200+0.50\left(1-\frac{200}{2000}\right) 200=290\)

    We can use this to calculate the following year:

    \(P_{2}=P_{1}+0.50\left(1-\frac{P_{1}}{2000}\right) P_{1}=290+0.50\left(1-\frac{290}{2000}\right) 290 \approx 414\)

    A calculator was used to compute several more values:

    \(\begin{array}{|l|l|l|l|l|l|l|l|l|l|l|l|}
    \hline n & 0 & 1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 & 10 \\
    \hline P_{n} & 200 & 290 & 414 & 578 & 784 & 1022 & 1272 & 1503 & 1690 & 1821 & 1902 \\
    \hline
    \end{array}\)

    A graph with horizontal axis labeled Years and vertical axis labeled Population.  The graph starts at 200, increases slowly at first, then curves upward until year 5, after which the graph increases but curves down, with the rate of increase slowing as the population approaches 2000.Plotting these values, we can see that the population starts to increase faster and the graph curves upwards during the first few years, like exponential growth, but then the growth slows down as the population approaches the carrying capacity.

    Example 16

    On an island that can support a population of 1000 lizards, there is currently a population of 600. These lizards have a lot of offspring and not a lot of natural predators, so have very high growth rate, around 150%. Calculating out the next couple generations:

    Solution

    \(P_{1}=P_{0}+1.50\left(1-\frac{P_{0}}{1000}\right) P_{0}=600+1.50\left(1-\frac{600}{1000}\right) 600=960\)

    \(P_{2}=P_{1}+1.50\left(1-\frac{P_{1}}{1000}\right) P_{1}=960+1.50\left(1-\frac{960}{1000}\right) 960=1018\)

    A graph with horizontal axis labeled Years and vertical axis labeled Population.  The graph starts at 600, increases very rapidly in the first year, then rises about 1000 in the next, then falls a little below 1000, and continues to bounce barely above and below as it levels off at 1000.Interestingly, even though the factor that limits the growth rate slowed the growth a lot, the population still overshot the carrying capacity. We would expect the population to decline the next year.

    \(P_{3}=P_{2}+1.50\left(1-\frac{P_{3}}{1000}\right) P_{3}=1018+1.50\left(1-\frac{1018}{1000}\right) 101\)

    Calculating out a few more years and plotting the results, we see the population wavers above and below the carrying capacity, but eventually settles down, leaving a steady population near the carrying capacity.

    Try it Now 5

    A field currently contains 20 mint plants. Absent constraints, the number of plants would increase by 70% each year, but the field can only support a maximum population of 300 plants. Use the logistic model to predict the population in the next three years.

    Answer

    \(P_{1}=P_{0}+0.70\left(1-\frac{P_{0}}{300}\right) P_{0}=20+0.70\left(1-\frac{20}{300}\right) 20=33\)

    \(P_{2}=54\)

    \(P_{3}=85\)

    Example 17

    A graph with horizontal axis labeled Years and vertical axis labeled Population.  The graph starts at 600, increases very rapidly in the first year to a value above 1000, then falls in the next year to a value below 1000, then rises back to the previous value about 1000. The graph continues to bounce between the same two values.On a neighboring island to the one from the previous example, there is another population of lizards, but the growth rate is even higher – about 205%.

    Solution

    Calculating out several generations and plotting the results, we get a surprise: the population seems to be oscillating between two values, a pattern called a 2-cycle.

    While it would be tempting to treat this only as a strange side effect of mathematics, this has actually been observed in nature. Researchers from the University of California observed a stable 2-cycle in a lizard population in California[1].

    Taking this even further, we get more and more extreme behaviors as the growth rate increases higher. It is possible to get stable 4-cycles, 8-cycles, and higher. Quickly, though, the behavior approaches chaos (remember the movie Jurassic Park?).

    A graph with horizontal axis labeled Years and vertical axis labeled Population.  The graph bounces between 4 different values. A graph with horizontal axis labeled Years and vertical axis labeled Population.  The graph appears to bounce randomly between values above and below 1000.


    [1] users.rcn.com/jkimball.ma.ult...ulations2.html


    This page titled 8.6: Logistic Growth is shared under a CC BY-SA 3.0 license and was authored, remixed, and/or curated by David Lippman (The OpenTextBookStore) via source content that was edited to the style and standards of the LibreTexts platform.