# =============================================================
# Nama : Aila Rahima Qanita Heruningtyas
# NRP : 5003251056
# Kelas: D
# =============================================================
#No 1a.
exp_maclaurin <- function (x, n){
i <- 0:n
a <- (x^i) / factorial(i)
nilai <- sum(a)
return(nilai)
}
#Check
exp_maclaurin(-1, 5)
## [1] 0.3666667
#No 1b.
sin_maclaurin <- function(x){
batas <- 10^-5
hasil <- 0
i <- 0
nilai_awal <- 1
while (nilai_awal >= batas) {
pangkat <- (2*i) + 1
nilai_awal <- abs((x^pangkat) / factorial(pangkat))
tanda <- (-1)^i
if (nilai_awal >= batas) {
hasil_hitung <- hasil <- hasil + (tanda * (x^pangkat) / factorial(pangkat))
}
i <- i + 1
}
return (hasil)
}
#Check
sin_maclaurin(pi / 6)
## [1] 0.5000021
#No 2
t <- c(1,2,3,4,5,6,7,8,9,10,11,12)
data <- c(4.1, 4.9, 6.2, 6.9, 6.8, 4.4, 5.7, 5.8, 6.9, 4.7, 6, 4.9 )
df_data <- data.frame(
t = t,
data = data
)
hitung_rata2_bergerak <- function(df, kolom, k){
n <- nrow(df)
df$rata2_bergerak <- NA
nilai <- df[[kolom]]
i <- k
while (i <= n){
banyakdata <- nilai[(i- k + 1) : i]
df$rata2_bergerak[i] <- mean(banyakdata)
i <- i + 1
}
return(df)
}
#check
df_hasil <- hitung_rata2_bergerak(df_data, "data", k=3)
df_hasil$rata2_bergerak <- round(df_hasil$rata2_bergerak, 2)
print(df_hasil)
## t data rata2_bergerak
## 1 1 4.1 NA
## 2 2 4.9 NA
## 3 3 6.2 5.07
## 4 4 6.9 6.00
## 5 5 6.8 6.63
## 6 6 4.4 6.03
## 7 7 5.7 5.63
## 8 8 5.8 5.30
## 9 9 6.9 6.13
## 10 10 4.7 5.80
## 11 11 6.0 5.87
## 12 12 4.9 5.20