Metode Biseksi

25 January 2015 | Tags: , , , ,


Metode biseksi merupakan salah satu metode tertutup untuk mentukan solusi akar dari persamaan non linear. Ide awal dari metode biseksi adalah metode tabel dimana areanya dibagi menjadi N bagian. Sementara dalam motode biseksi membagi range menjadi 2 (dua) bagian saja. Akar-akar persamaan nonlinear dicari  melalui proses iterasi, dengan prinsip utama sebagai berikut: memilih bagain yang mengandung akar dan membuang yang tidak mengandung akar hingga diperoleh akar persamaan.

Hal yang terlebih dahulu harus ditentukan dalam metode biseksi adalah menentukan batas bawah (a) dan batas atas (b). Kemudian dicari nilai tengah : x=(a+b)/2. Secara matematis, akan terdapat akar persamaan bila f(a) dan f(b) dalam suatu range berlawanan tanda atau f(a) x (f(b)<0.

Algorima Metode Biseksi

  1. Definisikan fungsi f(x) yang akan dicari akarnya
  2. Tentukan nilai a dan b
  3. Tentukan torelansi e dan iterasi maksimum N
  4. Hitung f(a) dan f(b)
  5. Jika f(a).f(b)>0 maka proses dihentikan karena tidak ada akar, bila tidak dilanjutkan
  6. Hitung x=(a+b)/2
  7. Hitung f(x)
  8. Bila f(x).f(a)<0 maka b=x dan f(b)=f(x), bila tidak a=x dan f(a)=f(x)
  9. Jika |b-a|<e atau iterasi>iterasi maksimum maka proses dihentikan dan didapatkan
    akar = x, dan bila tidak, ulangi langkah 6.

Contoh Metode Biseksi untuk menyelesaikan sebuah persamaan

Selesaikan persamaan f(x) = xe-x+1 dengan range x=[-1,0] ! Dan hasil outputnya adalah

Tabel Metode Biseksi

Untuk menghentikan iterasi metode biseksi dapat dilakukan dengan menggunakanan toleransi error atau iterasi maksimum.

Meotde biseksi dengan toleransi error 0,001 dibutuhkan 10 iterasi, semakin teliti (kecil toleransi error-nya) maka semakian besar jumlah iterasi yang dibutuhkan.

Source Code Metode Biseksi dengan PHP

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Metode Biseksi</title>
<link href="style.css" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="js/jquery.min.js"></script>
<script src="js/highcharts.js"></script>
</head>

<body>
<div id="container">
<h2>Metode Biseksi</h2>
<div class="solusi">
<p>
 Carilah akar persamaan <strong>f(x) = xe<sup>-x</sup>+1</strong></p>
<?php
 //----Fungsi menentukan persamaan
 function persamaan($x)
 {
       return $x*pow(M_E,-$x)+1;
 }
//----End fungsi persamaan
 $a =isset($_GET['a'])?$_GET['a']*1:0;
 $b =isset($_GET['b'])?$_GET['b']*1:0;
 $n =isset($_GET['n'])?$_GET['n']*1:0;
?>
<form id="form1" name="form1" method="get" action="<?php echo $_SERVER['PHP_SELF'];?>">
<table class="f_isian">
 <tr>
 <td>Batas Atas (a)</td>
 <td>:</td>
 <td><input type="text" name="a" id="a" value="<?php echo $a;?>" />
 (s)</td>
 </tr>
 <tr>
 <td>Batas Atas (b)</td>
 <td>:</td>
 <td><input type="text" name="b" id="b" value="<?php echo $b;?>" />
 (s)</td>
 </tr>
 <tr>
 <td>Jumlah Iterasi</td>
 <td>:</td>
 <td><input type="text" name="n" id="n" value="<?php echo $n;?>" /></td>
 </tr>
 <tr>
 <td>&nbsp;</td>
 <td>&nbsp;</td>
 <td><input class="beda" type="submit" name="button" id="button" value="Proses" /></td>
 </tr>
 </table>
 </form>
<?php
$data_r="";
 if($n>0)
 {
 $fa=persamaan($a);
 $fb=persamaan($b);
 if($fa*$fb>=0)
   {
      echo " f(a)xf(b)>0, proses dihentikan karena tidak ada akar !";
   }
 else
   {
?>
 <table cellspacing="1" bgcolor="#666666" cellpadding="4" width="100%" class="f_isian">
 <tr bgcolor="#e8e8e8">
 <td align="center"><strong>Iterasi</strong></td>
 <td align="center"><strong>a</strong></td>
 <td align="center"><strong>b</strong></td>
 <td align="center"><strong>x</strong></td>
 <td align="center"><strong>f(x)</strong></td>
 <td align="center"><strong>f(a)</strong></td>
 <td align="center"><strong>Keterangan</strong></td>
 </tr>
<?php 

      for($k=1;$k<=$n;$k++)
        {
           $x=($a+$b)/2;
           $fx=persamaan($x);
           $ket="";
          if($fa*$fx<0)
            {
              $ket="Berlawanan tanda";
             }
?>
 <tr bgcolor="#FFFFFF">
 <td align="center"><?php echo $k;?></td>
 <td align="center"><?php echo number_format($a,4,",",".");?></td>
 <td align="center"><?php echo number_format($b,4,",",".");?></td>
 <td align="center"><?php echo number_format($x,4,",",".");?></td>
 <td align="center"><?php echo number_format($fx,4,",",".");?></td>
 <td align="center"><?php echo number_format($fa,4,",",".");?></td>
 <td align="center"><?php echo $ket; ?></td>
 </tr>
<?php
         if($fa*$fx<0)
           {
             $b=$x;
             $fb=$fx;
           }
         else
           {
             $a=$x;
             $fa=$fx;
           }
          }
?>
</table>
<?php
        }
     }
?>
</div>
</div>
</body>
</html>

Source Code Metode Biseksi dapat anda download disini!
Sumber rujukan : Metode Numerik dan Algoritma Komputasi (Drs. Achmad Basuki & NanaRamdijanti, S,Kom ; Andi Offset)

 

 

Komentar via Facebook tentang Metode Biseksi

Komentar tentang Metode Biseksi

  • Silahkan tulis saran, komentar dan pertanyaan dibawah!

    Your email address will not be published. Required fields are marked *