Susunlah sintaks R untuk penjumlahan deret berikut!
\[z = 1 + 1 + \frac{1}{2} + \frac{1}{3} + \frac{1}{5} + \frac{1}{8} + ...\]
Jawab
a = 1 # bilangan fibonacci pertama
b = 1 # bilangan fibonacci kedua
i = 1 # inisialisasi indeks untuk suku deret
z = 0 # inisialisasi nilai z
err = 1 # inisialisasi nilai error
# selama masih lebih dari error min yang ditetapkan
# maka looping terus berjalan
while(err > 10^(-30)){
if(i==1){ # deret sampai i=1
y = z + 1/a
}
else if(i==2){ # deret sampai i=2
y = z + 1/b
}
else{ # deret sampai i lainnya
c = a+b
a = b
b = c
y = z + 1/c
err = abs(y-z)
}
z = y
i = i+1
}
y## [1] 3.359886
Susunlah sintaks R untuk penjumlahan deret berikut!
\[Z = 10 - 2 + 0.4 - 0.08 + ...\]
Jawab
i = 1 # inisialisasi indeks untuk suku deret
b = 10
err = 1 # inisialisasi nilai error
z = 0
while (err > 10^(-30)){
a = (-1)^(i+1) # untuk mengatur tanda + atau -
y = z + a*b
b = b/5 # suku i = suku i-1 dibagi 5
err = abs(y-z)
i = i + 1
z = y
}
y## [1] 8.333333
Buatlah fungsi untuk mengurutkan vektor Berikut dari besar ke kecil. Bandingkan hasilnya dengan menggunakan fungsi sort yang ada di R.
\[X = [13,7,6,45,21,9,101,102]\]
Jawab
sort_manual <- function(vektor){
for (i in 1:length(vektor)) {
j = i+1
for (j in 1:length(vektor)) {
if(vektor[i]>vektor[j]) {
simp = vektor[i]
vektor[i] = vektor[j]
vektor[j] = simp}
}
}
return(vektor)
}
vektor <- c(13, 7, 6, 45, 21, 9, 101, 102)
sort_manual(vektor)## [1] 102 101 45 21 13 9 7 6
Hasilnya sama dengan fungsi sort() yang ada di R dengan menambahkan decreasing = TRUE karena secara default adalah decreasing = FALSE yang mengurutkan vektor dari kecil ke besar.
sort(vektor) # default decreasing = FALSE## [1] 6 7 9 13 21 45 101 102
sort(vektor, decreasing = TRUE)## [1] 102 101 45 21 13 9 7 6