###Assignment Questions###

1. This question pertains to modelling population growth using a geometric population model. (Assume no harvesting, i.e. h=0) Suppose we start with a population of 10 fish, and the per capita recruitment rate takes the value of 1, and the per capita mortality rate has a value of 0.7. Modify the “SET PARAMETERS” section of the “GeometricModel.R” script below and fill in the missing values in the table.

######## 1. SET PARAMETERS ##########

b = 1

d = 0.7

h = 0

Times = 10

StartPopulation = 10

R = 0.3

Answers to Q1 in bold:

Time N G.N delta.N
0 10.00 3.00 3.00
1 13.00 3.90 3.90
2 16.90 5.07 5.07

These answers were filled using this code:

b = 1

d = 0.7

times = 10

Initial.Pop = 10

Time = 0:times

N = numeric(times+1)

N[N==0]=NA

N[1] = Initial.Pop

G.N = numeric(times+1)

G.N[G.N==0]=NA

delta.N= numeric(times+1)

delta.N[delta.N==0]=NA #Change all 0’s to NA’s

delta.N = G.N

R = b - d

for (time in 1:times){

G.N[time] = R * N[time]

delta.N[time] = G.N[time]

N[time+1] = N[time] + delta.N[time] }

Geometric.Growth = data.frame(Time, N, G.N, delta.N)

View(Geometric.Growth)

round(head(Geometric.Growth,10),2)

Question 2: Consider a population of fish described by the Logistic equation with R0 = 0.1, K= 100. [HINT: modify parameters of the “LogisticModel.R”] (a) Using R produce a graph of the production function for this population

times = 100
Initial.Pop = 10
h=0

Time = 0:times
N = numeric(times+1)
N[N==0]=NA
N[1] = Initial.Pop
G.N = numeric(times+1)
G.N[G.N==0]=NA
delta.N= numeric(times+1)
delta.N[delta.N==0]=NA
delta.N = G.N

R0 = 0.1
K = 100

for (time in 1:times)
  {
  R = R0*(1-(N[time]/K))
  G.N[time] = R * N[time]
  delta.N[time] = G.N[time]
  N[time+1] = N[time] + delta.N[time]
  if(N[time]<0)
    {
      N[time] = 0
    }
}

Logistic.Growth = data.frame(Time, N, G.N, delta.N)
round(head(Logistic.Growth,10),2)
##    Time     N  G.N delta.N
## 1     0 10.00 0.90    0.90
## 2     1 10.90 0.97    0.97
## 3     2 11.87 1.05    1.05
## 4     3 12.92 1.12    1.12
## 5     4 14.04 1.21    1.21
## 6     5 15.25 1.29    1.29
## 7     6 16.54 1.38    1.38
## 8     7 17.92 1.47    1.47
## 9     8 19.39 1.56    1.56
## 10    9 20.96 1.66    1.66
with(Logistic.Growth, plot(G.N ~ N, type = "l", las = 1, lwd = 2, col="red", ylab = "Natural Growth Rate (G.N)",xlab ="Population (N)", main = "Production Function"))

label = paste("R0 = ", R0, ", K = ", K, ", h =",h)
text(K/2,G.N[1], label)

(b) Explain in your own words what the production function represents. [A couple of sentences should be enough. Write full and complete sentences.]

The production function graphs growth rate (G(N)) vs population (N). It shows that as population increases, we see an increase in the growth rate, as more members in the population can recruit. As we pass our K/2 (half the carrying capacity), the growth rate decreases as population increases, suggesting competition of resources withing the population, increased density of population, and decreased birth rates/death rates.

(c) (i) For which values of N is the production function zero? 0 and 100

(ii) For each value of N explain from a biological perspective why the production function is zero. [A couple of sentences should be enough. Write full and complete sentences.]

For N = 0, there will be no members of the population and therefore no production/growth of the population will occur. This could potentially be caused by illness, predation, or environmental conditions that ultimately wipe out a population. For N = 100, the population is equal to the carrying capacity, and our recruitment and death rates will be equal to eachother. This does not necessarily imply that there are no new births or increased death rates in the population, but that as many deaths occur as births, so production/growth will be 0 (no change).

with(Logistic.Growth, plot(N ~ Time, type = "l", las = 1,
                            lwd = 2, col="red", ylab = "Population Size (N)",
                            main = "Logistic Growth", xlab = "Time (years)"))
label = paste("R0 = ", R0, ", K = ", K)
text(10,N[50], label)