maclaurin_exp <- function(x, n) {
hasil <- 0
for (k in 0:n) {
hasil <- hasil + (x^k) / factorial(k)
}
return(hasil)
}
maclaurin_sin <- function(x) {
hasil <- 0
k <- 0
repeat {
komponen <- ((-1)^k) * (x^(2*k+1)) / factorial(2*k+1)
hasil <- hasil + komponen
if (abs(komponen) < 1e-5) {
break
}
k <- k + 1
}
return(hasil)
}
cat("exp(-1) orde 5 =", maclaurin_exp(-1, 5), "\n")
## exp(-1) orde 5 = 0.3666667
cat("sin(pi/6) ≈", maclaurin_sin(pi/6), "\n")
## sin(pi/6) ≈ 0.5
moving_average <- function(data, k = 3) {
n <- length(data)
hasil <- rep(NA, n)
for (t in k:n) {
hasil[t] <- mean(data[(t-k+1):t])
}
return(hasil)
}
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)
Mt3 <- moving_average(data, k = 3)
hasil <- data.frame(
t = 1:length(data),
Data = data,
M_t3 = round(Mt3, 2)
)
print(hasil)
## t Data M_t3
## 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
```