Metode Bagi Dua – Apa itu, Algoritma, dan Contoh
Apa itu Metode Bagi Dua?
Metode Bagi Dua merupakan salah satu solusi numerik dasar untuk menemukan akar persamaan polinomial. Metode ini mengurung interval tempat akar persamaan berada dan membaginya menjadi dua bagian dalam setiap iterasi hingga menemukan akarnya. Dengan demikian, metode bagi dua juga disebut metode pengurungan.
Akan tetapi, karena mekanisme kerjanya mirip dengan algoritma pencarian biner, metode bagi dua juga dikenal sebagai metode pencarian biner, metode bagi dua, atau metode dikotomi. Metode ini terutama didasarkan pada teorema nilai antara.
Menemukan Akar Persamaan
Dalam contoh ini, kita hanya mempertimbangkan persamaan dengan satu variabel bebas. Itu bisa linier atau nonlinier. Persamaan linier digunakan untuk mewakili grafik garis lurus, sedangkan persamaan non-linier digunakan untuk mewakili kurva.
Akar persamaan berarti nilai variabel bebas yang memenuhi persamaan tersebut. Contoh: akar persamaan f(x)= 4-x2 = 0 adalah 2 karena f(2) = 4-22 = 0.
Mari kita anggap f(x) sebagai fungsi kontinu nyata. Berdasarkan teorema nilai antara, persamaan f(x)=0 mempunyai paling sedikit satu akar antara a dan b jika f(a)f(b) < 0. Fungsi f(x) mempunyai akar “c,” antara a dan b.
Representasi Grafis Metode Bagi Dua
Grafik berikut menggambarkan mekanisme kerja metode bagi dua. Dari grafik, kita dapat melihat bahwa akar persamaan diberi tanda merah.
Memulai dengan:
- Kami pertama-tama mengambil dua tebakan awal, a1 dan B1, untuk itu f(a1)f(b1) < 0. Menurut teorema nilai antara, akarnya harus terletak di [a1, b1].
- Kita dapat mencari titik tengah a1 dan B1, yaitu b2. Jadi, interval awal sekarang dikurangi menjadi [a1, b2] karena f(a1)f(b2) < 0.
- Dengan cara yang sama, interval dikurangi hingga solusi perkiraan ditemukan.
Algoritma Metode Bagi Dua
Langkah-langkah penerapan algoritma metode bagi dua untuk mencari akar persamaan f(x)=0 adalah sebagai berikut
Langkah 1) Pilih tebakan awal a, b, dan tingkat toleransi e
Langkah 2) Jika f(a)f(b) >=0, maka akarnya tidak terletak pada interval ini. Dengan demikian, tidak akan ada solusi.
Langkah 3) Tentukan titik tengahnya, c = (a+b)/2
(i) Jika nilai fungsi titik tengah f(c) = 0, maka c adalah akarnya. Lanjutkan ke langkah 5.
(ii) Jika f(a)f(c) < 0 akarnya terletak di antara a dan c. Kemudian himpunan a = a, b = c.
(iii) Himpunan lain a = c, b = b.
Langkah 4) Jika kesalahan absolut lebih tinggi dari tingkat toleransi atau (ba) > e, lanjutkan ke langkah 3.
Langkah 5) Tampilkan c sebagai perkiraan root.
Mari kita lihat contoh algoritma metode bagi dua.
Kita harus mencari akar fungsi kontinu berikut menggunakan rumus metode bagi dua.
f(x) = x3 - x2 + 2
Contoh Metode Bagi Dua
Langkah 1) Mari kita asumsikan,
sebuah = -10,
b = 10, dan
e = 1% atau 0.01
Langkah 2) Sekarang, kita akan memeriksa apakah f(a)f(b) >= 0 atau tidak.
f(a) = f(-10) = (-10)3 – (-10)2 + 2 = -1098
f(b) = f(10) = (10)3 – (10)2 + 2 = 902
f(a)f(b) = f(-10)f(10) = (-1098)(902) < 0
Oleh karena itu, akar dari fungsi di atas terletak pada interval ini [-10, 10].
Langkah 3) Kemudian titik tengah c akan dihitung terlebih dahulu.
Sekarang kondisi berikut perlu diperiksa:
(i) apakah f(c) = 0:
f(c) = f(0) = (0)3 – (0)2 + 2 = 2 ≠ 0
(ii) jika f(a)f(c) < 0:
f(c)f(a) = 2*(-1098) < 0
Syaratnya terpenuhi. Untuk iterasi berikutnya, nilainya adalah,
a = a = -10
b = c = 0
Langkah 4) Karena (ba) = (0-(-10)) = 10>0.05, proses akan diulangi. Iterasi selanjutnya ditunjukkan pada tabel.
Pengulangan | a | b | c | ba | f(c) |
---|---|---|---|---|---|
1 | -10 | 0 | 0 | 10 | 2 |
2 | -5 | 0 | -5 | 5 | -148 |
3 | -2.5 | 0 | -2.5 | 2.5 | -19.875 |
4 | -1.25 | 0 | -1.25 | 1.25 | -1.52562 |
5 | -1.25 | -0.625 | -0.625 | 0.625 | 1.36523 |
6 | -1.25 | -0.9375 | -0.9375 | 0.3125 | 0.297119 |
7 | -1.09375 | -0.9375 | -1.09375 | 0.15625 | -0.50473 |
8 | -1.01562 | -0.9375 | -1.01562 | 0.078125 | -0.0791054 |
9 | -1.01562 | -0.976562 | -0.976562 | 0.0390625 | 0.115003 |
10 | -1.01562 | -0.996094 | -0.996094 | 0.0195312 | 0.0194703 |
11 | -1.00586 | -0.996094 | -1.00586 | 0.00976562 | -0.0294344 |
Langkah 5) Pada iterasi ke-11, kondisi langkah 4 akan salah. Jadi, akar persamaan ini adalah -1.00586.
Diagram Logika Metode Bagi Dua
Kode Semu
Start Set a, b, e if f(a)*f(b) >=0 Output("Root does not exist in this interval") Stop while (b-a)>e do c ← (a + b)/2 if f(c) = 0 break end if if f(c)*f(a) < 0 then b ← c else a ← c end while Output(c) Stop
Contoh Metode Bagi Dua di C/C++
Memasukkan:
#include<bits/stdc++.h> using namespace std; #define Error 0.01 double value(double x) { return x*x*x - x*x + 2; } void bisection_method(double a, double b) { if (value(a) * value(b) >= 0) { cout << "The root does not lie in this interval\n"; return; } double c = a; while ((b-a) >= Error) { c = (a+b)/2; if (value(c) == 0.0) break; else if (value(c)*value(a) < 0) b = c; else a = c; } cout << "The root is :" << c; } int main() { double a =-10 , b = 10; bisection_method(a, b); return 0; }
Keluaran:
The root is :-1.00586
Contoh Metode Bagi Dua di Python
Memasukkan:
def value(x): return x*x*x - x*x + 2 def bisection_method(a,b): if (value(a) * value(b) >= 0): return c = a while ((b-a) >= 0.01): c = (a+b)/2 if (value(c) == 0.0): break if (value(c)*value(a) < 0): b = c else: a = c print("The root is : ","%.4f"%c) a =-10 b = 10 bisection_method(a, b)
Keluaran:
The root is : -1.0059
Kelebihan & Keterbatasan Metode Bagi Dua
Berikut Kelebihan dan Kekurangan Metode Bagi Dua:
Pro | Kekurangan |
---|---|
Metode pencarian root yang mudah dan sederhana untuk diterapkan. | Konvergensinya lambat karena hanya didasarkan pada pengurangan separuh interval. |
Karena ia berada di dalam kurung akar, maka ia selalu konvergen. | Jika salah satu tebakan awal dekat dengan akar, maka untuk mencapai akar akan memerlukan lebih banyak iterasi. |
Tingkat kesalahan dapat dikontrol dengan menambah atau mengurangi jumlah iterasi. |