Delta Banner

Mathematics & Science Learning Center
Computer Laboratory


Applications of Differential Equations

Population Dynamics

(continued from last page...)

Finding the Parameters

Now what do we do about finding the values of the parameters a and b? Since there are two of them, we need two equations to find them uniquely. We can easily produce two equations from our solution to the differential equation by plugging in a couple of points from the census data. Let's use the point from 1900, which is close to the middle, and last point, 2010. (We already used the first point in finding po.) The resulting equations from substituting these data points into the verhulst solution would be (in Mathematica form):

(verhulst /. t -> 1900) == 76212200.
(verhulst /. t -> 2010) == 310383948.

Unfortunately you will find that Mathematica is incapable of solving the resulting 2x2 system of equations using either its Solve or NSolve commands. These are extremely hard equations. Instead we'll need to use Mathematica's "if all else fails" equation solver, FindRoot, which you learned how to use in the introductory laboratory on Algebraic Operations. Unfortunately this command requires us to have initial guesses for the values of a and b, which is a little tricky. Let's try to reason things through.

If you think about it a while, it seems reasonable that the value of a should be close to the value of k that we found in the Malthusian model we did a little earlier, i.e. around a = 0.02. (The reason behind this estimate is the fact that a is the constant which measures the birth/death rate of the population, just like k did in the other model.)

The b value presents a harder problem, however. If it's measuring the rate of competition it should probably be smaller than a. (This seems reasonable if you think about the relationship between the birth/death rate and the internal competition for resources—fighting over resources doesn't affect population growth anything like as much as births/deaths—at least not at the moment.) But how much smaller? It turns out that it needs to be many orders of magnitude smaller. Reasonable guesses might start with a = 0.02, and b = 10-10.

Try these guesses by issuing the command:

FindRoot[{(verhulst /. t -> 1900) == 76212200., (verhulst /. t -> 2010) == 310383948.}, {a, 0.02}, {b, 10^-10}]

Let's go look at what you should have gotten...

Compass If you're lost, impatient, want an overview of this laboratory assignment, or maybe even all three, you can click on the compass button on the left to go to the table of contents for this laboratory assignment.

ODE Laboratories: A Sabbatical Project by Christopher A. Barker

©2017 San Joaquin Delta College, 5151 Pacific Ave., Stockton, CA 95207, USA