Muhammad Hasan Itqoni

G1501221029

1. Susunlah sintaks R untuk penjumlahan deret berikut ini!

\[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

2. Susunlah sintaks R untuk penjumlahan deret berikut!

\[ 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

3. 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: 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 \]