Model repeated percentage growth and decay, and use logarithms to answer how long and how many times.
Why this matters
Some quantities do not grow by a fixed amount; they grow by a fixed percentage. Savings earning interest, a bacterial culture, users of a popular app and the number of transistors on a chip have all been described this way. Radioactive material and a cooling cup of coffee decay the same way. Logarithms are the tool that answers the reverse question: "how long until it doubles?" or "how many times bigger is this?"
Linear versus exponential
- Linear: add the same amount each step. 100, 110, 120, 130 (+10 each time).
- Exponential: multiply by the same factor each step. 100, 110, 121, 133.1 (×1.1 each time).
Early on they look similar. Over time the exponential one pulls away dramatically, because each step's growth is based on a bigger amount.
The growth formula
Starting from an amount P, growing at rate r per period, for t periods:
A = P × (1 + r)^t
- r is a decimal: 5% is 0.05.
- (1 + r) is the growth factor.
- For decay, use a negative rate: losing 20% per period means a factor of 0.8.
Worked example 1: compound interest
$1,000 at 5% per year for 10 years:
A = 1000 × 1.05^10 ≈ 1000 × 1.6289 = $1,628.89
With simple (linear) interest the same deposit would reach only $1,500.
Worked example 2: decay
A server's request queue drains 20% per minute. Starting at 5,000 requests, after 3 minutes:
A = 5000 × 0.8³ = 5000 × 0.512 = 2,560 requests
Logarithms: the reverse of exponents
A logarithm answers "what exponent do I need?"
log_b(x) = y means b^y = x
- log₁₀(1000) = 3, because 10³ = 1000
- log₂(8) = 3, because 2³ = 8
- log₁₀(1) = 0, because 10⁰ = 1
Two bases appear constantly: base 10 (common log) and base e ≈ 2.718 (the natural log, written ln). Computer science also uses base 2: log₂(n) is roughly how many times you can halve n, which is why binary search over a million items needs only about 20 steps.
Worked example 3: doubling time
How long does money take to double at 7% per year? Solve 2 = 1.07^t. Take logarithms of both sides:
t = log(2) / log(1.07) ≈ 0.6931 / 0.0677 ≈ 10.2 years
Any base works as long as you use the same one top and bottom. A handy shortcut, the rule of 72, estimates doubling time as 72 ÷ (rate in percent): 72 ÷ 7 ≈ 10.3 years.
import math
print(1000 * 1.05 ** 10) # about 1628.89
print(math.log(2) / math.log(1.07)) # about 10.24
print(math.log10(1000), math.log2(8)) # 3.0 3.0
Log scales
When data spans many orders of magnitude, a chart with a log scale spaces 1, 10, 100, 1000 evenly. Exponential growth then appears as a straight line, which makes the growth rate easy to compare. Familiar log scales include decibels for sound and pH for acidity: each step of 1 in pH is a 10× change in hydrogen-ion concentration.
Common mistakes
- Using the percent instead of the decimal: 1 + 5 instead of 1 + 0.05.
- Treating percentage growth as linear: 5% per year for 10 years is not 50%; it is about 62.9%.
- Mixing log bases inside one calculation.
- Expecting exponential trends to continue forever. Real growth hits limits (market size, food supply), so models need checking against data.
Quick recap
- Exponential change multiplies by the same factor each period: A = P(1 + r)^t.
- Decay uses a factor below 1.
- log_b(x) asks which power of b gives x; it undoes exponentiation.
- Doubling time = log(2) / log(1 + r), roughly 72 ÷ rate%.
Try it
In the Do tab, write the growth formula. A doubling-time function that uses logarithms is already written so you can compare the two.