FormatFlow

No tool matches “”

Try a format (“webp”, “mp3”) or a verb (“merge”, “compress”).

Loading index

↵to open

how-to · 5 min read

Hardy-Weinberg equilibrium and population growth

Two of the most common population models answer different questions. Hardy-Weinberg equilibrium asks what genotype frequencies a population would have if nothing were changing its allele frequencies, which gives a baseline for detecting evolution. Exponential and logistic growth ask how a population size changes over time, with and without a limit.

This guide works through the algebra of both, with examples that can be checked by hand, and explains what each model assumes. Knowing the assumptions is what turns a formula into a defensible answer: the arithmetic is easy, but applying a model outside its conditions is the usual source of error.

Allele frequencies and genotype frequencies

A population genetics question starts with counts of genotypes. For a single gene with two alleles, A and a, there are three genotypes: AA, Aa and aa. Their relative frequencies add to 1, and the allele frequencies p and q describe the same population one level down: p is the frequency of A and q is the frequency of a, with p + q = 1.

The two descriptions are linked. Each AA individual carries two copies of A, each Aa carries one, and each aa carries none, so p equals the frequency of AA plus half the frequency of Aa. For example, 50 AA, 40 Aa and 10 aa individuals out of 100 give genotype frequencies of 0.5, 0.4 and 0.1, and p = 0.5 + 0.2 = 0.7, so q = 0.3. Reversing the calculation is the Hardy-Weinberg step: given p, the expected genotype frequencies are p², 2pq and q².

The Hardy-Weinberg model and its assumptions

The Hardy-Weinberg principle says that in a large, randomly mating population with no selection, mutation, migration or genetic drift, allele frequencies stay constant from generation to generation and genotype frequencies settle at p², 2pq and q². The heterozygote term has a factor of two because there are two ways to inherit one copy of each allele: A from the mother and a from the father, or the other way around. The three terms always add to 1 because (p + q)² = 1.

Every assumption matters. Selection changes allele frequencies because genotypes differ in survival or reproduction. Non-random mating changes genotype frequencies even when allele frequencies stay the same. Small populations drift, migration moves alleles between populations, and mutation introduces new ones. A deviation from p², 2pq and q² therefore says that at least one assumption is failing, or that sampling noise is large; it does not by itself identify the cause.

A worked Hardy-Weinberg example

With p = 0.7 and q = 0.3, the expected genotype frequencies are p² = 0.49 for AA, 2pq = 2 × 0.7 × 0.3 = 0.42 for Aa, and q² = 0.09 for aa. They add to 1. In a population of 1,000 individuals the expected counts are 490, 420 and 90.

Now compare with observed counts of 50 AA, 40 Aa and 10 aa in a sample of 100, which give the same p = 0.7. The expected counts for that sample are 49, 42 and 9. The differences are small, and a chi-square hint comes out near 0.23 with one degree of freedom, which is entirely consistent with the model. Larger differences, or a larger sample with the same proportional differences, would push the statistic up and make the deviation harder to explain by chance alone.

Exponential growth and doubling time

The exponential model assumes unlimited resources, so the population grows at a rate proportional to its current size: N(t) = N₀ · e^{rt}. Starting from 100 individuals with r = 0.05 per year, after 10 years the model gives 100 × e^{0.5} ≈ 164.9 individuals. The rate r is per capita, so a larger starting population grows faster in absolute terms even when the percentage growth stays the same.

For a constant r, the time needed to double is ln(2)/r, about 0.693/r. With r = 0.05 that is roughly 13.9 years: the population doubles, then doubles again in the next 13.9 years, which is why exponential curves look harmless at first and then explode. In practise no population grows exponentially for long, which is exactly why the logistic model exists.

Logistic growth and carrying capacity

The logistic model adds a carrying capacity K, the population size the environment can sustain: N(t) = K / (1 + ((K − N₀)/N₀) · e^{−rt}). With N₀ = 100, K = 1,000, r = 0.05 and t = 50, the denominator is 1 + 9 × e^{−2.5} ≈ 1.739, giving about 575 individuals. Early on the curve looks exponential; as N approaches K the growth rate falls and the curve flattens into an S shape.

The population approaches K asymptotically in this model, never quite reaching it in finite time, and real populations can overshoot, oscillate or crash instead of settling. The model also says nothing about age structure, time lags or environmental change, so K should be treated as an effective parameter for the period being modelled rather than a permanent property of the habitat.

Checking model results

Both models are easy to run and easy to misuse, so a short check before reporting a number is worthwhile. The list below covers the most common mistakes.

  • For Hardy-Weinberg, confirm that the allele frequencies were derived correctly from the genotype counts and that the deviations are not simply sampling noise.
  • Check whether the population is large enough for the chi-square approximation; small expected counts make the comparison unreliable.
  • For exponential growth, ask whether unlimited resources are plausible over the whole time span, especially at large r or long t.
  • For logistic growth, confirm that K was estimated for the same population and conditions, and remember that the model approaches K rather than reaching it.
  • Keep the time unit consistent between r and t, and state the units in any reported result.

Frequently asked questions

What do the Hardy-Weinberg assumptions actually require?
Random mating with respect to the gene, no selection, no mutation, no migration and no genetic drift, with a large population and two alleles at a single locus. If any of these fails, genotype frequencies can depart from p², 2pq and q², although the departure does not identify which assumption broke.
Why is the heterozygote frequency 2pq rather than pq?
There are two ways to make a heterozygote: inherit A from the mother and a from the father, or a from the mother and A from the father. Each combination has probability pq, so together they give 2pq, which is why the middle term carries the factor of two.
Why does the logistic curve level off?
The logistic model makes the per-capita growth rate fall as the population approaches the carrying capacity, so births and deaths balance out near K. The result is an S-shaped curve that flattens asymptotically instead of continuing to accelerate.
Is doubling time the same for a logistic population?
No. The ln(2)/r doubling time describes exponential growth and only the early, effectively exponential phase of a logistic population. As the population approaches K, growth slows and the doubling time lengthens until it stops making sense.
Can these models predict a real population?
They are useful baselines and short-term projections under stated assumptions, not forecasts. Real populations face changing environments, age structure, migration and density effects that these two-parameter models simplify, so treat a result as a model output to be checked against data rather than a prediction.

Tools for this job

All Biology Tools