Dosen Pengampu : Prof. Dr. Suhartono, M.Kom

Mata Kuliah : Kalkulus

Prodi : Teknik Informatika

Lembaga : Universitas Islam Negeri Maulana Malik Ibrahim Malang

Latihan I

Aljabar Linier

1. Selesaikan sistem persamaan linier berikut menggunakan eliminasi Gauss!

\[−4x+4y=−1\] \[−2x+2y−3z=−3\] \[3x+1y−3z=−3\]

Penyelesaian

gauss_jordan <- function (a){
    m <- nrow (a)
    n <- ncol (a)
    piv <- 1
    
# cek elemen diagonal utama apakah bernilai nol
    for(row_curr in 1:m){
        if(piv <= n){
            i <- row_curr
            while(a[i, piv] == 0 && i < m){
                i <- i + 1
                if(i > m){
                    i <- row_curr
                    piv <- piv + 1
                    if(piv > n)
                        return (a)
                }
            }

# jika diagonal utama bernilai nol,lakukan row swapping
            if(i != row_curr)
                a <- swap_row(a, i, row_curr)
            
# proses pembentukan matriks reduced row echelon form
            piv_val <- a[row_curr , piv]
            a <- scale_row (a, row_curr , 1 / piv_val)
            for(j in 1: m){
                if(j != row_curr){
                    k <- a[j, piv]/a[row_curr, piv]
                    a <- replace_row (a, row_curr, j, -k)
                }
            }
            piv <- piv + 1
        }
    }
    return (a)
}

(m <- matrix (c(-4,4,-1,-4,2,-3,
              -3,3,1,3,-3,-3), nrow=3))
##      [,1] [,2] [,3] [,4]
## [1,]   -4   -4   -3    3
## [2,]    4    2    3   -3
## [3,]   -1   -3    1   -3

Latihan II

Akar Persamaan Non Linier

1. Temukan akar persamaan dari persamaan non-linier f(x)=x3−2x+2 menggunakan metode terbuka dengan x0=0 dan x0=1/2!

root_secant <- function(f, x, tol=1e-7, N=100){
  iter <- 0
  
  xold <- x
  fxold <- f(x)
  x <- xold+10*tol
  
  while(abs(x-xold)>tol){
    iter <- iter+1
    if(iter>N)
      stop("No solutions found")
    
    fx <- f(x)
    xnew <- x - fx*((x-xold)/(fx-fxold))
    xold <- x
    fxold <- fx
    x <- xnew
  }
  
  root<-xnew
  return(list(`function`=f, root=root, iter=iter))
}

\(f(x)\) = \(x\)3 - 2\(x\) + 2

\(a)\) \(x\)0 = 0

root_secant(function(x){x^3-2*x+2}, x=0)
## $`function`
## function(x){x^3-2*x+2}
## <bytecode: 0x00000000164f8b98>
## 
## $root
## [1] -1.769292
## 
## $iter
## [1] 26

\(b)\) \(x\)0 = 1/2

root_secant(function(x){x^3-2*x+2}, x=1/2)
## $`function`
## function(x){x^3-2*x+2}
## <bytecode: 0x000000001409a048>
## 
## $root
## [1] -1.769292
## 
## $iter
## [1] 16

2. Apakah kelebihan dari metode tertutup (contoh: metode biseksi) dibanding metode terbuka (contoh: Newton-Raphson)? (catatan: pembaca dapat pula mencari dari referensi lainnya)

Salah satu contoh metode tertutup adalah metode biseksi yang memiliki kelebihan dibanding metode lainnya karena merupakan metode yang paling mudah dan paling sederhana. Selain itu, metode Biseksi selalu berhasil menemukan akar (solusi) yang dicari, atau dengan kata lain selalu konvergen.

Perlu diperhatikan bahwa, metode Biseksi adalah metode pencarian akar yang memerlukan interval yang mencapit akar sebagai masukan/input.Sementara,metode lainnya seperti Newton-Raphson, tidak memerlukan interval yang mencapit akar, bahkan tidak memerlukan interval sebagai masukan/inputnya, melainkan hanya sebuah titik.

\(Kesimpulannya\) \(kelebihan\) \(dari\) \(metode\) \(tertutup\) \(adalah\) \(prosesnya\) \(selalu\) \(konvergen\) \(dibanding\) \(metode\) \(terbuka\) \(yang\) \(prosesnya\) \(tidak\) \(selalu\) \(konvergen\).

3. Temukan akar persamaan dari persamaan f(x)=sin(x)/x dengan rentang pencarian x=0,5 dan x=1 !

\(f(x)\) = \(sin (x)\)/\(x\)

\(a)\) \(x\) = 0,5

root_secant(function(x)
  {(sin(x)/x)},
  x=0.5)
## $`function`
## function(x)
##   {(sin(x)/x)}
## <bytecode: 0x0000000015820a80>
## 
## $root
## [1] 6.283185
## 
## $iter
## [1] 7

\(b)\) \(x\) = 1

root_secant(function(x)
  {(sin(x)/x)},
  x=1)
## $`function`
## function(x)
##   {(sin(x)/x)}
## <bytecode: 0x0000000015c81fa8>
## 
## $root
## [1] 3.141593
## 
## $iter
## [1] 8

Latihan III

Interpolasi dan Ekstrapolasi

1. Diberikan data titik (3,5), (0,-2), dan (4,1). Tentukan persamaan polinomial untuk melakukan interpolasi pada ketiga titik tersebut!

Penyelesaian

poly_inter <- function(x, y){
  if(length(x) != length(y))
    stop("Lenght of x and y vectors must be the same")
  
  n <- length(x)-1
  vandermonde <- rep(1, length(x))
  for(i in 1:n){
    xi <- x^i
    vandermonde <- cbind(vandermonde, xi)
  }
  beta <- solve(vandermonde, y)
  
  names(beta) <- NULL
  return(beta)
}

x <- c(3, 0, 4)
y <- c(5, -2, 1)

Koefisien persamaan polinomial dihitung menggunakan fungsi poly_inter()

(coeff <- poly_inter(x, y))
## [1] -2.000000  7.083333 -1.583333

Berdasarkan hasil perhitungan, diperoleh nilai β. Nilai tersebut selanjutnya digunakan untuk membentuk persamaan polinomial. Berikut merupakan persamaan polinomial yang terbentuk:

\[f(x)= -2x^2 + 7x - 1\]

Fungsi horner_poly() selanjutnya digunakan untuk mengevaluasi polinomial tersebut. Berikut adalah hasil substitusi x pada persamaan tersebut:

horner_poly <- function(x, coeff){
  n <- length(x)
  y <- rep(0, n)
  
  for(i in length(coeff):1){
    y <- coeff[i] + x * y
  }
  return(y)
}

horner_poly(0, coeff)
## [1] -2

Latihan IV

Diferensiasi dan Integrasi Numerik

1. Hitung integral fungsi \(f(x)\)=\(sin\)2(\(x\)) pada domain \(x∈[0,π]\) !

Bentuk penyelesaiannya bisa dengan menggunakan metode Trapezoidal, berikut adalah sintaks yang digunakan :

trapezoid <- function(ftn, a, b, n = 100) {
         h <- (b-a)/n
         x.vec <- seq(a, b, by = h)
         f.vec <- sapply(x.vec, ftn)     # ftn(x.vec)
         Trap <- h*(f.vec[1]/2 + sum(f.vec[2:n]) + f.vec[n+1]/2)
         return(Trap)
}

mendefinisikan fungsi \(f(x)\)

 f <- function(x){
      sin(x)^2
 }

menghitung soal Integral menggunakan Trapezoid dengan permisalan n=6

trapezoid(f,0,pi,n = 6)
## [1] 1.570796

Referensi

https://bookdown.org/moh_rosidi2610/Metode_Numerik/linearaljabar.html#latihan

https://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=&cad=rja&uact=8&ved=2ahUKEwjpg8-P6vTzAhU2jdgFHVzEBYsQFnoECAIQAQ&url=http%3A%2F%2Fachmad_fahrurozi.staff.gunadarma.ac.id%2FDownloads%2Ffiles%2F67651%2FCAPTURE%2B2%2B-%2BMetode%2BNumerik%2BPencarian%2BSolusi%2BPersamaan%2BNon-Linier.pdf&usg=AOvVaw06A6_4Aj8CyNAloHqbOvYb

https://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=&cad=rja&uact=8&ved=2ahUKEwjpg8-P6vTzAhU2jdgFHVzEBYsQFnoECAIQAQ&url=http%3A%2F%2Fachmad_fahrurozi.staff.gunadarma.ac.id%2FDownloads%2Ffiles%2F67651%2FCAPTURE%2B2%2B-%2BMetode%2BNumerik%2BPencarian%2BSolusi%2BPersamaan%2BNon-Linier.pdf&usg=AOvVaw06A6_4Aj8CyNAloHqbOvYb