News Update :
Home » » Metode Bagi Dua

Metode Bagi Dua

Penulis : A. S. Rohman on Selasa, 12 Maret 2013 | 07.22

Metode Bagi Dua (Metode Bisection) merupakan suatu metode  tertutup, artinya suatu metode yang digunakan untuk menenukan akar suatu fungsi diantara dua titik pada sumbu x. Misalkan diketahui r (akar yang belum dikathui)  dari suatu fungsi f(x) yang kontinu, menentukan akar dengan metode bagi dua adalah 
  • pertama tebakan awal tentukan dua buah titik a dan b pada sumbu x dengan (a<b)
  • nilai akar r=c dari suatu fungsi f(x) terletak diantara interval [a,b] yang berlaku c=(a+b)/2
  • jika fa=f(a) dan fb=f(b) berlaku fa*fb>0 maka proses mencari akar gagal
  • jika fa=f(a) dan fb=f(b) berlaku fa*fb<0 maka proses mencari berlanjut dengan b=c atau fb=fc, jika tidak a=c atau fa=fc
  • proses ini berlanjut terus menerus sampai nilai dari |b-a|< toleransi yang diberika diawal
Algoritman Metode Bagi Dua (Bisection)
  1. set c=(a+b)/2
  2. jika fc=0 maka x=c adalah solusi eksak dari suatu fungsi yang akan dicari
  3. jika fa.fc<0 maka solusi terletak pada interval (a,c)
  4. jika fa.fc>0 maka solusi terletak pada interval (c,b)
  5. dengan mengganti interval (a,b) dengan salah satu dari (a,c) atau (c,b) yang mengandung akar persamaan, kesalahan mencari akar persamaan f(x)=0 secara rata-rata  setengah dari jarak interval tersebut
  6. pengulangan dilakukan samapai solusi eksak ditemukan
Kelebihan Metode Bagi Dua (Bisection)
  • metode bisection sangat sederhana
  • selalu konvergen
Kelemahan Metode Bagi Dua (Bisection)
  • harus menebak dua titik
  • kekonvergenan relatif lambat
  • jika pada selang diamati terdapat akar yang sama (double root) atau closely spaced roots, metode bagi dua memberikan hasil yang tidak akurat
Program Metode Bagi Dua (Bisection) dalam MATLAB

function fsposisisalah(f,a,b,n,toll)
% ----------- FUNGSI BAGI DUA (BISECTION)----------
% variabel f :fungsi,
%          a :batasan titik awal yang mengafit akar c
%          b :batasan titik akhir yang mengafit akar c
%          n :anyaknaya 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 jiak 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)


Outputnya:

>> fsbisection(f,2,3,25,1e-6)
--------------------------------------------------------------------------------------------------------------------------------------
                 interval              a                      c                          b                          fa                      fc                          fb       
--------------------------------------------------------------------------------------------------------------------------------------
N =
    1.0000         2.0000             2.5000                  3.0000            -3.0000               3.1250            13.0000
    2.0000         2.0000             2.2500                  2.5000            -3.0000              -0.3594             3.1250
    3.0000         2.2500             2.3750                  2.5000            -0.3594               1.2715             3.1250
    4.0000         2.2500             2.3125                  2.3750            -0.3594               0.4290             1.2715
    5.0000         2.2500             2.2813                  2.3125            -0.3594               0.0281             0.4290
    6.0000         2.2500             2.2656                  2.2813            -0.3594              -0.1673             0.0281
    7.0000         2.2656             2.2734                  2.2813            -0.1673              -0.0700             0.0281
    8.0000         2.2734             2.2773                  2.2813            -0.0700             -0.0211              0.0281
    9.0000         2.2773             2.2793                 2.2813            -0.0211               0.0035              0.0281
   10.0000       2.2773              2.2783                 2.2793            -0.0211              -0.0088             0.0035
   11.0000       2.2783              2.2788                 2.2793            -0.0088              -0.0026             0.0035
   12.0000       2.2788              2.2791                 2.2793            -0.0026               0.0004              0.0035
   13.0000       2.2788              2.2789                 2.2791            -0.0026              -0.0011             0.0004
   14.0000       2.2789              2.2790                 2.2791            -0.0011              -0.0003             0.0004
   15.0000       2.2790              2.2790                 2.2791            -0.0003               0.0000             0.0004
   16.0000       2.2790              2.2790                 2.2790            -0.0003              -0.0001            0.0000
   17.0000       2.2790              2.2790                 2.2790            -0.0001              -0.0001            0.0000
   18.0000       2.2790              2.2790                 2.2790            -0.0001              -0.0000            0.0000
   19.0000       2.2790              2.2790                 2.2790            -0.0000                0.0000           0.0000
   20.0000        2.2790            2.2790                  2.2790            -0.0000               0.0000            0.0000
Akar yang diperoleh:
Dari tabel diatas terlihat bahwa akarnya diperoleh ketika nilai f(c) = 0, sehingga akar persamaan tersebut adalah 2.2790 yang diperoleh pada iterasi ke-20
Share this article :

+ komentar + 1 komentar

26 Januari 2014 pukul 06.06

link kk manfaat banget nih.....

Posting Komentar

 
Company Info | Contact Us | Privacy policy | Term of use | Widget | Advertise with Us | Site map
Copyright © 2011. map . All Rights Reserved.
Design Template by panjz-online | Support by creating website | Powered by Blogger