Susunlah sintaks R untuk penjumlahan deret berikut!
𝑧 = 1 + 1 + 1/2 + 1/3 + 1/5 + 1/8 + ⋯
Deret diatas, pada bagian penyebut memiliki pola bilangan Fibonacci, yakni setiap sukunya merupakan penjumlahan dari 2 suku sebelumnya. Sedangkan pada bagian pembilang memiliki nilai yang sama yaitu 1.
Bilangan fibonacci sendiri dapat ditunjukkan :
\(f_1 = 1\)
\(f_2 = 1\)
\(f_{n} = f_{n-1} + f_{n-2}\) untuk n \(\small \geq\) 3
sehingga fungsi deret diatas dapat dinotasikan :
\({Z =} \left(\dfrac {1}{1}\right) + \left(\dfrac {1}{1}\right)\) \(\Large {+}\sum_{n=3}^{\infty}\) \(\left(\dfrac {1}{x_{n-1} } \right)\) + \(\left(\dfrac {1}{x_{n-2} } \right)\)
Berikut ini merupakan syntax yang digunakan untuk deret tersebut
#fibonacci function
#Membuat fungsi fibonacci dengan paramater yang dimasukan terdapat 3 yaitu, error, a, dan b
generate_fibo <- function(err_param, a, b){
fibo <- c(a,b)
n <- length(fibo)
x <- fibo[n]+fibo[n-1]
err = 10 #inisiasi err awal
while (abs(err) > err_param){ #stopping criteria
n <- n+1
fibo[n] <- x
x <- fibo[n]+fibo[n-1]
err = (1/fibo[n])-(1/fibo[n-1])
}
return(fibo)
}
#fibonacci sum operation
#Membuat penjumlahan dari deret
calculate_fibo <- function(fibo){
sum_fibo <- 0
for (i in fibo){
sum_fibo <- (sum_fibo + (1/i))
}
return(sum_fibo)
}
fibo <- generate_fibo(10**(-6),1,1)
calculate_fibo(fibo)## [1] 3.359884
Nilai final yang diperoleh dari penjumlahan deret tak hingga tersebut adalah 3.359884
Susunlah sintaks R untuk penjumlahan deret berikut!
z = 10 -2 + 0.4 -0.08 +. ..
Deret diatas merupakan barisan bilangan dengan pola deret geometri, antar suku pada deret tersebut memiliki rasio \(-\frac{1}{5}\). Secara langsung dengan rumus deret geometri kita dapat tentukan :
\(a = 10\)
\({r= - } \dfrac {1}{5}\)
\({Un= a} {r}^{n-1}\) = \({10} {\sf x} (-\dfrac {1}{5}) ^{n-1}\)
Sehingga penjumlahan deret diatas dapat kita notasikan sebagai berikut
\({Z =} \sum_{n=1}^{\infty} 10 {\sf x} (-\dfrac {1}{5}) ^{n-1}\)
Syntax yang digunakan untuk deret tersebut adalah :
fnz <- function(n){
10 * (-1/5) ^ (n-1)
}stopping_criteria <- function(y_current,y_before){
abs(y_current-y_before)
}#nilai awal kriteria stopping
error <- 10
#nilai awal deret
z0 <- 0
# nilai awal iterasi
n <- 1while (error > 10^-5) {
z <- z0 + fnz(n)
error <- stopping_criteria(z,z0)
z0 <- z
n <- n+1
}# final result
z ## [1] 8.333332
Nilai final yang diperoleh dari penjumlahan deret tak hingga tersebut adalah 8.333332
# criteria stopping
error## [1] 5.12e-06
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 ]
Berikut syntax yang digunakan untuk membuat fungsi mengurutkan vektor.
#Membuat fungsi sort
function_sort = function(x, type="desc") {
n <- length(x)
for (i in 1:(n-1)) {
for (j in (i+1):n) {
if (type == "asc" && (x[i] > x[j]) ||
type == "desc" && (x[i] < x[j]))
{
tmp = x[i]; x[i] = x[j]; x[j] = tmp
}
}
}
return(x)
}Insert data
x <- c(13, 7, 6, 45, 21, 9, 101, 102)Sorting Data
#descending
function_sort(x)## [1] 102 101 45 21 13 9 7 6
#ascending
function_sort(x,"asc")## [1] 6 7 9 13 21 45 101 102
#descending
sort(x,TRUE)## [1] 102 101 45 21 13 9 7 6
#ascending
sort(x)## [1] 6 7 9 13 21 45 101 102
Data yang diurutkan dengan
function_sort ()dan fungsisort()dari R memberikan output yang sama.