Bisection Method

Soal

Menyusun Program R untuk Metode Bisection disertai contoh-cotohnya

Metode Bisection

Metode Bisection adalah suatu metode yang digunakan untuk mencari akar dari suatu persamaan. Metode ini didasarkan pada Teorema Bolzano yang menyatakan bahwa Jika \(f\) kontinu pada interval \([a, b]\) dan \(f(a)\cdot f(b)<0\) maka terdapat paling sedikit satu titik \(c\) di \((a, b)\) sedemikian hingga \(f(c)=0\). Dengan kata lain, persamaan \(f(x)=0\) memiliki paling sedikit satu akar persamaan di antara \(x = a\) dan \(x = b\).

Hal yang penting dalam metode ini adalah pemilihan batas-batas interval. Nilai fungsi di kedua ujung interval itu harus memiliki tanda yang berbeda agar metode ini bisa berjalan. Jika tidak, maka metode ini tidak bisa berjalan.

Algoritma

Flow Chart Metode Bisection

Program di R

Program ini disusun dengan memasukkan 4 argumen yaitu fungsi, ujung-ujung interval, dan toleransi kesalahan. Jika toleransi kesalahan tidak dimasukkan, maka digunakan default \(1\times10^{-7}\).

bisection <- function(f, xl, xr, tol = 1e-7) {
  if (f(xl)*f(xr) >= 0) {
    return('Wrong Interval! Choose the right interval!')
  }
  i = 1
  while (abs(xr - xl) > tol){
    xm <- (xl + xr) / 2
    if (f(xm)==0){
      break
    }
    if (f(xl)*f(xm)>0){
      xl <- xm
    } else {
      xr <- xm
    }
    i = i + 1
  }
  hasil = cbind.data.frame(Akar=xm,Iterasi=i)
  return(hasil)
}

Contoh Soal

Latihan 1

Soal
Carilah akar persamaan \(f(x)=x-2+ln(x)\)
Jawab
Grafik dari \(f(x)=x-2+ln(x)\) adalah sebagai berikut.

f1 <- function(x) {x-2+log(x)}
pers = expression(f(x)==x-2+ln(x))
curve(f1,xlim=c(0,5),col='blue',lwd=2,main=pers,ylab="y")
abline(h=0)
abline(v=0)

Terlihat bahwa grafik f(x) memotong sumbu x di antara 1 dan 2. Dengan kata lain, akarnya terletak di antara 1 dan 2.

bisection(f1,xl=1,xr=2)
##       Akar Iterasi
## 1 1.557146      25

Dengan Metode Bisection, diperoleh akarnya \(1.557146\)

Latihan 2

Soal
Carilah akar persamaan \(f(x)=x^3 - x -1\)
Jawab
Grafik dari \(f(x)=x^3 - x -1\) adalah sebagai berikut.

f2 <- function(x) {x^3 - x -1}
curve(f2,xlim=c(-2,2),col='blue',main=expression(f(x)==x^3-x-1),ylab="y")
abline(h=0)
abline(v=0)

Terlihat dari grafik bahwa akarnya terletak di antara 1 dan 2.

bisection(f2,xl=0,xr=2)
##       Akar Iterasi
## 1 1.324718      26

Dengan Metode Bisection, diperoleh akarnya \(1.324718\)

Latihan 3

Soal
Carilah akar persamaan \(f(x)=ln(x) - e^{-x}\)
Jawab
Grafik dari \(f(x)=ln(x) - e^{-x}\) adalah sebagai berikut.

f3 <- function(x) {log(x) - exp(-x)}
curve(f3,xlim=c(0,5),col='blue',main=expression(f(x)==ln(x)-e^{-x}),ylab="y")
abline(h=0)
abline(v=0)

Terlihat dari grafik bahwa akarnya terletak di antara 1 dan 2.

bisection(f3,xl=0,xr=2)
##     Akar Iterasi
## 1 1.3098      26

Dengan Metode Bisection, diperoleh akarnya \(1.3098\)

Latihan 4

Soal
Carilah akar persamaan \(f(x)=(x+1)^2 e^{x^2 -2} - 1\)
Jawab
Grafik dari \(f(x)=(x+1)^2 e^{x^2 -2} - 1\) adalah sebagai berikut.

f4 <- function(x) {(x+1)^2 * exp(x^2 -2) - 1}
pers = expression(f(x)==(x+1)^2 *e^{x^2-2}-1)
curve(f4,xlim=c(-2,1.5),col='blue',main=pers,lwd=2,ylab="y")
abline(h=0)
abline(v=0)

Terlihat dari grafik bahwa persamaan ini memiliki 2 akar yang terletak di antara 0 dan 1, serta yang terletak di antara -1 dan -2. Melalui metode Bisection, harus dicari akarnya satu per satu.

rbind(bisection(f4,xl=0,xr=1),bisection(f4,xl=-2,xr=0))
##         Akar Iterasi
## 1  0.8668736      25
## 2 -1.6719067      26

Dengan metode bisection, diperoleh akar-akarnya \(0.8668736\) dan \(-1.6719067\).

Perlu diperhatikan bahwa melalui Metode Bisection tidak boleh memilih batas-batas interval yang mengakibatkan nilai fungsinya memiliki tanda yang sama. Misalnya, tidak boleh memilih \(xl=-2\) dan \(xr=1.5\) atau \(xl=-1\) dan \(xr = 0.5\). Syarat dalam Metode Bisection adalah \(f(xl)\cdot f(xr)<0\).

Jika dipaksakan, akan diperoleh seperti berikut.

bisection(f4,xl=-2,xr=1.5)
## [1] "Wrong Interval! Choose the right interval!"

Latihan 5

Soal
Carilah akar persamaan \(f(x)=(x-2)^2\)
Jawab

Jelas bahwa persamaan ini memiliki akar \(x=2\). Secara grafik dapat dilihat bahwa kurvanya menyinggung sumbu \(x\).

f5 <- function(x) {(x-2)^2}
curve(f5,xlim=c(-1,5),col='blue',main=expression(f(x)==(x-2)^2),ylab="y")
abline(h=0)
abline(v=0)

Kondisi seperti ini tidak dapat diselesaikan dengan Metode Bisection karena tidak ditemukan nilai f(x) yang berlawanan tanda. Dengan kata lain, tidak ditemukan \(xl\) dan \(xr\) yang mengakibatkan \(f(xl)\cdot f(xr)<0\).

Jika dipaksakan, diperoleh hasil berikut.

bisection(f5,xl=0,xr=4)
## [1] "Wrong Interval! Choose the right interval!"

Sumber

  1. Kuliah Pemrograman Statistika (29/10/21) oleh Prof. Aji Hamim Wigena.
  2. Penggunaan Metode Bagi Dua Terboboti untuk Mencari Akar-akar Suatu Persamaan link

Author

IRVANAL HAQ

S2 Statistika dan Sains Data IPB
LPDP PK-174 Pelita Aksara

path1= "E:\\IRVANAL HAQ.jpeg"
knitr::include_graphics(path1)