|
Posted: 08/24/21
Due: 09/03/21, 11:55PM
In 1202 Fibonacci introduced a model of population growth based on discrete time reproduction with death or infertility.
The formal assumptions within the Fibonacci popoulation model are:
Count rabbit pairs, denote by one male and one female;
Assume rabbit pairs do not die;
Assume each pair reproduces in a constant time interval of one month;
Assume one unit of time from birth to fertility;
Assume each rabbit pair reproduces exactly one new rabbit pair;
Assume all rabits pairs are fertile.
Denote time by , and let denote the number of pairs at time .
The Fibonacci model leads to the relation
with initial conditions , . The model exhibits exponential growth as shown in Fig. 1
∴ |
function F(n) if ((typeof(n)==Int64) && (n>=0)) if (n<2) return n end return F(n-1)+F(n-2) else print("Invalid argument\n") end end |
F
Julia] |
∴ |
N=30; n=0:N; Fn=F.(n); clf(); plot(n,log.(Fn),"o"); |
∴ |
xlabel("n (months)"); ylabel("F(n) (rabbit pairs)"); |
∴ |
title("Fibonacci population model"); grid("on"); |
∴ |
savefig(homedir() * "/courses/MATH089/images/Fibonacci.eps") |
∴ |
A different population model is given
∴ |
function P(n,r) if ((typeof(n)==Int64) && (n>=0) && (r>-1)) if (n==0) return 1 end return (1+r)*P(n-1,r) else print("Invalid argument\n") end end |
P
∴ |
P(2,0.1) |
∴ |
∴ |
N=30; n=0:N; r=1; Pn=P.(n,r); plot(n,log.(Pn),"o"); |
∴ |
xlabel("n (months)"); ylabel("P(n)"); |
∴ |
title("Malthus population model"); grid("on"); |
∴ |
savefig(homedir() * "/courses/MATH089/images/Malthus.eps") |
∴ |
Julia (1.6.1) session in GNU TeXmacs
∴ |
r=0.01; a=0.02; s=0.005; b=0.1; A=100; B=1000; |
∴ |
function WS(n) global r,s,a,b,A,B if ((typeof(n)==Int64) && (n>=0)) if (n==0) return [A B] else W = WS(n-1)[1] + r*WS(n-1)[1]*WS(n-1)[2] - a*WS(n-1)[1] S = WS(n-1)[2] - s*WS(n-1)[1]*WS(n-1)[2] + b*WS(n-1)[2] return [W S] end else print("Invalid argument") end end |
WS
∴ |
WS(3) |
(1)
∴ |
x[1] |
∴ |
x[2] |
∴ |