Tugas 8 STA561 - Pemrograman Statistika
No.1
Susunlah sintaks R untuk penjumlahan deret berikut!
\[Z = 1 +1 + \frac{1}{2} +\frac{1}{3}+\frac{1}{5} + \frac{1}{8} + ... \]
Algoritma :
- Mulai
- Tentukan dua nilai awal, yaitu x[1]=1, x[2]=1
- Tentukan batas toleransi awal
- Hitung nilai Z = 1/x[1] +1/x[2]
- Dimulai dengan i=3, Hitung elemen berikutnya, x[i] dengan menjumlahkan dua elemen sebelumnya, x[i] = x[i−2]+x[i−1]
- Hitung Z=Z+1/x[i]
- Periksa apakah elemen deret masih dalam batas toleransi
- Ulangi langkah 5, 6 dan 7 hingga batas toleransi tidak lagi terpenuhi
- Print nilai Z
- Selesai
Sintaks R
deret1 <- function(tol){
# inisiasi x awal
x <- c(1,1)
# nilai kumulatif
z0 <- 1/x[1]+ 1/x[2]
# minimal dimulai dari i=3
i <- 3
while(tol > 10^(-7)) {
x[i] <- x[i-2]+x[i-1] # inisiasi untuk penyebut fibonacci
z1 <- z0 + 1/x[i]
tol <- abs(z1-z0)
z0 <- z1
i <- i+1
}
return(z1)
}
deret1(10^(-6))[1] 3.359886
No. 2
Susunlah sintaks R untuk penjumlahan deret berikut!
\[Z = 10-2 + 0.4 - 0.08 + ...\]
Algoritma :
- Mulai
- Tentukan batas toleransi
- Hitung nilai z awal, z=0
- Tentukan iterasi permulaan, i=0
- Hitung nilai Z, dimana Z = Z + 10*((-1/5)^i)
- Ulangi langkah 4,5,6 hingga batas toleransi tidak terpenuhi
- Print nilai Z
- Selesai
Sintaks R
z0 <- 0
tol <- 10
i=0
while(tol>10^(-7)){
z1 <- z0 + 10*((-1/5)^i)
tol <- abs(z1-z0)
z0 <- z1
i <- i+1
}
z1[1] 8.333333
No. 3
Buat lah fungsi untuk mengurutkan vektor Berikut dari besar ke kecil. Bandingkan hasilnya dengan mengguakan fungsi sort yang ada di R.
x = {13, 7, 6, 45, 21, 9, 101, 102}
Algoritma :
- Baca data x i (i=1,2,3 , …,
- i=1
- j=i+1
- Jika x[i] < x[j] , lanjutkan ke langkah 5 Selainnya, pertukarkan nilai x[j] dengan x[i] 5.j=j +1
- Jika j<=n, lanjutkan ke langkah 4 Selainnya, i=i+1 dan j=i+1
- Jika i<=n, lanjutkan ke langkah 4 Selainnya print x[i], (i=1, 2, 3, …,
- Selesai
Sintaks R
x_sort <- function(x){
# menampung hasil x yang telah disortir
sort.x <- x
# menentukan panjang vektor
n <- length(x)
#iterasi tingkat 1
for (i in 1:(n - 1)){
# iterasi tingkat 2
for(j in 1:(n-i)){
if(sort.x[j+1] < sort.x[j]){
tmp <- sort.x[j]
sort.x[j] <- sort.x[j+1]
sort.x[j+1] <- tmp
}
}
}
return(sort.x)
}
x <- c(13, 7, 6, 45, 21, 9, 101, 102)
x_sort(x)[1] 6 7 9 13 21 45 101 102
# perbnadingan ddengan fungsi sort yang ada di R
sort(x)[1] 6 7 9 13 21 45 101 102