# a. anuitas jiwa seumur hidup
ax.diskrit <- function(i, age, B, C, w) {
v <- 1/(1+i)
ax.awal <- NULL
for (k in 1:(w-age-1)) {
ax.awal[k] <- v^(k-1) *
(exp((-B/log(C)) * (C^(age+k-1) - 1))) /
(exp((-B/log(C)) * (C^(age) - 1)))
}
ax.akhir <- NULL
for (k in 1:(w-age)) {
ax.akhir[k] <- v^(k) *
(exp((-B/log(C)) * (C^(age+k) - 1))) /
(exp((-B/log(C)) * (C^(age) - 1)))
}
cat("anuitas awal =", sum(ax.awal), "\n")
cat("anuitas akhir =", sum(ax.akhir), "\n")
}
# b anuitas jiwa berjangka 20 tahun
axn.diskrit <- function(i, age, B, C, n) {
v <- 1/(1+i)
ax.awal <- NULL
for (k in 1:(n-1)) {
ax.awal[k] <- v^(k-1) *
(exp((-B/log(C)) * (C^(age+k-1) - 1))) /
(exp((-B/log(C)) * (C^(age) - 1)))
}
ax.akhir <- NULL
for (k in 1:n) {
ax.akhir[k] <- v^(k) *
(exp((-B/log(C)) * (C^(age+k) - 1))) /
(exp((-B/log(C)) * (C^(age) - 1)))
}
cat("anuitas awal =", sum(ax.awal), "\n")
cat("anuitas akhir =", sum(ax.akhir), "\n")
}
maxn.diskrit <- function(i, age, B, C, n, m) {
v <- 1/(1+i)
# Anuitas awal
ax.awal <- numeric(m+n-1)
ax.awal[1:(m-1)] <- 0
for (k in m:(m+n-1)) {
ax.awal[k] <- v^(k-1) *
(exp((-B/log(C)) * (C^(age+k-1) - 1))) /
(exp((-B/log(C)) * (C^(age) - 1)))
}
# Anuitas akhir
ax.akhir <- numeric(m+n)
ax.akhir[1:m] <- 0
for (k in (m+1):(m+n)) {
ax.akhir[k] <- v^(k) *
(exp((-B/log(C)) * (C^(age+k) - 1))) /
(exp((-B/log(C)) * (C^(age) - 1)))
}
cat("anuitas awal =", sum(ax.awal), "\n")
cat("anuitas akhir =", sum(ax.akhir), "\n")
}
axp.diskrit <- function(i, age, B, C, w, n) {
v <- 1/(1+i)
# Anuitas awal
ax.awal <- numeric(w-age-1)
ax.awal[1:(n-1)] <- 0
for (k in n:(w-age-n-1)) {
ax.awal[k] <- v^(k-1) *
(exp((-B/log(C)) * (C^(age+k-1) - 1))) /
(exp((-B/log(C)) * (C^(age) - 1)))
}
# Anuitas akhir
ax.akhir <- numeric(w-age)
ax.akhir[1:n] <- 0
for (k in (n+1):(w-age-n)) {
ax.akhir[k] <- v^(k) *
(exp((-B/log(C)) * (C^(age+k) - 1))) /
(exp((-B/log(C)) * (C^(age) - 1)))
}
awal.pasti <- (1-v^n) / (1-v)
akhir.pasti <- (1-v^n) / i
cat("anuitas awal =", awal.pasti + sum(ax.awal), "\n")
cat("anuitas akhir =", akhir.pasti + sum(ax.akhir), "\n")
}
# Menjalankan fungsi-fungsi aktuaria
ax.diskrit(i=0.05, age=30, B=1e-5, C=1.09, w=100)
## anuitas awal = 19.85393
## anuitas akhir = 18.89044
axn.diskrit(i=0.05, age=30, B=1e-5, C=1.09, n=20)
## anuitas awal = 12.66734
## anuitas akhir = 12.43479
maxn.diskrit(i=0.05, age=30, B=1e-5, C=1.09, n=20, m=5)
## anuitas awal = 10.72979
## anuitas akhir = 9.723377
axp.diskrit(i=0.05, age=30, B=1e-5, C=1.09, w=100, n=20)
## anuitas awal = 19.31594
## anuitas akhir = 18.08584