Modeling Population Growth using Euler's Method

In section 7.4 of your text you studied problems of exponential growth. If, for example, the population of the United States is represented as a function [Maple Math] , then the basic assumption made in 7.4 is that [Maple Math] satisfies the differential equation

[Maple Math]

where [Maple Math] is a constant for the population, called the growth constant . For example for a population with a birth rate [Maple Math] 0.025 (meaning that 2.5% of the people have a child in a given year) and a death rate [Maple Math] 0.01, the growth constant would be [Maple Math] [Maple Math] 0.015. The assumption that the rate of increase of a population is proportional to the size of the population is often called the Malthus model , after the English demographer Thomas Malthus who, in the late 18th century used such models to predict future world populations.

You now know that the equation [Maple Math] can be solved explicitly in terms of the natural exponential function. The solution is [Maple Math] , where [Maple Math] is an arbitrary constant usually determined from the initial size of the population. If for example we assume that the population of the United States was 250 million in 1990 and that the growth constant is [Maple Math] 0.015, then the population at any future time [Maple Math] is given by [Maple Math] . How realistic does this seem? What population does this predict for the year 2001? For the year 2100? For the year 2500? Is the basic Malthus model a good predictor of future populations, or can better models be devised? You will explore this question as part of CSC #4.

We conclude this worksheet by applying Euler's method to the differential equation [Maple Math] . We do this by copying the program for Euler's Method and changing the first four lines. Experiment with the values of [Maple Math] and maxI. Do you believe that the current growth rate of 0.015 can continue until the year 2100?

> k:=0.015;
f:=(t,y)->k*y;
P0:=[1990,250];
endOfInterval:=2100;
numPts:=100;

Euler:=P->[P[1]+deltaI,P[2]+deltaI*f(P[1],P[2])]:
deltaI:=evalf((endOfInterval-P0[1])/numPts):
with(math3):
clear(i):
soln:=iterate(Euler,P0,numPts):
plot(soln);;

[Maple Math]

[Maple Math]

[Maple Math]

[Maple Math]

[Maple Math]

[Maple Plot]

Go back