MATH111: Applied Mathematical Modelling I

Maple code to obtain a steady-state diagram for a first-order difference equation


This page contains a maple code for the course: MATH 111 Applied Mathematical Modelling I --- Maple Assignment II.


# bifurcation.maple  Plot an approximate steady-state diagram for
# 31.07.06           the logistic model. Code from Barnes and Fulford (2002).
#
# 21.08.06           Code adapted for the scaled ricker model.
# 
with(plots):
n    := 125:
nrep := 32:
#K    := 1000:       # parameter not needed for the scaled ricker model

r := array(1..n):    # values of bifurcation parameter
X := array(0..n):    # population sizes.
y := array(1..nrep): # population size(s) for large n.

# Plot the data points on the y scale from ystart..yend
ystart :=   0:       #
yend   :=   3:       # You may need to change this value

rstart := 1.50:
rend   := 3.50:

X0     := 0.1:

for i from 1 to n do
     r[i] := evalf(rstart+i*(rend-rstart)/n); 
     for j from 0 to n-1 do
          X[0] := X0:
          X[j+1] := evalf(X[j]+r[i]*X[j]*(1-X[j]/K)); # defines the fn
          X[j+1] := evalf(X[j]*exp(r[i]*(1-X[j])));
     od;
     for k from 1 to nrep do
          y[k] := X[n-nrep+k]:
     od:
     pp := [[r[i],y[jj]] $jj=1..nrep];
     bif[i] := plot(pp, r=rstart..rend, y=ystart..yend, \
                    style=point,symbol=point,colour=black);
     col[i] := display([seq(bif[j], j=1..i)]);
od:
plot1 := display(col[n],labels=["per-capita reproduction rate r","scaled population size"],\
         labeldirections=[horizontal,vertical]):
display({plot1});


<< Return to my MATH 111 home page.
<< Return to my teaching home page.
<< Return to my start page.


Page Created: 21st August 2007.
Last Updated: 21st August 2007.