/* */
MEDIA PENDIDIKAN dan PEMBELAJARAN Ilmu Mantiq (Logika): Kaidah Berfikir yang Memelihara Akal, agar tidak terjadi Kerancuan dalam Berfikir.

Monday, October 3, 2011

Algoritma Metode Bagi dua / Bisection

Algoritma Metode Bagi dua / Bisection
1. Untuk n = 0, 1, 2 …… sampai selesai ß kriteria pemutusan
2. ambil m = (an + bn )/2    iterasi (bil. kecil tertentu)
3. Kalau f (an) f (m) < 0, ambil an+1 = an ; bn+1 = m
4. Jika f (an) f (m)>0  ambil an+1 = m ; bn+1 = bn
5. Jika  f(an) f(bn) = 0 maka an dan bn merupakan akarnya, hentikan perhitungan
f (x) punya akar dalam [an+1, bn+1]
dengan membandingkan nilai  m lama dan  m baru pada suatu batas ketelitian tertentu, misal dibuat:
       
Apabila ea sudah lebih kecil dari ketelitian yang diinginkan, maka perhitungan dihentikan.
Dari algoritma diatas dapat diturunkan program metode bisection, ada dua buah program:
1.      program utama disimpan dengan nama bisection.m
2.      program fungsi disimpan dengan nama fbi.m(program ini akan dipanggil oleh program utama)

Program utama dengan nama Bisection.m
%Nama File Bisection.m
clear;
clc;
galat = 0.001;
bawah = input('Batas Bawah : ');
atas = input('Batas Atas : ');
nilai = 1;
no = 0;
m0=bawah;
clc;
fprintf ('Taksiran batas bawah : %5.3f\n', bawah);
fprintf ('Taksiran batas atas : %5.3f\n', atas);
fprintf ('=========================\n');
fprintf ('Iterasi  (bawah+atas)/2 Galat      Interval\n');
fprintf ('=========================\n');
while nilai> galat
   no = no +1;
   fbawah=feval('fbi',bawah);
   m=(bawah+atas)/2;
   ftengah=feval('fbi',m);
   if fbawah*ftengah==0
      disp('m adalah akarnya');
   elseif fbawah*ftengah<0
      atas=m;
      else
         bawah=m;
         end
nilai=abs(m0-m);
fprintf ('  %3d     %8.5f    %8.5f     [%8.5f ; %8.5f]\n', no, m, nilai, bawah, atas);
m0=m;
   end
   fprintf ('==========================\n');
fprintf ('Pada iterasi ke-%1d, Selisih Interval < %5.3f\n', no, galat);
fprintf ('jadi, akar persamaannya adalah %7.5f\n', m);

fungsi yang diberi nama fbi.m
%Nama Fungsi fbi.m
function [y]=f(x)
y=x^3+x^2-8*x-10;

/*
*/