Untitled

 avatar
unknown
plain_text
10 months ago
2.5 kB
2
Indexable
#LM for turtles
L_turtles <- matrix(c(
  0, 0, 0, 127, 4, 80, 0,
  0.6747, 0, 0, 0, 0, 0, 0,
  0, 0.737, 0, 0, 0, 0, 0,
  0, 0.0486, 0.661, 0, 0, 0, 0,
  0, 0, 0.0147, 0.6907, 0, 0, 0,
  0, 0, 0, 0.0518, 0.8091, 0, 0,
  0, 0, 0, 0, 0.8091, 0.8089, 0
), nrow = 7, byrow = TRUE)

#LM for sharks
L_sharks <- matrix(c(
  0, 0.1, 25,
  0.3, 0, 0,
  0, 0.22, 0.95
), nrow = 3, byrow = TRUE)

#Predation rate parameters tests
a <- 0.01
b <- 0.01

#Initial pop sizes
initial_sea_turtle_pop <- c(300, 200, 150, 100, 50, 30, 20)
initial_tiger_shark_pop <- c(10, 5, 2)

# Calculate dynamic fecundity for each  class
calculate_fecundity <- function(L_turtles, L_sharks, a, b, X, Y) {
  # Extract baseline fecundity values for turtles and sharks
  fx <- L_turtles[1, ]
  fy <- L_sharks[1, ]
  
  #vectors for dynamic fecundity values
  FX <- numeric(length(fx))
  FY <- numeric(length(fy))
  
  #Calculate dynamic fecundity for turtles
  for (i in 1:length(fx)) {
    FX[i] <- fx[i] * exp(-a * Y[3])  # Y[3] is the number of adult predators (tiger sharks)
  }
  
  #Calculate dynamic fecundity for sharks
  for (i in 1:length(fy)) {
    FY[i] <- fy[i] * exp(b * X[7])  # X[7] is the number of adult prey (sea turtles)
  }
  
  #Return fecundity values as a list
  return(list(FX = FX, FY = FY))
}

# Function to update the combined Leslie matrix
update_matrix <- function(L_turtles, L_sharks, FX, FY) {
  # Create an empty combined matrix
  A <- matrix(0, nrow = 10, ncol = 10)
  
  #Insert fecundity values into the turtle matrix
  A[4, 5] <- FX[4]  # Fecundity for age class 4
  A[5, 6] <- FX[5]  # Fecundity for age class 5
  A[6, 7] <- FX[6]  # Fecundity for age class 6
  
  #Insert survival into the turtle matrix
  A[2, 1] <- L_turtles[2, 1]
  A[3, 2] <- L_turtles[3, 2]
  A[4, 3] <- L_turtles[4, 3]
  A[5, 4] <- L_turtles[5, 4]
  A[6, 5] <- L_turtles[6, 5]
  A[7, 6] <- L_turtles[7, 6]
  
  # fecundity values into  shark matrix
  A[8, 9] <- FY[2]  # Fecundity for shark age class 2
  A[9, 10] <- FY[3]  # Fecundity for shark age class 3
  
  #survival rates into  shark matrix
  A[9, 8] <- L_sharks[2, 1]  # Survival rate SY1
  A[10, 9] <- L_sharks[3, 2]  # Survival rate SY2
  
  return(A)
}

# population sizes
X <- initial_sea_turtle_pop
Y <- initial_tiger_shark_pop

#dynamic fecundity for each age class
fecundity <- calculate_fecundity(L_turtles, L_sharks, a, b, X, Y)

#Update Leslie matrix with dynamic fecundity values
A <- update_matrix(L_turtles, L_sharks, fecundity$FX, fecundity$FY)


print(A)
Editor is loading...
Leave a Comment