Bisection Method
Bisection Method
MN 03 (Akar-Bisection Method)
1-1
3. AKAR PERSAMAAN
Pengertian
Persoalan mencari akar persamaan pada dasarnya sama dengan mencari
solusi persamaan non linier. Mencari akar secara singkat dapat dirumuskan
sebagai berikut: tentukan nilai x yang memenuhi persamaan f(x) = 0 yaitu
nilai x = s sedemikian sehingga f(s) sama dengan nol.
y = f(x)
Akar
Revisi : 00 - 20/12/2005
Metode Numerik
MN 03 (Akar-Bisection Method)
2-2
Metode Tertutup
Pertama ditetapkan selang (a,b) yang mengurung akar sejati.
Strategi pencarian akarnya adalah mengurangi lebar selang secara
sistematis sehingga lebar selang tersebut semakin sempit, dan
karenanya akan menuju ke akar yang benar.
Dalam selang yang telah ditetapkan mungkin akan terdapat lebih dari
satu akar atau tidak ada akar sama sekali, karena itu perlu pengujian
selang sbb.:
(1) f(a) f(b) < 0, maka terdapat akar sebanyak bilangan ganjil.
(2) f(a) f(b) > 0, maka terdapat akar sebanyak bilangan genap atau tidak
ada akar sama sekali.
Ada dua metode klasik yang termasuk ke dalam metode tertutup untuk
mencari akar, yaitu:
Metode Bagi Dua (Bisection Method),
Metode Posisi Palsu (Regula Falsi).
Revisi : 00 - 20/12/2005
Metode Numerik
MN 03 (Akar-Bisection Method)
3-3
XL + XR
2
5. Periksa apakah nilai mutlak (XR XL) < toleransi galat. Jika ya, maka
tuliskan X sebagai hasil perhitungan, dan akhiri program; jika tidak,
lanjutkan ke langkah berikutnya.
6. Periksa apakah jumlah iterasi > jumlah iterasi maksimum. Jika ya,
akhiri program. Jika tidak, lanjutkan ke langkah berikutnya.
7. Periksa lokasi akar
Jika f(xL) * f(x) < 0, akar berada pada bagian interval kiri, maka
tetapkan nilai xR yang baru yaitu xR = x dan kembali ke langkah 2.
Jika f(xL) * f(x) > 0, akar berada pada bagian interval kanan, maka
tetapkan xL = x dan kembali ke langkah 2.
Jika f(xL) * f(x) = 0, berarti akar yang dicari adalah x.
8. Antara xL dan xR tidak ada akar
Jika f(xL) * f(xR) > 0, maka tidak terdapat akar antara xL dan xR, dan
komputasi berhenti tanpa memperoleh hasil. Untuk menghindari hal ini
maka nilai xL dan xR harus ditentukan secara benar.
Revisi : 00 - 20/12/2005
Metode Numerik
MN 03 (Akar-Bisection Method)
4-4
yes
Tulis
Fa * Fb > 0
Iter = Iter + 1
m = (a + b)/2
Fm = F(m)
no
yes
2
yes
Fa * Fm < 0
b=m
Fb = Fm
no
a=m
Fa = Fm
Revisi : 00 - 20/12/2005
Metode Numerik
MN 03 (Akar-Bisection Method)
5-5
3
Tulis hasil
m, F(m)
1
SELESAI
Revisi : 00 - 20/12/2005
Metode Numerik
MN 03 (Akar-Bisection Method)
6-6
End;
{**********************************************}
{**********************************************
*
Bisection method subroutine
*
* ------------------------------------------*
* This routine iteratively seeks the zero of
*
* function Y(x) using the method of interval
*
* halving until the interval is less than e
*
* in width. It is assumed that the function
*
* Y(x) is available from a function routine.
*
* ------------------------------------------*
* Input values: range (x0,x1), and e.
*
* Output values: root x, Y(x) and number of
*
* steps m.
*
**********************************************}
PROCEDURE Bisect;
Label 100, fin;
Var y0,yy:double;
Begin
m:=0;
100: y0:=Y(x0);
x:=(x0+x1)/2; yy:=Y(x);
m:=m+1;
if yy*y0=0 then goto fin;
if yy*y0<0 then x1:=x;
if yy*y0>0 then x0:=x;
if ABS(x1-x0)>e then goto 100;
fin: End;
{main program}
BEGIN
clrscr;
writeln;
writeln(' What is the initial range (X0,X1):');
writeln;
write(' X0 = '); read(x0);
write(' X1 = '); read(x1);
writeln;
write(' Convergence criterion: '); read(e);
Drs. Ign. Djoko Irianto, M.Eng.
Revisi : 00 - 20/12/2005
Metode Numerik
MN 03 (Akar-Bisection Method)
7-7
Revisi : 00 - 20/12/2005
Metode Numerik
MN 03 (Akar-Bisection Method)
8-8
START
XL - 10
XR - 9
YL f(XL)
YR f(XR)
YL*YR < 0
?
YES
NO
XL XL+1
XR XR+1
A ROOT LIES
BETWEEN XL
AND XR
XR 10
NO
STOP
YES
STOP
PROGRAM FORTRAN UNTUK FLOWCHART DI ATAS, SBB.:
F(X) = X**4 9.0 * X**3 2.0*X**2 + 120.0*X 130.0
XL = -10.0
XR = - 9.0
10 YL = F(XL)
YR = F(XR)
Drs. Ign. Djoko Irianto, M.Eng.
Revisi : 00 - 20/12/2005
Metode Numerik
MN 03 (Akar-Bisection Method)
20
9-9
YL*YR < 0
?
YES
A ROOT LIES
BETWEEN XL
AND XR
NO
XR 10
?
YES
NO
XL XR
YL YR
STOP
STOP
Revisi : 00 - 20/12/2005
Metode Numerik
MN 03 (Akar-Bisection Method)
10
20
10 - 10
x lama
x baru
r
r
ea =
x baru
r
100%
dimana
x baru
adalah akar untuk iterasi sekarang
r
x lama
adalah akar untuk iterasi sebelumnya
r
x baru
x lama
=
r
r
dan
x baru
=
r
xR xL
2
xR + xL
2
ea =
xR xL
100 %
xR + xL
iterasi pencarian akar akan dihentikan jika nilai ea < es . es adalah toleransi
galat yang telah ditentukan sebelumnya.
Drs. Ign. Djoko Irianto, M.Eng.
Revisi : 00 - 20/12/2005
Metode Numerik
MN 03 (Akar-Bisection Method)
11 - 11
f(b)");
Revisi : 00 - 20/12/2005
Metode Numerik
MN 03 (Akar-Bisection Method)
12 - 12
{
it = it + 1;
m = (a + b) / 2;
F_m = f(m);
epsilon = fabs(m - a);
printf("%2d %6.5f %6.5f %6.5f %6.5f %6.5f %6.2e\n",
it, a, m, b, F_a, F_b, epsilon);
if(F_a * F_m <= 0) {b = m; F_b = F_m;}
else {a = m; F_a = F_m; }
}
while(it <= iter_max && epsilon > tol);
if(it <= iter_max)
{
printf("Toleransi terpenuhi \n");
printf("Hasil akhir = %g \n", m);
}
else printf("Toleransi tidak terpenuhi \n");
}
}
Revisi : 00 - 20/12/2005
Metode Numerik
MN 03 (Akar-Bisection Method)
13 - 13
Contoh hasil eksekusi program untuk mencari akar dengan metode bagi
dua menggunakan bahasa C++ yang dilakukan dalam selang [0,1],
toleransi 10-5 dan jumlah iterasi maksimum sebanyak 30, adalah sbb.:
Batas bawah
Batas atas
Toleransi
Jumlah iterasi maksimum
It
a
m
1 0.00000 0.50000
2 0.50000 0.75000
3 0.75000 0.87500
4 0.87500 0.93750
5 0.93750 0.96875
6 0.96875 0.98438
7 0.96875 0.97656
8 0.96875 0.97266
9 0.97266 0.97461
10 0.97461 0.97559
11 0.97461 0.97510
12 0.97461 0.97485
13 0.97485 0.97498
14 0.97498 0.97504
15 0.97498 0.97501
16 0.97501 0.97502
17 0.97501 0.97501
Toleransi terpenuhi
Hasil akhir = 0.975014
=
0
=
1
=
0.00001
=
30
b
f(a)
1.00000 -0.50000
1.00000 -0.45370
1.00000 -0.31840
1.00000 -0.17750
1.00000 -0.07543
1.00000 -0.01345
0.98438 -0.01345
0.97656 -0.01345
0.97656 -0.00511
0.97656 -0.00089
0.97559 -0.00089
0.97510 -0.00089
0.97510 -0.00036
0.97510 -0.00009
0.97504 -0.00009
0.97504 -0.00002
0.97502 -0.00002
f(b)
0.05741
0.05741
0.05741
0.05741
0.05741
0.05741
0.02078
0.00337
0.00337
0.00337
0.00124
0.00018
0.00018
0.00018
0.00004
0.00004
0.00001
epsilon
5.00e-01
2.50e-01
1.25e-01
6.25e-02
3.12e-02
1.56e-02
7.81e-03
3.91e-03
1.95e-03
9.77e-04
4.88e-04
2.44e-04
1.22e-04
6.10e-05
3.05e-05
1.53e-05
7.63e-06
Latihan Soal.
Hitung akar persamaan berikut:
1. f(x) = ex 5 x2
2. f(x) = ex + x2 3 x 2
3. f(x) = -0.9x2 + 1.7x + 2.5
4. f(x) = x3 98
5. f(x) = x2 * sin(x) 4.1
Revisi : 00 - 20/12/2005
0.605263
-0.390266
-0.971214
4.61044
-3.48577
Metode Numerik