# a) Anuitas jiwa seumur hidup
ax.kontinu <- function(delta, age, B, C) {
  int = function(t) {
    exp(-delta*t) * (exp((-B/log(C))*(C^(age+t)-1))) / (exp((-B/log(C))*(C^age-1)))
  }
  ax.value <- integrate(int, 0, Inf)$value
  return(ax.value)
}
# b) Anuitas jiwa berjangka 20 tahun
axn.kontinu <- function(delta, age, B, C, n) {
  int = function(t) {
    exp(-delta*t) * (exp((-B/log(C))*(C^(age+t)-1))) / (exp((-B/log(C))*(C^age-1)))
  }
  axn.value <- integrate(int, 0, n)$value
  return(axn.value)
}
# c) Anuitas jiwa berjangka 20 tahun yang tertunda 5 tahun
maxn.kontinu <- function(delta, age, B, C, n, m) {
  int = function(t) {
    exp(-delta*t) * (exp((-B/log(C))*(C^(age+t)-1))) / (exp((-B/log(C))*(C^age-1)))
  }
  maxn.value <- integrate(int, m, m + n)$value
  return(maxn.value)
}
axnp.kontinu <- function(delta, age, B, C, n) {
  int=function(t) { exp(-delta * t) * 
    (exp((-B /log(C)) * (C^(age+t)-1))) / 
    (exp((-B /log(C)) * (C^age-1)))
  }
  
  axnp1.value <- integrate(int, 0, n)$value
  axnp2.value <- integrate(int, n, Inf)$value
  axnp.value <- axnp1.value + axnp2.value
  return(axnp.value)
}
# Menjalankan fungsi dengan parameter yang sama
ax.kontinu(delta=0.05, age=30, B=1e-5, C=1.09)
## [1] 19.08623
axn.kontinu(delta=0.05, age=30, B=1e-5, C=1.09, n=20)
## [1] 12.61674
maxn.kontinu(delta=0.05, age=30, B=1e-5, C=1.09, n=20, m=5)
## [1] 9.807052
axnp.kontinu(delta=0.05, age=30, B=1e-5, C=1.09, n=10)
## [1] 19.08623