Penyelesaian Persamaan Tak Linear : Metode Bisection

Setelah pada postingan sebelumnya kita membahas salah satu metode dalam penyelesaian persamaan tak linear dengan metode tabulasi. Pada metode tabulasi perhitungan cukup banyak dan memakan waktu yang lama. Untungnya, ada metode yang lain untuk menyelesaikan masalah ini. Metode ini, cenderung lebih baik dari pada metode tabulasi metode ini dikenal dengan nama metode bisection (bagi dua). Seperti apa metode ini mari kita pelajari bersama.

Dasar Teori Metode Bisection

  • Secara umum, jika f(x) bernilai real dan kontinu pada selang [a, b] dengan f(a).f(b) < 0, maka ada peluang paling sedikit terdapat satu akar real pada interval tersebut. Ujung-ujung selang, yaitu a dan b disebut dengan tebakan awal.
  • Interval [a, b] dibagi dua menjadi interval [a, c] dan [c, b] dengan c = a+b/2.
    • f(a).f(c)> 0, maka akar berada pada [c, b]
    • f(a).f(c)= 0, maka akar = c
    • f(a).f(c)< 0, maka akar berada pada [a, c]
      atau
    • f(c).f(b) > 0, maka akar berada pada [a, c]
    • f(c).f(b)= 0, maka akar = c
    • f(c).f(b) < 0, maka akar berada pada [c, b]

Algoritma Bisection

INPUT: Function f, endpoint values a, b, tolerance TOL, maximum iterations NMAX
CONDITIONS: a < b, either f(a) < 0 and f(b) > 0 or f(a) > 0 and f(b) < 0
OUTPUT: value which differs from a root of f(x)=0 by less than TOL
 
N ← 1
While NNMAX # limit iterations to prevent infinite loop
  c ← (a + b)/2 # new midpoint
  If f(c) = 0 or (ba)/2 < TOL then # solution found
    Output(c)
    Stop
  EndIf
  NN + 1 # increment step counter
  If sign(f(c)) = sign(f(a)) then ac else bc # new interval
EndWhile
Output("Method failed.") # max number of steps exceeded

Langkah-Langkah Pengerjaan

  • Ambil sembarang nilai untuk mengisi x1 dan x2. Sehingga f(x1) dikalikan f(x2) lebih kecil dari 0. Dengan asumsi bahwa ada nilai x diantara x1 dan x2 yang menyebabkan f(x) menjadi. Logikanya jika f(x1)*f(x2) < 0 maka diantara dua nilai ini ada x yang menyebabkan 0. Coba lihat lagi tabel dibawah.
    Anggap x1 = a dan x2 = b. ketika f(x1) bernilai negatif dan f(x2) bernilai positif maka diantar a dan b terdapat sebuah niali yang bernama c. c ini akan membuat f(x) menjadi 0.
  • Cari nilai c, dimana c = (a+b)/2. Proses ini mempercepat pencarian nilai c yang menyebabkan f(c) menjadi 0 dibandingkan dengan metode tabulasi.
  • Cari nilai f(c). Proses ini bertujuan untuk mengetahui batas perhitungan selanjutnya (interval hitungan selanjutnya).
  • Cek f(a)*f(c), f(c)*f(b). Mana diantara kedua perkalian itu yang menghasilkan nilai kurang dari 0 (<0). Logikanya sama seperti logika di poin 1 dan bertujuan pada poin 3.
  • Jika sudah lakukan perhitungan  seperti pada poin 1 sampai 4. Dengan ketentuan jarak interval dirubah mengikuti hasil perhitungan di poin 4.

Contoh soal

Cari satu nilai x pada f(x)=x^3-7x+1, sehingga f(x) = 0 ! (Gunakan metode bisection/bagi dua)
jawab. Cari sampai ketelitian 10^-5

Iterasi 1
  • ambil 2 buah angka secara acak. Semisal a=0 dan b=1 untuk perhitungan awal (perhatikan kedua angka tersebut harus memenuhi syarat f(a)*f(b)<0). Kita cek apakah f(0)*f(1)<0.
    • f(0) = 0^3-7(0)+1 = 1.
    • f(1) = 1^3-7(1)+1 = -5.
    • Ternyata memenuhi syarat f(0)*f(1)<0 (1*(-5) = -5).
  • cari nilai c, yaitu c = (0+1)/2 = 0,5. c=0,5.
  • cari nilai f(c).
    • f(c) = c^3-7(c)+1
    • f(0,5) = (0,5)^3-7(0,5)+1 
    • f(0,5) =  -2,375
  • cek f(a)*f(c),f(c)*f(b).
    • f(a)*f(c) = -2,375*1 = -2,375 (memenuhi syarat f(x1)*f(x2)<0)
    • f(c)*f(b) = -2,375*5 = 11,875
    • yang memenuhi batas baru adalah f(c)*f(a). jadi interval selanjutnya adalah [0,0.5]. 
Iterasi 2
  • Pada iterasi 1 didapat interval baru yaitu [0,0.5]. Maka perhitungan dilakukan dengan menganggap a=0 dan b=0,5.Didapat dari perhitungan sebelumnya f(0) = 1 dan f(0,5) = -2,375
  • c = (0+0,5) = 0,25, f(c) -> f(0,25) = (0,25)^3 - 7(0,25) + 1 = -0,7344
  • cek f(a)*f(c),f(c)*f(b).
    • f(a)*f(c) = f(0)*f(0,25) = 1 * (-0,7344) = -0,7344  (memenuhi syarat f(x1)*f(x2)<0)
    • f(c)*f(b) = f(0,25)*f(0,5) = -0,7344 * (-2,375) = 1,7442
    • yang menjadi interval selanjutnya adalah [0,0.25]
Iterasi 3
  • Pada iterasi 2 didapat interval baru yaitu [0,0.25]. Maka perhitungan dilakukan dengan menganggap a=0 dan b=0,25. Didapat dari perhitungan sebelumya f(0) = 1 dan f(0,25) = -0,7344.
  • c = (0+0,25)/2 = 0,125, f(c) -> f(0,125) = (0,125)^3 - 7(0,25) + 1 = 0,12695
  • cek f(a)*f(c),f(c)*f(b).
    • f(a)*f(c) = f(0)*f(0,125) = 1*0,12695 = 0,12695
    • f(c)*f(b) = f(0,125)*f(0,25) = 0,12695*(-0,7344) = -0,09323208 (memenuhi syarat f(x1)*f(x2)<0)
    • yang menjadi interval selanjutnya adalah  [0.125,0.25]
Untuk iterasi selanjutnya saya menggunakan bantuan excel sehingga hasilnya kurang lebih berikut :
Sebenarnya perhitungan anda bisa selesai di iterasi 18, tetapi karena keisengan penulis maka dilanjutkan sampai nemu ketelitian lebih dari 10^-7 :D.

Untuk file excelnya bisa didownload di sini : JUSTCLICK (direct from google drive)

Sumber :

Posting Komentar untuk "Penyelesaian Persamaan Tak Linear : Metode Bisection"