#=================================================================================================================================================================================================
#Shyella Angel Therecia / 5003251060 / Assignment 3
#=================================================================================================================================================================================================

#================================================================================================
#Nomor 1
#================================================================================================
#a.Fungsi Maclaurin untuk exp
exp_maclaurin <- function(x, n){
  hasil <- 0
  
  for(i in 0:n){
    rumus <- x^i / factorial(i)
    hasil <- hasil + rumus
  }
  return(hasil)
}

#Contoh aplikasi
x <- -1
n <- 5

hasil <- exp_maclaurin(x,n)
hasil
## [1] 0.3666667
#b.Fungsi Maclaurin untuk sin
sin_maclaurin <- function(x, toleran = 1e-5){
  hasil <- 0
  n <- 0
  suku <- x
  
  while(abs(suku) >= toleran){
    hasil <- hasil + suku
    n <- n+1
    suku <-  (-1)^n * (x^(2*n+1)) / factorial(2*n+1)
  }
  return(hasil)
}

x_sin <- pi/6
nilai_hampiran_sin <-  sin(x_sin)


cat("\nHampiran sin(", x_sin, ") =", nilai_hampiran_sin, "\n")
## 
## Hampiran sin( 0.5235988 ) = 0.5
cat("Nilai eksak sin(", x_sin, ") =", nilai_hampiran_sin, "\n")
## Nilai eksak sin( 0.5235988 ) = 0.5
#================================================================================================
#Nomor 2
#================================================================================================
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)
k <- 3

rata_rata <- function(data, k){
  n <- length(data)
  ma <- numeric(n - k + 1)
  
  for(i in k:n){
    ma[i - k + 1] <- sum(data[(i - k + 1):i]) / k
  }
  return(ma)
}

mt3 <- rata_rata(data, 3)
t <- 1:length(data)

tabel <- data.frame(
  t = t,
  Data = data,
  Mt3 = c(NA, NA, round(mt3, 2))
)
tabel
##     t Data  Mt3
## 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