STELLA Model

Many situations exist where the rate at which an amount is changing is proportional to the amount present. Such might be the case for a population, say of people, deer, or bacteria. When money is compounded continuously, the rate of change of the amount is also proportional to the amount present. For a radioactive element, the amount of radioactivity decays at a rate proportional to the amount present.

For example, suppose we have a population in which no individuals arrive or depart; the only change in the population comes from births and deaths. No constraints, such as competition for food or a predator, exist on growth of the population. When no limiting factor exists, the rate of change of the population is directly proportional to the number of individuals in the population. If P represents the population and t represents time, then we have the following proportion:


For a positive growth rate, the larger the population, the greater the change in the population. With the same positive growth rate in two cities, say New York City and Greenville, the population of the larger New York City increases more in a year than that of Greenville.

We write the above proportion in equation form as follows:


The constant r is the growth rate or instantaneous growth rate or continuous growth rate, while dP/dt is the rate of change of the population.

The diagram in Figure 1, developed with the modeling tool software STELLA, depicts the situation. Both population and growth rate are necessary to determine the growth. The growth is the additional number of organisms that joins the population.

Figure 1. STELLA model of population where all change comes from births and deaths

Suppose we start with a bacteria population of 100, an instantaneous growth rate of 10% = 0.10, and time measured in hours. Thus, we have

with P0 = 100. With this data, STELLA generates the following equations:

population(t) = population(t - dt) + (growth) * dt
INIT population = 100
INFLOWS:
	growth = growth_rate * population
growth_rate = 0.10


For a simulation with STELLA or a program we write, we consider time advancing in small, incremental steps. The first equation indicates the population at one time step is the population at previous time step plus the change in population over that time interval:

(new population) = (old population) + (change in population)

The growth is the growth_rate (r above) times the current population (P above). For example, initially, the population is population(0) = 100, so that growth is 0.01 * 100 = 10 bacteria per hour at that instant. For our simulation, suppose the time step (dt) is 0.005 hr = . Thus, in that initial time step of 18 sec, the change in the population of bacteria is approximately 10 * 0.005 = 0.05 bacteria. The population at time 0.005 hr is

population(0.005) = population(0) + 0.05 = 100.05

With this new population, the growth changes to 10% of the new population, 0.10 * 100.05 = 10.005 per hour. Therefore, at the next time step, 2 * 0.005 hr = 0.01 hr, the change in the population is approximately 10.005 bacteria/hr * 0.005 hr = 0.050025 bacteria, and the new population is

population(0.010) = population(0.005) + 0.050025 = 100.05 + 0.050025 = 100.100025

The Table 1 gives the computation of the population for the first few time steps:

Table 1. Table of estimated populations, where the initial population is 100, the growth rate is 10%, and the time step is 0.005 hr.

t population(t) = population(t - dt) + (growth) * dt
0.000 100.000000            
0.005 100.050000 = 100.000000 + 10.000000 * 0.005
0.010 100.100025 = 100.050000 + 10.005000 * 0.005
0.015 100.150075 = 100.100025 + 10.010003 * 0.005
0.020 100.200150 = 100.150075 + 10.015008 * 0.005
0.025 100.250250 = 100.200150 + 10.020015 * 0.005
0.030 100.300375 = 100.250250 + 10.025025 * 0.005
0.035 100.350525 = 100.300375 + 10.030038 * 0.005
0.040 100.400701 = 100.350525 + 10.035053 * 0.005

Quick Review Question
Quick Review Question 1  Evaluate to six decimal places population(0.045), the population at the next time interval after the end of Table 1.

Because of the compounding, the number of bacteria at t = 1 hr is slightly more than 10% of 100, namely 110.51. Table 2 lists the growth and the population on the hour for 20 hours, and Figure 2 graphs the population versus time. The model states and the table and figure illustrate that as the population increases, the growth does, too.

Table 2. Table of estimated growths and populations, reported on the hour, where the initial population is 100, the growth rate is 10%, and the time step is 0.005 hr
t (hr) growth population
.000 10.00 100.00
1.000 11.05 110.51
2.000 12.21 122.13
3.000 13.50 134.98
4.000 14.92 149.17
5.000 16.49 164.85
6.000 18.22 182.18
7.000 20.13 201.34
8.000 22.25 222.51
9.000 24.59 245.90
10.000 27.18 271.76
11.000 30.03 300.33
12.000 33.19 331.91
13.000 36.68 366.81
14.000 40.54 405.38
15.000 44.80 448.00
16.000 49.51 495.11
17.000 54.72 547.16
18.000 60.47 604.69
19.000 66.83 668.27
20.000   738.54

Figure 2. Graph of population versus time for the data in Table 2


The model gives an estimate of the population at various times. If the model is analytically correct, the STELLA simulation estimates the values for growth and population. The smaller the step size, the more accurate the results will be.

Simulation Program

In developing a simulation program, we use statements similar to the STELLA equations. We initialize constants, such as GrowthRate, population, dt, and the length of time the simulation is to run (SimulationLength), and establish the length of the simulation. In a loop, we increment time t by dt on each iteration. Algorithm 1 contains the design for generating and displaying the time, growth, and population at each time step.

Algorithm 1. Algorithm for simulation of exponential growth
initialize SimulationLength
initialize population
initialize GrowthRate
initialize dt
for t going from 0 to SimulationLength in steps of size dt do the following:
         growth <-- GrowthRate * population
         population <-- population + growth * dt
         display t, growth, and population


If we do not need to display growth (derivative) at each step and the length of a step (dt) is constant throughout the simulation, we can calculate the constant growth rate per step (GrowthRatePerStep) before the loop, as follows:

GrowthRatePerStep <-- GrowthRate * dt

Within the loop, we do not compute growth but estimate population as follows:

population <-- population + GrowthRatePerStep * population

Thus, within the loop, we have one assignment instead of two and one multiplication instead of two, saving time in a lengthy simulation.


Analytic Solution

The equation with the initial condition P0 = 100 is a differential equation because it contains a derivative. We can solve this model analytically.

Click the explanation you prefer:



Using the initial condition that P0 = 100, we can determine a particular value of k and, thus, a particular solution of the form P = ke0.10t. Substituting 0 for t and 100 for P, we have the following:

100 = k e0.10(0) = k

The constant is the initial population. For this example,

P = 100 e0.10t

In general, the solution to


is

P = P0ert

Figure 3 displays the dramatic increase in the bacteria population as time advances.

Figure 3. Bacteria population with a continuous growth rate of 10% per hour and an initial population of 100 bacteria
Quick Review Question
Quick Review Question 2  Complete the solution of the differential equation , where P0 = 57.

P = _(a)_e_(b)_


The simulated values for the bacteria population are slightly less than those the model P = 100 e0.10t determines. For example, after 20 hours, the STELLA simulation displays in two decimal places a population of 738.54. However, 100 e0.10(20), expressed to two decimal places, is 738.91. The simulation compounds the population every step, and, in this case, the step size is dt = 0.005 hr. The analytic model compounds the population continuously; that is, the analytic solution is the limit of simulated values as the step size goes to zero and the number of steps goes to infinity.

Both the analytic model and simulation produce valid estimates of the population of bacteria. After 20 hours, the number of bacteria will be an integer, not a decimal number, such as 738.54 or 738.91. Moreover, the population probably does not grow in an ideal fashion with a 10%-per-hour growth rate at every instant. Both the analytic model and the simulation produce estimates of the population at various times.

Further Refinement

We can refine the model further by having parameters for birth rate and death rate instead of the combined growth rate. Thus,

GrowthRate = birth_rate - death_rate

Unconditional Decay

The rate of change of the mass of a radioactive substance is proportional to the mass of the substance, and the constant of proportionality is negative. Thus, the mass decays with time. For example, the constant of proportionality for radioactive carbon-14 is approximately -0.000120968. The continuous decay rate is about 0.0120968% per year, and the differential equation is as follows, where Q is the quantity (mass) of carbon-14:


As determined in the "Analytic Solution" section, the analytical solution to this equation is

Q = Q0e-0.000120968t

After 10,000 years, only about 29.8% of the original quantity of carbon-14 remains, as the following shows:

Q = Q0e-0.000120968(10,000) = 0.298292 Q0

Figure 4 displays the decay of carbon-14 with time.

Figure 4. Exponential decay of radioactive carbon-14 as a fraction of the initial quantity, Q0


Carbon dating uses the amount of carbon-14 in an object to estimate the age of an object. All living organisms accumulate small quantities of carbon-14, but accumulation stops when the organism dies. For example, we can compare the proportion of carbon-14 in living bone to that in the bone of a mummy and estimate the age of the mummy using the model.
Example 1    Suppose the proportion of carbon-14 in a mummy is only about 20% of that in a living human. To estimate the age of the mummy, we use the above model with the information that Q = 0.20Q0. Substituting into the analytical model, we have

0.20Q0 = Q0 e-0.000120968t


    After canceling Q0, we solve for t by taking the natural logarithm of both sides of the equation. Because the natural logarithm and the exponential functions are inverses of each other, we have the following:

ln(0.20) = -0.000120968t

t = ln(0.20)/(-0.000120968) ≈ 13,305 years

We often express the rate of decay in terms of the half-life of the radioactive substance. The half-life is the period of time that it takes for the substance to decay to half of its original amount. Figure 5 illustrates that the half-life of radioactive carbon-14 is about 5730 years. We can determine this value analytically as we did in Example 1 using 50% instead of 20%; Q = 0.50Q0.
Definition The half-life is the period of time that it takes for a radioactive substance to decay to half of its original amount.

Figure 5. The half-life of radioactive carbon-14 indicated as 5730 years


Quick Review Question
Quick Review Question 3  Radium-226 has a continuous decay rate of about 0.0427869% per year. Determine its half-life in whole years.


Exercises

1. a. For an initial population of 100 bacteria and a growth rate of 10% per hour, determine the number of bacteria at the end of one week.
    b. How long will it take the population to double?

2. a. Suppose the initial population of a certain animal is 15,000, and its growth rate is 0.2% per year. Determine the population at the end of 20 years.
    b. Suppose we are performing a simulation of the population using a step size of 0.083 yr. Determine the growth and the population at the end of the first three time steps.

3. Adjust the STELLA model in Figure 1 to accommodate birth rate and death rate instead of just growth rate.

4. a. Newton's Law of Heating and Cooling states that the rate of change of the temperature (T) with respect to time (t) of an object is proportional to the difference between the temperatures of the object and of its surroundings. Suppose the temperature of the surroundings is 25o C. Write the differential equation that models Newton's Law.
    b. Solve this equation for T as a function of time t.
    c. Suppose cold water at 6o C is placed in a room that has temperature 25o C. After one hour, the temperature of the water is 20o C. Determine all constants in the equation for T.
    d. What is the temperature of the water after 15 minutes?
    e. How long will it take for the water to warm to room temperature?

5. a. Suppose someone, whose temperature is originally 37o C, is murdered in a room that has constant temperature 25o C. The temperature is measured as 28o C when the body is found and at 27o C one hour later. How long ago was the murder committed from discovery of the body? See Exercise 4 for Newton's Law of Heating and Cooling.
    b. Suppose we are performing a simulation using a step size of 0.004 hr. Using the decay rate from Part a, determine the temperature at the end of the first three time steps after discovery of the body.

6. a. What proportion of the original quantity of carbon-14 is left after 30,000 years?
    b. If 60% is left, how old is the item?

7. a. The half-life of radioactive strontium-90 is 29 years. Give the model for the quantity present as a function of time.
    b. What proportion of strontium-90 is present after 10 years?
    c. After 50 years?


Projects

1. Adjust Algorithm 1 so that the user enters the report interval, which should be an integer multiple of dt. Implement the adjusted algorithm.

2. Develop a program based on Algorithm 1 to perform the simulation discussed in the "STELLA Model" section.

3. Develop a program based on Algorithm 1 to perform a simulation for Exercise 2.

4. Develop a program based on Algorithm 1 to perform a simulation for Exercise 3.

5. Develop a STELLA model for Newton's Law of Heating and Cooling (see Exercise 4). Using this model, answer the questions of Exercises 4 and 5.

6. Develop a computer program to model Newton's Law of Heating and Cooling (see Exercise 4). Using this model, answer the questions of Exercises 4 and 5.


Copyright © 2002 - , Dr. Angela B. Shiflet
All rights reserved