From a Population Story to a Logistic Model
A population model is useful only when its assumptions fit the situation well enough for the question being asked. In this workshop, the goal is to move from a population scenario to a prediction: identify the model, determine any unknown parameters, calculate the requested population, and interpret what the model says about long-term behavior and growth.
A logistic model is a reasonable choice when a population grows in a setting with limited resources. At low population levels, growth can be approximately proportional to population size. As the population approaches a limiting level, competition and other constraints reduce the per-capita growth rate.
For a population \(P(t)\), measured at time \(t\), the logistic differential equation is
where \(r>0\) is the intrinsic growth-rate parameter and \(K>0\) is the carrying capacity. If time is measured in years, \(r\) has units of inverse years, \(K\) has the same units as population, and \(dP/dt\) has units of population per year.
A Reliable Modeling Workflow
Read the scenario first, then decide what information it supplies. In particular, distinguish a population observation, such as \(P(3)=240\), from a rate observation, such as \(P'(0)=30\). They provide different equations and should not be substituted for one another.
Define \(P(t)\), choose a time origin, and record whether each datum is a population or a rate.
Look for limited resources, initial growth, and a population level that restricts further growth.
Use the supplied information to find \(K\), \(r\), or both. Check that the data can actually determine the unknown parameter.
Use the model to calculate the requested value, retain units, and distinguish the model’s long-run behavior from its behavior over the interval of interest.
Useful Logistic Relationships
For \(K>0\) and \(r>0\), the equilibrium populations satisfy \(dP/dt=0\), so the equation gives \(P=0\) and \(P=K\). For a positive population below \(K\), the population increases; above \(K\), it decreases. For an initial value \(P(0)=P_0\) with \(P_0>0\), the explicit solution is
The parameter \(r\) can be determined from an initial rate when \(P_0\) and \(K\) are known. Substituting \(t=0\) into the differential equation gives
If \(P_0>0\) and \(P_0\ne K\), this equation can be solved for \(r\). If \(P_0=0\) or \(P_0=K\), the initial rate is zero for every \(r\), so that rate observation does not determine \(r\).
If \(K\), \(P_0\), and a later observation \(P(t_1)=P_1\) are known, the explicit formula gives another useful parameter equation. Provided the observations are consistent with a non-equilibrium logistic trajectory, rearranging yields
This expression requires the logarithm’s argument to be positive. In the usual population setting with \(0<P_0,K\) and \(0<P_1<K\), the observations must also be consistent with movement toward \(K\): an increasing trajectory has \(P_1>P_0\), while a decreasing trajectory above \(K\) must be handled with the corresponding formula and signs checked carefully.
Worked Example: Find the Growth Rate and Predict a Population
Worked Example: Find the Growth Rate and Predict a Population
A population is modeled logistically with carrying capacity \(K=1000\). At time \(t=0\), the population is \(P_0=200\), and its initial rate of increase is \(96\) individuals per year. Find \(r\), then predict the population after 5 years.
First use the initial-rate equation:
The fraction of carrying capacity is \(200/1000=0.2\), so
Because \(P_0>0\) and \(P_0\ne K\), dividing to determine \(r\) is valid. The initial-value formula has coefficient
Thus, at \(t=5\) years,
To the nearest whole individual, the prediction is 834 individuals.
Check the initial condition: \(P(0)=1000/(1+4)=200\), as supplied. Check the initial rate using the model:
individuals per year, which agrees with the supplied rate. The predicted population is also below \(K=1000\), as expected for a growing population that has not reached carrying capacity.
Why the Logistic Formula Works
The formula is not merely a convenient curve-fitting expression. It satisfies the differential equation and the initial condition. To check this, write \(A=(K-P_0)/P_0\) and \(P(t)=K/(1+Ae^{-rt})\). Differentiating gives
Meanwhile, using \(P=K/(1+Ae^{-rt})\), we obtain
and therefore
Also, \(P(0)=K/(1+A)=P_0\), because \(1+A=K/P_0\). Thus the formula satisfies both the differential equation and the specified initial value. This check explains why it can be used to make the model’s predictions.
Worked Example: Estimate a Rate from Two Observations
Worked Example: Estimate a Rate from Two Observations
A population has carrying capacity \(K=500\) and initial population \(P(0)=100\). Four years later, its population is \(200\). Assume the logistic model. Find \(r\), then predict the population after 8 years.
Start with the initial-value formula. The initial coefficient is
The observation at 4 years gives
Divide by 200 and rearrange step by step:
Taking natural logarithms gives \(-4r=\ln(3/8)=-\ln(8/3)\), so
For \(t=8\), the exponent is \(-8r=-2\ln(8/3)\). Therefore
Substituting this into the population formula gives
Check the observation at \(t=4\): \(e^{-4r}=3/8\), so \(P(4)=500/[1+4(3/8)]=500/(5/2)=200\). Check the forecast by substituting \(e^{-8r}=9/64\): \(P(8)=500/[1+36/64]=500/(25/16)=320\). Both calculations use the same fitted parameter and initial condition.
Equilibrium and Fastest Growth
The carrying capacity \(K\) is an equilibrium because the model’s rate is zero at \(P=K\). For a positive initial population below \(K\), the population approaches \(K\) in forward time; this does not mean it reaches \(K\) at a finite time. The model’s instantaneous growth rate as a function of population is
Completing the square shows where this rate is greatest:
Since \(r/K>0\), the squared term is nonnegative and is smallest when \(P=K/2\). Thus the greatest possible growth rate for nonnegative \(P\) is \(rK/4\), attained at \(P=K/2\). Whether a particular trajectory reaches that population is a separate question.
Worked Example: Find the Fastest-Growth Time and Rate
A population follows a logistic model with \(K=1200\), \(r=0.25\) per year, and \(P(0)=300\). Find when the population reaches its fastest-growth level, and find that growth rate.
The fastest-growth population is half the carrying capacity:
Since \(0<300\le 600\), the forward-time trajectory reaches 600. Use the formula \(P(t)=1200/[1+3e^{-0.25t}]\), since \((1200-300)/300=3\). Set \(P(t)=600\):
Taking logarithms gives \(-0.25t=-\ln 3\), so \(t=4\ln 3\approx 4.394\) years. The maximum growth rate is
individuals per year.
Check the time by substituting \(t=4\ln 3\): \(e^{-0.25t}=e^{-\ln 3}=1/3\), and the formula gives \(P=1200/[1+3(1/3)]=600\). Substituting \(P=600\) into the rate equation gives 75 individuals per year, as calculated.
Inflection Depends on the Trajectory
The second derivative helps describe curvature. With \(P'=g(P)\), the chain rule gives \(P''=g'(P)P'\), where
Consequently, \(P''=0\) when \(P=K/2\), for a non-equilibrium trajectory. This identifies a possible inflection population, not a guarantee that the solution changes concavity during the time interval under consideration. A forward-time trajectory with \(0<P_0<K\) reaches \(K/2\) only when \(P_0\le K/2\). If \(K/2<P_0<K\), the population increases toward \(K\) while remaining above \(K/2\), so it does not reach that point in forward time.
Common Mistake: Assuming Every Trajectory Reaches Half the Capacity
Suppose \(K=1200\), \(P_0=1500\), and time moves forward. A mistaken argument might say, “The inflection point is always \(K/2=600\), so this population will eventually reach 600.” That conclusion ignores the direction of motion. Since \(P_0>K\), the rate is negative:
The population decreases toward \(1200\), not toward 600, and stays above \(1200\). Also, \(g'(P)=r(1-2P/1200)<0\) when \(P>1200\), so \(P''=g'(P)P'>0\): the trajectory is concave up rather than changing curvature at \(600\). The correction is to distinguish a population where \(P''=0\) from a population that the given trajectory actually reaches.
A related parameter mistake is dividing the initial-rate equation by \(P_0(1-P_0/K)\) without checking whether it is zero. If \(P_0=0\), then \(P'(0)=r(0)(1-0/K)=0\) for every \(r\); the initial rate cannot identify \(r\). The same problem occurs at \(P_0=K\). Check the conditions before solving for a parameter.
Check Your Understanding
For each question, state the key model relationship you would use before calculating.
- A logistic population has \(K=900\), \(P_0=300\), and \(P'(0)=60\). What is \(r\), including its units?
- For \(K=600\) and \(P_0=150\), write the logistic formula for \(P(t)\) in terms of \(r\).
- Given \(K=800\), \(P_0=200\), and \(P(2)=320\), set up an equation that determines \(r\).
- For a logistic model with \(K=1000\) and \(r=0.3\), what population gives the greatest growth rate, and what is that rate?
- If \(K=500\) and \(P_0=700\), does the forward-time trajectory reach \(K/2\)? Explain using the sign of \(P'\).