Nomor 1a
faktorial<-function(k){
hasil<-1
for(i in 1:k){
hasil<-hasil*i
}
return(hasil)
}
exp_maclaurin<-function(x,n){
result<-0
for(k in 0:n){
result<-result+(x^k/faktorial(k))
}
return(result)
}
print(paste("exp(-1) orde 5 =", exp_maclaurin(-1,4)))
## [1] "exp(-1) orde 5 = Inf"
print(paste("exp(-1) nilai sejati =", exp(-1)))
## [1] "exp(-1) nilai sejati = 0.367879441171442"
nomor 1b
sin_maclaurin<-function(x){
result<-0
k<-0
komponen<-x
while(abs(komponen)>=10^-5) {
komponen<-(-1)^k*x^(2*k+1)/faktorial(2*k+1)
result<-result+komponen
k<-k+1
}
return(result)
}
print(paste("sin(pi/6) =",sin_maclaurin(pi/6)))
## [1] "sin(pi/6) = 0.499999991869023"
nomor 2
rata_rata_bergerak<-function(data,k=3) {
n<-length(data)
Mt<-c()
for (t in 1:n){
if(t<k){
Mt[t]<-NA
}else{
total<-0
for (i in (t-k+1):t) {
total<-total+data[i]
}
Mt[t]<-total/k
}
}
return(Mt)
}
data_soal <- c(4.1,4.9,6.2,6.9,6.8, 4.4,5.7,5.8,6.9,4.7,6,4.9)
Mt3<-rata_rata_bergerak(data_soal)
print(data.frame(t=1:12,Data=data_soal,Mt3=round(Mt3,2)))
## 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