\[z = 1 + \frac{1}{2} + \frac{1}{3} + \frac{1}{5} + \frac{1}{8} + ...\] Jawab : Deret tersebut adalah deret 1/fibonacci atau penyebut deret tersebut membentuk barisan fibonacci. Oleh karena itu perlu dibuat sebuah fungsi untuk menghasilkan nilai barisan fibonacci dimana suku pertama dan kedua = 1
Deret Fibonacci: \[fibonacci(i) = \frac{(1+\sqrt5^i)-(1-\sqrt5^i)}{2^i\sqrt5}\]
Fungsi untuk menghasilkan suku ke-i pada barisan fibonacci
fibonacci = function(i){
suku_fibo <- c(1,1)
n <- length(suku_fibo)
x <- suku_fibo[n]+suku_fibo[n-1]
while (x<9999999){
n <- n+1
suku_fibo[n] <- x
x <- suku_fibo[n]+suku_fibo[n-1]
}
return(suku_fibo[i])
}
Contoh kita ingin mencari suku ke-10 dari deret fibonacci, maka:
fibonacci(10)
## [1] 55
Maka suku ke 10 dari deret fibonacci adalah 55, dan suku ke 10 dari deret fibo soal adalah 1/55.
Selanjutnya kita membuat fungsi untuk membuat jumlah deret pada deret di soal. Rumus deret pada soal: \[fibo soal(i) = \sum_{i=1}^\infty \frac{1}{fibonacci(i)}\]
fib_series <- function(i){
fibonacci(i)
}
#nilai awal
e <- 10
z0 <- 0
i <- 1
#Mencari jumlah deret
while (e > 10^(-5)) {
z1 <- z0 + 1/fib_series(i)
e <- abs(z1-z0)
z0 <- z1
i <- i+1
}
Maka nilai dugaan jumlah deret 1/fibonacci ketika nilai errornya dibawah 10^-5 adalah 3.359872
z1
## [1] 3.359872
\[ Z = 10-2 + 0.4-0.08+...\] Jawab : Deret tersebut merupakan deret geometri dengan rumus berikut: \[Z = 10\frac{1}{5^0} - 10\frac{1}{5^1} + 10\frac{1}{5^2} - 10\frac{1}{5^3} + ...\] Dengan formula sebagai berikut: \[Z(i) = \sum_{i=0}^\infty (-1)^i 10\frac{1}{5^i}\] Selanjutnya membuat fungsi untuk mencari penjumlahan deret tersebut
z <- function(i){
(-1)^(i) * 10*(1/(5^i))
}
#Nilai awal
e <- 10
z0 <- 0
i <- 0
#Mencari jumlah deret
while (e > 10^(-5)) {
z1 <- z0 + z(i)
e <- abs(z1-z0)
z0 <- z1
i <- i+1
}
Maka jumlah deret tersebut pada nilai error < 10^-5 adalah 8.3333
z1
## [1] 8.333332
\[ x = [13,7,6,45,21,9,101,102] \] Jawab: Membuat fungsi yang bernama fungsi.urutan.desc dengan yang memiliki input x dan outputnya merupakan vektor yang sudah terurut dari besar ke kecil
fungsi.urutan.desc <- function(x){
# jumlah amatan
n_x <- length(x)
# iterasi tingkat 1
for (i in 1:n_x){
j <- i+1
# iterasi tingkat 2
for (j in 1:n_x){
if (x[i] > x[j]){
tmp <- x[i]
x[i] <- x[j]
x[j] <- tmp
}
}
}
return(x)
}
Maka untuk mengurutkan nilai vektor x dari besar ke kecil kita gunakan fungsi yang sudah dibuat sebelumnya seperti berikut
x <- c(13, 7, 6, 45, 21, 9, 101, 102)
fungsi.urutan.desc(x)
## [1] 102 101 45 21 13 9 7 6
\[ Selesai \]