Kamis, 08 Desember 2011

Metode Bisection dengan PHP


Metode biseksi ini adalah metode untuk mencari akar-akar dari sebuah fungsi dengan cara menghitung nilai fungsi f(x) dari 2 nilai X : (X1,X2) yang diberikan, dan diharapkan nilai f(X1).f(X2)< xmid="(X1+X2)/2." baru =" (Xmid">
Metode numerik untuk mendapatkan harga x untuk f(x) = 0 seperti uraian di pasal 2.1 disebut METODE BISECTION. Tahap pertama proses adalah menetapkan nilai sembarang a dan b sebagai batas segmen nilai fungsi yang dicari. Batasan a dan b memberikan harga bagi fungsi f(x) untuk x = a dan x = b. Langkah selanjutnya adalah memeriksa apakah f(a)×f(b) <>
Dengan rumusan m = (a+b)/2, diperiksa apakah nilai mutlak f(m) <>-6 (batas simpangan kesalahan). Jika benar, nilai x = m adalah solusi yang dicari. Jika tidak terpenuhi, ditetapkan batasan baru dengan mengganti nilai b = m apabila f(a)*f(m) < a =" m"> 0; proses menemukan m baru dilakukan seperti prosedur yang telah dijelaskan.
Metode Bisection adalah salah satu kelas metode Pengelompokan, karena prosedur untuk mendapatkan nilai x untuk f(x) = 0 dilakukan melalui pendekatan kelompok akar. Metode ini tidak sepenuhnya memanfaatkan data f(x) bagi penentuan nilai x. Misalnya, tidak digunakannya ukuran relatif f(a) dan f(b), karena umumnya jika f(a) <>
Penetapan m ini dikenal dengan cara REGULA FALSI dan algoritmanya sama seperti metode Bisection, kecuali mengganti penentuan m dengan rumusan : m =a-[(b-a)x f(b)/f(b)-f(a)
Metode Bisection ini paling sederhana dan paling intractif dari metode pendekatan berturut-turut untuk melokalisasi sebuah persamaan akar f(x) = 0 dalam selang [a,b].
Metode ini didasrkan pada teorema nilai antara untuk fungsi kontinu., yang menyatakan pada suatu selang [a,b] sedemikian sehingga titik-titik ujung f berlawanan tanda, missal f(a) <> 0, harus mengandung suatu akar. Metode ini merupakan pengulangan pembagiduaan selang yang memenuhi teorema di atas. Oleh karena itu metode ini disebut metode bagi dua.
Algoritma Metode Bisection
Asumsi awal yang harus diambil adalah: ‘menebak’ interval awal
[a,b] dimana f(x) adalah kontinu padanya, demikian pula harus
terletak ‘mengapit’ (secara intuitif) nilai akar a, sedemikian rupa
sehingga:
(a× (b£ 0
Algoritma BISECT(f,a,b,akar,e,iter,itmax,flag)
1. Tebak harga interval [a,b]; tentukan e; dan    itmax
2. Set f0 = f(a); iter = 0; flag = 0;
3. Tentukan atau hitung akar := (b)/2;    iter iter + 1;
4. Jika f(af(c£ 0 maka jika tidak c    dan f0 = f(a);
5. Jika (– a£ maka flag = 1 jika iter >itmax maka flag = 2;
6. Jika flag = 0 ulangi ke nomor 3;
7. Akar persamaan adalah: akar = (b)/2,sebagai akar terbaru;
8. Selesai.

Flow chart Metode Bisection

Form dengan menggunakan HTML :

Target Script PHP :
<?php
$xupper=$_POST['xupper'];
$xlower=$_POST['xlower'];
$x1=$xupper;
$x2=$xlower;
//fungsi yang akan dicari akarnya
function f1($x){
$f1=-0.9*$x*$x+1.7*$x+2.5 ;
return $f1;
}
echo"<h1><center>Pencarian akar dengan Metode Bisection</h1>";
echo"Nilai penaksiran Xlower : $xlower <br>";
echo"Nilai penaksiran Xupper : $xupper <hr>";
//Pengecekan langkah 1
$a=f1($xlower);
$b=f1($xupper);
$c=$a * $b;
if($c>0){
echo" $a dan $b <br>";
echo"Nilai f(Xlower) . f(Xupper) > 0<br>Silakan lakukan penginputan Ulang";
}
else{
$k=1;
$xr=($xlower+$xupper)/2;

$t1=f1($xlower);
$t2=f1($xr);
$hasil=$t1*$t2;
if($hasil==0){
$akar=$xr;
echo"hasil akar adalah $akar";
}
else{
//header tabel
echo"
<table border=1 width=100% id=table1 style=border-width: 0px>
<tr>
<td width=35 style=border-style: none; border-width: medium bgcolor=#00FF00 align=center>
<b><font size=2 face=Verdana>No</font></b></td>
<td width=141 style=border-style: none; border-width: medium bgcolor=#00FF00 align=center>
<b><font size=2 face=Verdana>Xlower</font></b></td>
<td width=199 style=border-style: none; border-width: medium bgcolor=#00FF00 align=center>
<b><font size=2 face=Verdana>Xupper</font></b></td>
<td width=185 style=border-style: none; border-width: medium bgcolor=#00FF00 align=center>
<b><font size=2 face=Verdana>Xr</font></b></td>
<td style=border-style: none; border-width: medium bgcolor=#00FF00 align=center>
<b><font size=2 face=Verdana>F(xlower)</font></b></td>
<td style=border-style: none; border-width: medium bgcolor=#00FF00 align=center>
<b><font size=2 face=Verdana>F(xupper)</font></b></td>
</tr>

";
while($hasil<>0){
//langkah 2 :bagi dua 
$xr=($xlower+$xupper)/2;
//langkah 3 pengecekan 
$t1=f1($xlower);
$t2=f1($xr);
$hasil=$t1*$t2;
if($hasil<0){
$xupper=$xr;
   }
  else{
$xlower=$xr;
   }
   echo"
   <tr>
<td width=35 style=border-style: none; border-width: medium>
<font face=Verdana size=2>$k</font></td>
<td width=141 style=border-style: none; border-width: medium>
<font face=Verdana size=2>$xlower</font></td>
<td width=199 style=border-style: none; border-width: medium>
<font face=Verdana size=2>$xupper</font></td>
<td width=185 style=border-style: none; border-width: medium>
<font face=Verdana size=2>$xr</font></td>
<td style=border-style: none; border-width: medium>
<font face=Verdana size=2>$t1</font></td>
<td style=border-style: none; border-width: medium>
<font face=Verdana size=2>$t2</font></td>
</tr>

   ";
  $k++;
}
echo"</table>";
}
}
//Kesimpulan hasil iterasi
$k1=$k-1;
echo"
<table border=1 width=100% id=table1 cellspacing=0 height=166>
<tr>
<td colspan=2 align=center height=33 bgcolor=#00FF00><b>
<font face=Verdana size=6>Kesimpulan Metode Bisection</font></b></td>
</tr>
<tr>
<td width=34%><font face=Verdana>Nilai Taksiran Atas</font></td>
<td width=64%><font face=Verdana>&nbsp;$x1</font></td>
</tr>
<tr>
<td width=34%><font face=Verdana>Nilai Taksiran Bawah</font></td>
<td width=64%><font face=Verdana>&nbsp;$x2</font></td>
</tr>
<tr>
<td width=34%><font face=Verdana>Jumlah Iterasi</font></td>
<td width=64%><font face=Verdana>&nbsp;$k1</font></td>
</tr>
<tr>
<td width=34%><font face=Verdana>Nilai Akar yang ditemukan</font></td>
<td width=64%><font face=Verdana>&nbsp;$xr</font></td>
</tr>
</table>
";
?>


Hasil Dari Percobaan :
NoXlowerXupperXrF(xlower)F(xupper)
12.532.52.31.125
22.7532.751.1250.36875
32.752.8752.8750.36875-0.051562499999999
42.81252.8752.81250.368750.162109375
52.843752.8752.843750.1621093750.056152343749999
62.8593752.8752.8593750.0561523437499990.0025146484374989
72.8593752.86718752.86718750.0025146484374989-0.024468994140626
82.8593752.863281252.863281250.0025146484374989-0.010963439941407
92.8593752.8613281252.8613281250.0025146484374989-0.0042209625244141
102.8593752.86035156252.86035156250.0025146484374989-0.00085229873657156
112.859863281252.86035156252.859863281250.00251464843749890.00083138942718453
122.859863281252.8601074218752.8601074218750.00083138942718453-1.0401010513306E-5
132.85998535156252.8601074218752.85998535156250.000831389427184530.00041050761937989
142.86004638671882.8601074218752.86004638671880.000410507619379890.0002000566571958
152.86007690429692.8601074218752.86007690429690.00020005665719589.4828661530322E-5
162.86009216308592.8601074218752.86009216308599.4828661530322E-54.2214035055999E-5
172.86009979248052.8601074218752.86009979248054.2214035055999E-51.5906564657442E-5
182.86010360717772.8601074218752.86010360717771.5906564657442E-52.7527901700353E-6
192.86010360717772.86010551452642.86010551452642.7527901700353E-6-3.8241068986977E-6
202.86010360717772.86010456085212.86010456085212.7527901700353E-6-5.3565754676299E-7
212.86010408401492.86010456085212.86010408401492.7527901700353E-61.1085665159172E-6
222.86010432243352.86010456085212.86010432243351.1085665159172E-62.8645453564735E-7
232.86010432243352.86010444164282.86010444164282.8645453564735E-7-1.2460149179105E-7
242.86010438203812.86010444164282.86010438203812.8645453564735E-78.0926525036773E-8
252.86010438203812.86010441184042.86010441184048.0926525036773E-8-2.183748382123E-8
262.86010439693932.86010441184042.86010439693938.0926525036773E-82.9544520607772E-8
272.86010440438992.86010441184042.86010440438992.9544520607772E-83.8535201696277E-9
282.86010440438992.86010440811512.86010440811513.8535201696277E-9-8.9919804935334E-9
292.86010440438992.86010440625252.86010440625253.8535201696277E-9-2.5692319383097E-9
302.86010440532122.86010440625252.86010440532123.8535201696277E-96.4214411565899E-10
312.86010440532122.86010440578682.86010440578686.4214411565899E-10-9.6354302314694E-10
322.86010440532122.8601044055542.8601044055546.4214411565899E-10-1.6069900965476E-10
332.86010440543762.8601044055542.86010440543766.4214411565899E-102.4072122073449E-10
342.86010440549582.8601044055542.86010440549582.4072122073449E-104.0012437807491E-11
352.86010440549582.86010440552492.86010440552494.0012437807491E-11-6.0344618191266E-11
362.86010440549582.86010440551042.86010440551044.0012437807491E-11-1.0166978370307E-11
372.86010440550312.86010440551042.86010440550314.0012437807491E-111.4922285629382E-11
382.86010440550672.86010440551042.86010440550671.4922285629382E-112.3776536295372E-12
392.86010440550672.86010440550852.86010440550852.3776536295372E-12-3.8937741919653E-12
402.86010440550672.86010440550762.86010440550762.3776536295372E-12-7.5850437042391E-13
412.86010440550722.86010440550762.86010440550722.3776536295372E-128.1090689718621E-13
422.86010440550742.86010440550762.86010440550748.1090689718621E-132.6645352591004E-14
432.86010440550742.86010440550752.86010440550752.6645352591004E-14-3.6681768733615E-13
442.86010440550742.86010440550752.86010440550752.6645352591004E-14-1.6964207816272E-13
452.86010440550742.86010440550742.86010440550742.6645352591004E-14-7.283063041541E-14
462.86010440550742.86010440550742.86010440550742.6645352591004E-14-2.3092638912203E-14
472.86010440550742.86010440550742.86010440550742.6645352591004E-148.8817841970013E-16
482.86010440550742.86010440550742.86010440550748.8817841970013E-16-1.1546319456102E-14
492.86010440550742.86010440550742.86010440550748.8817841970013E-16-4.4408920985006E-15
502.86010440550742.86010440550742.86010440550748.8817841970013E-16-8.8817841970013E-16
512.86010440550742.86010440550742.86010440550748.8817841970013E-160




Kesimpulan Metode Bisection
Nilai Taksiran Atas 3
Nilai Taksiran Bawah 2
Jumlah Iterasi 51
Nilai Akar yang ditemukan 2.8601044055074



3 komentar:

Heriyanto mengatakan...

ko gda link softwarenya ?...

Heriyanto mengatakan...

numpang share:

http://www.herasep.co.cc/

Anonim mengatakan...

bapa kulane puyeng N ora ngerti...