#NAMA: ALINEA AUFKLARUNG
#NRP: 5003251152
#KELAS: D
# Soal 1
# 1a
eksponensial <- function(x, n){
sum <- 1
for(i in 1:n){
sum <- sum + x^i/factorial(i)
}
return(sum)
}
eksponensial(-1, 5)
## [1] 0.3666667
# 1b
faktorial <- function(x){
fakt <- 1
if(x <= 0){
return(1)
}else{
for(i in 1:x){
fakt <- fakt*i
}
return(fakt)
}
}
sin_function <- function(x){
sum <- x
i <- 1
suku <- 1
while(abs(suku) > 10^(-5)){
pembilang <- x^(2*i + 1)
penyebut <- faktorial(2*i + 1)
suku <- pembilang/penyebut
sum <- sum + (-1)^i * suku
i = i+1
}
return(sum)
}
sin_function(pi/6)
## [1] 0.5
# Soal 2
moving_average <- function(data, k = 3) {
n <- length(data)
result <- numeric(n - k + 1)
for (i in k:n) {
result[i - k + 1] <- mean(data[(i - k + 1):i])
}
return(round(result, 2))
}
# Data
data <- c(4.1, 4.9, 6.2, 6.9, 6.8, 4.4, 5.7, 5.8, 6.9, 4.7, 6.0, 4.9)
# Hasil
moving_average(data, 3)
## [1] 5.07 6.00 6.63 6.03 5.63 5.30 6.13 5.80 5.87 5.20