Adapun langkah yang harus dilakukan adalah :
- Menentukan 2 titik, misalkan a dan b pada sumbu x. Syaratnya a < b.
- nilai untuk r = c, berada diantara a dan b. Sehingga karena berada di antara adan b berlaku hubungan c = (a+b)/2.
- Bila f(a) * f(b) > 0, maka pencarian akar gagal.
- Bila f(a)*f(b)< 0, dilanjutkan dengan b=c atau a=c
- Proses ini dilanjutkan hingga nilai |b-a| < dari toleransi yang telah diberikan di awal.
Keuntungan menggunakan metode bagi dua (bisection method) ini adalah karena kesederhanaannya. Kemudian ini termasuk konvergen (selalu). Sayangnya ketika menggunakan ini agak lama, karena harus menebak dua titik dan dilakukan perulangan. Dengan perulangan tersebut pastinya untuk menemukan keknvergenan terolong lambat. Kemudian, bila dalam interval terdapat akar yang sama metoda ini dirasa kurang akurat. Untuk lebih memahami secara manual bisa di baca : Contoh Soal dan Pembahasan Metode bagi Dua (Metode Numerik)
Untuk mempermudah pencarian ini bisa digunakan program matlab. Adapun penulisan kode tersebut seperti berikut.
function fsposisisalah(f,a,b,n,toll)
% ----------- Bisection Method----------
% variabel f :fungsi,
% a :batasan titik awal yang mengafit akar c
% b :batasan titik akhir yang mengafit akar c
% n :banyaknaya iterasi
% toll: nilai toleransi (epsiolon) yang membatasi iterasi
syms x;
N=[];
disp('----------------------------------------------------------------');
fprintf('\t interval \t a\t\t c \t\t b \t\t fa \t\t fc \t fb\t\n');
disp('----------------------------------------------------------------');
for i=1:n, % i bergerak dari i sampai n
fa=subs(f,x,a); % fa = f(a)
fb=subs(f,x,b); % fb = f(b)
c=b-(fb*(b-a)/(fb-fa));
fc=subs(f,x,c); % fc = f(c)
N=[N;i a c b fa fc fb];
if fa*fc<0 % f(a).f(c) < 0 maka
b=c; % interval akar ada di [a,c]
else % sebaliknay jika f(b).f(c) < 0 maka
a=c; % interval akar ada di [c,b]
end
if abs(b-a)<toll % iterasi berenti ketika |b-a|< epsilon
break; % epsilon=toll --> didef. diawal
end
end
N
% -------------------------------------------------------------------------
% Untuk memanggil di Command Window
% Pilih interval [a,b]=[2,3] dan n=25 dan toll=10^(-6)
% >> syms x;
% >> f=x^3-3*x-5
% fsbisection(f,2,3,25,1e-6)
Akan didapat hasil seperti gambar di atas. Dari contoh tersebut kita mencari akar persamaan dari f(x) =x3-3x-5 dalam interval [2,3]. Nilai yang didapat dari iterasi dengan toleransi 10-6 ada pada perhitungan ke 20. Jika diperhatikan, bagian yang saya warnai biru adalah data permasalahan. Anda pasti bisa menganalisa bagia bagian tersebut.