NO 1

#NO 1
G <- function(s, lambda=1.5) {
  exp(lambda * (s - 1))
}

lambda <- 1.5
q_before <- 0           
toleransi <- 1e-8           
jumlah_iterasi <- 0        

repeat {
  q_after <- G(q_before)                  
  jumlah_iterasi <- jumlah_iterasi + 1            
  if (abs(q_after - q_before) < toleransi) {
    break                                          
  }
  q_before <- q_after                     
}

cat("Probabilitas kepunahan (extinction probability):", q_after, "\n")
## Probabilitas kepunahan (extinction probability): 0.4171883
cat("Jumlah iterasi hingga konvergen:", jumlah_iterasi, "\n")
## Jumlah iterasi hingga konvergen: 35

NO 2

simulasi <- function(max_gen = 10) {
  populasi <- 1 
  for (gen in 1:max_gen) {
    anak <- sum(sample(0:4, populasi, replace = TRUE))  
    if (anak == 0) {
      return(gen)  
    }
    populasi <- anak
  }
  return(NA) 
}

set.seed(432)  
n_simulasi <- 10000
hasil_simulasi <- replicate(n_simulasi, simulasi(max_gen = 3))

jumlah_punah <- sum(!is.na(hasil_simulasi))
peluang_punah_3 <- jumlah_punah / n_simulasi

cat("Estimasi peluang punah ≤ generasi ke-3:", peluang_punah_3, "\n")
## Estimasi peluang punah ≤ generasi ke-3: 0.2582
hasil_simulasi_10 <- replicate(n_simulasi, simulasi(max_gen = 10))

jumlah_punah_10 <- sum(!is.na(hasil_simulasi_10))
peluang_kepunahan <- jumlah_punah_10 / n_simulasi

cat("Estimasi peluang kepunahan sampai generasi ke-10:", peluang_kepunahan, "\n")
## Estimasi peluang kepunahan sampai generasi ke-10: 0.2809