Seperti telah dijelaskan pada
modul terdahulu, Metode Bisection memiliki
kelemahan pokok, yaitu: kecepatannya dalam mencapai divergensi; maka beberapa ahli matematika telah
berusaha menyempunakan metode tersebut. Namun demikian, metode ini
memiliki kelebihan yaitu: kepastian atau jaminannya dalam menuju konvergensi.
Dalam modul ini akan dibahas suatu metode solusi baru yang memodifikasi
metode bisection, yang kinerjanya lebih cepat dalam mencapai konvergensi, namun
masih tetap memiliki kepastian atau jaminan menuju konvergensi.
Solusi akar (atau akar-akar) dengan menggunakan Metode RegulaFalsi
merupakan modifikasi dari Metode Bisection dengan cara memperhitungkan
‘kesebangunan’ yang dilihat pada kurva berikut:
gambar : Representasi grafis metode Regula-False
Perhatikan kebangunan 2 segitiga Pcb dan PQR di atas, sehingga persamaan berikut dapat digunakan:
Persamaan di atas disebut sebagai persamaan rekursif dari Metode Regula Falsi.
Kecepatan atau laju konvergensi dari Metode Regula-Falsi sama dengan Metode Bisection, yaitu ‘konvergensi linier’, namun dengan faktor pengali (konstanta) yang lebih besar dari 1 2 (faktor pengali berkisar antara 1 2 … 1).
Algoritma :
Asumsi awal yang harus diambil adalah sama seperti pada Metode Bisection, yaitu: ‘menebak’ interval awal [a,b] dimana f(x) adalah kontinu padanya, demikian pula interval tersebut harus terletak ‘mengapit’ (secara intuitif) nilai akar a, sedemikian rupa sehingga:
f (a) . f (b) < 0
Meskipun pada algoritma berikut masih mengandung beberapa kelemahan, namun secara umum masih sangat menguntungkan untuk dipakai. Perbaikan dan modifikasi secara numeris dilakukan oleh Brent (Atkinson, 1978), untuk algoritma tersebut.
Flowchart :
Form Perhitungan pencarian Akar dengan Metode Regula False :
Script PHP :
<?php
$b=$_POST['xupper'];
$a=$_POST['xlower'];
$tol=$_POST['tol'];
$max=$_POST['max'];
$x1=$xupper;
$x2=$xlower;
//fungsi yang akan dicari akarnya
function f($x){
$f1=sin($x)/cos($x)-$x-0.5 ;
return $f1;
}
echo"<h1><center>Pencarian akar dengan Metode Regula False</h1>";
echo"Nilai penaksiran (a) : $a <br>";
echo"Nilai penaksiran (b) : $b <br>";
echo"Toleransi : $tol <br>";
echo"Maksimum Iterasi : $max <br>";
$Fa=f($a);
$Fb=f($b);
if($Fa*$Fb>0){
echo"f(a) x f(b) > 0<br>Ulangi Penginputan<br><input type=button value=kembali onclick=history.back()>";
}
else{
echo"
<table border=1 width=100% id=table1 cellspacing=0>
<tr>
<td width=46 align=center bgcolor=#C0C0C0><b>
<font face=Verdana size=2>Iterasi</font></b></td>
<td width=123 align=center bgcolor=#C0C0C0><b>
<font face=Verdana size=2>a</font></b></td>
<td align=center bgcolor=#C0C0C0><b><font face=Verdana size=2>b</font></b></td>
<td align=center bgcolor=#C0C0C0><b><font face=Verdana size=2>m</font></b></td>
<td width=160 align=center bgcolor=#C0C0C0><b>
<font face=Verdana size=2>f(a)</font></b></td>
<td width=130 align=center bgcolor=#C0C0C0><b>
<font face=Verdana size=2>f(b)</font></b></td>
<td width=113 align=center bgcolor=#C0C0C0><b>
<font face=Verdana size=2>abs[f(a)-fb)]/2</font></b></td>
</tr>
";
$i=0;
$epsilon=$tol+1;
//while ((it<=max_iter) and (epsilon>tol))
while(($i<=$max) and ($epsilon>$tol)){
$i=$i+1;
$m=$a-$Fa*($b-$a)/($Fb-$Fa);
$Fm=f($m);
$epsilon=abs($m-$a);
echo"<tr>
<td width=46><font face=Verdana size=2>$i</font></td>
<td width=123><font face=Verdana size=2>$a</font></td>
<td><font face=Verdana size=2>$b</font></td>
<td><font face=Verdana size=2>$m</font></td>
<td width=160><font face=Verdana size=2>$Fa</font></td>
<td width=130><font face=Verdana size=2>$Fb</font></td>
<td width=113><font face=Verdana size=2>$epsilon</font></td>
</tr>
";
if($Fa*$Fm<=0){
$b=$m;
$Fb=$Fm;
}
else{
$a=$m;
$Fa=$Fm;
}
}
echo"</table>";
if($i<$max){
echo"<h2>Iterasi Terpenuhi</h2>Hasil Akhir : $m";
}
else{
echo"Toleransi tidak terpenuhi";
}
}
?>
Hasil Perhitungan :
Pencarian akar dengan Metode Regula False
Nilai penaksiran (a) : -2 Nilai penaksiran (b) : 5
Toleransi : 0.00001
Maksimum Iterasi : 20
Iterasi | a | b | m | f(a) | f(b) | abs[f(a)-fb)]/2 |
1 | -2 | 5 | 0.052856345041007 | 3.6850398632615 | -8.8805150062466 | 2.052856345041 |
2 | -2 | 0.052856345041007 | -0.19238363588817 | 3.6850398632615 | -0.49995072169727 | 1.8076163641118 |
3 | -2 | -0.19238363588817 | -0.40926101899594 | 3.6850398632615 | -0.50240913923385 | 1.5907389810041 |
4 | -2 | -0.40926101899594 | -0.60746113799927 | 3.6850398632615 | -0.52449188985726 | 1.3925388620007 |
5 | -2 | -0.60746113799927 | -0.79899573063523 | 3.6850398632615 | -0.58768534555702 | 1.2010042693648 |
6 | -2 | -0.79899573063523 | -0.99725106718067 | 3.6850398632615 | -0.72857601176415 | 1.0027489328193 |
7 | -2 | -0.99725106718067 | -1.2197402566103 | 3.6850398632615 | -1.0507802550867 | 0.78025974338971 |
8 | -2 | -1.2197402566103 | -1.4951964512239 | 3.6850398632615 | -2.0108160099007 | 0.50480354877607 |
9 | -2 | -1.4951964512239 | -1.8829473045189 | 3.6850398632615 | -12.207128981803 | 0.11705269548111 |
10 | -1.8829473045189 | -1.4951964512239 | -1.7788172123876 | 4.481792730257 | -12.207128981803 | 0.10413009213127 |
11 | -1.7788172123876 | -1.4951964512239 | -1.6851804517184 | 6.0164856616966 | -12.207128981803 | 0.093636760669185 |
12 | -1.6851804517184 | -1.4951964512239 | -1.60015183342 | 9.8894910293743 | -12.207128981803 | 0.085028618298395 |
13 | -1.60015183342 | -1.4951964512239 | -1.5222473822419 | 35.155525078115 | -12.207128981803 | 0.077904451178152 |
14 | -1.60015183342 | -1.5222473822419 | -1.5500964778572 | 35.155525078115 | -19.559337223672 | 0.050055355562886 |
15 | -1.60015183342 | -1.5500964778572 | -1.5787980688342 | 35.155525078115 | -47.25253466752 | 0.021353764585851 |
16 | -1.5787980688342 | -1.5500964778572 | -1.5579222802766 | 126.04891737193 | -47.25253466752 | 0.020875788557638 |
17 | -1.5787980688342 | -1.5579222802766 | -1.5658140566097 | 126.04891737193 | -76.613441648733 | 0.012984012224526 |
18 | -1.5787980688342 | -1.5658140566097 | -1.573773030268 | 126.04891737193 | -199.64424149448 | 0.0050250385661821 |
19 | -1.573773030268 | -1.5658140566097 | -1.568774899366 | 337.01487547523 | -199.64424149448 | 0.0049981309020206 |
20 | -1.573773030268 | -1.568774899366 | -1.5717451558479 | 337.01487547523 | -493.63047754194 | 0.0020278744200939 |
21 | -1.5717451558479 | -1.568774899366 | -1.5697216760175 | 1055.0020571783 | -493.63047754194 | 0.0020234798304466 |
Demikian Pencarian nilai akar dengan metode Regulafalse
Tidak ada komentar:
Posting Komentar