Epidemic Models 2, Part 4

      No Comments on Epidemic Models 2, Part 4

David A. Tanzer, August 17, 2020, in unit Epidemic Models 2.

Digression: solving the popcorn rate equation

Last time, we analyzed a system with a single reaction:

And derived its rate equation:

  • Unpopped'(t) = – RateCoefficient * Unpopped(t)

In this article, we will see the solution to the equation, which will tell us exactly how the average popping rate evolves over time.

Note this article strikes a comparatively more quantitative tone than the others in the series. If that’s not your cup of tea, then you could just skim, get what you can out of it, and move on; none of the following articles in this series depends on this material.

The half-life of unpopped kernels

The solution to the equation gives us an explicit function Unpopped(t), for all values of $t$ starting from zero onwards.

We already know what Unpopped(0) is. At time 0, i.e., the start of the cooking, all kernels are unpopped, and so Unpopped(0) equals the total number of kernels in the pot.

Now the solution to the equation above is called “exponential decay.” Verbiage aside, the basic idea is quite simple: there is a certain fixed amount of time, called the half-life. Suppose the half life was 10 seconds. That means that every ten seconds, the number of unpopped kernels gets cut in half. Therefore after 20 seconds it gets cut to down to a quarter, etc.

But what about after 19 seconds? We can see that the number of unpopped kernels will be close to one quarter, but slightly more, as we haven’t yet reached yet reached the full duration of two half-lives i.e. 20 seconds.

To get a function that works for all values of $t$, what we need is a smooth curve to interpolate between known values at all the time points which are multiples of the half life.

The curve of exponential decay

The interpolating curve that we seek is none other than the curve known as ‘exponential decay’:

TODO: show curve of exponential decay. At time 0, it equals the total kernel count (everything is unpopped at the start). Sketch in the half-life.

Formula for exponential decay

For those of you who insist on seeing things spelled out in detail, with the precision like a computer program, here is the formula for exponential decay.


  • $K$ = total number of kernels
  • $r$ = rate coefficient


  • Unpopped(t) = $K e^{- r t}$


  • Unpopped(0) = K
  • As $t$ goes to infinity, Unpopped(t) approaches zero.


The half-life is related to the rate coefficient $r$.

When $r$ is large, the kernels pop quickly, and the exponential curve quickly approaches zero – which means that the half life is small. Conversely when $r$ is small, the half life is large.

So, the half life is inversely proportional to $r$. It is not exactly $1/r$, but approximately equal to $0.693 / r$:

  • Half-Life = $ln(2) / r \approx 0.693 / r$

Exponential popcorn?

You may notice some unrealistic things about the exponential curve, as a description of how the popcorn pops:

  • There is an initial heating time, during which no kernels pop. So the actual curve should remain flat, staying at the initial value during this period. But the exponential curve starts descending immediately.
  • Actual popcorn gets completely popped within a certain time period. But the exponential curve, which keeps dividing down by two for every successive half life, takes an infinite amount of time to actually “reach zero.”

So where’s the bug in our model?

Recall that the rate coefficient describes the propensity of the kernels to pop. In the rate equation, we made the tacit assumption that the rate coefficient is a constant. But this is false.

Initially, when the kernels are cold, they do not pop at all, and the rate coefficient is in fact zero. As time goes on and temperature increases, the rate coefficient gets larger and larger. But the end of the actual cooking period, it becomes so large that any remaining unpopped kernel will immediately pop.

So to fix our rate equation, we need to make the rate coefficient depending upon time:

  • Unpopped'(t) = – RateCoefficient(t) * Unpopped(t)

However, we’ve got enough on our hands with analyzing systems even without the complications of varying rate coefficients. So we’ll continue to work in a simplified world where the rate coefficients are constant.

Next time we will continue analyzing the rate equations.

Copyright © 2020, David A. Tanzer. All Rights Reserved.

Leave a Reply