Anda di halaman 1dari 12

PRAKTIKUM KOMPUTASI BIOMEDIS

METODE BISEKSI DAN REGULA FALSI

1 Maret 2019

Dosen Pembimbing : Endah Purwanti S.Si, MT.


Disusun Oleh : Evangelina Tessia Pricilla
NIM : 081611733026

PROGRAM STUDI S1-TEKNOBIOMEDIK


DEPARTEMEN FISIKA
FAKULTAS SAINS DAN TEKNOLOGI
UNIVERSITAS AIRLANGGA
DASAR TEORI

Metode numerik merupakan teknik yang digunakan untuk menyelesaikan permasalahan


matematik menggunakan operasi perhitungan. Pada umumnya, hasil dari penyelesaian numerik
merupakan nilai perkiraan atau pendekatan dari penyelesaian analitis atau eksak. Pendekatan ini
diindikasikan melalui nilai kesalahannya yang harus terhitung kecil dibandingkan tingkat
kesalahan yang ditetapkan. Berdasarkan Mohamad (n.d.), Metode Numerik terdiri dari berbagai
penyelesaian persamaan (non linier, linier, simultan, diferensi numerik, integrasi numeric,
interpolasi, dan regresi).

a. Metode Biseksi
Metode Biseksi merupakan deret hasil suatu iterasi {xn | n ≥ 0} dikatakan menuju ke
titik y dengan derajat p ≥ 1, jika
|y – xn+1| ≤ c |y-xn|p dengan n ≥ 0

Untuk beberapa nilai c>0. Jika p = 1, deret tersebut dikatakan menuju ke titik y secara
linier. Pada kasus ini diperlukan nilai c < 1; c disebut laju linier dari xn menuju y. Selain
definisi di atas, metode biseksi juga dapat dinyatakan sebagai berikut:

|y – xn+1| ≤ cn |y-x0| dengan n ≥ 0

Sedangkan, tingkat kelajuan metode biseksi dinyatakan dalam

𝟏
|y – cn| ≤ (𝟐)n |b-a|

(Lukmanto, 2001)
Gambar 1 Grafik Metode Biseksi untuk Mencari Akar (Lukmanto, 2001)

Algoritma metode biseksi (Sidiq, n.d.):

(1) Mendefinisikan fungsi f(x) yang akan dicari akarnya.


(2) Menentukan nilai a dan b
(3) Menentukan toleransi e dan iterasi maksimum N
(4) Menghitung f(a) dan f(b)
(5) Apabila f(a).f(b) > 0, maka proses dihentikan karena tidak ada akar, bila tidak
sesuai dengan pengondisian maka pengoperasian bisa dilanjutkan.
𝑎+𝑏
(6) Menghitung x = 2

(7) Menghitung f(x)


(8) Apabila f(x).f(a) < 0, maka b = x dan f(b) = f(x), bila tidak a = x dan f(a) = f(x)
(9) Apabila |b-a|<e atau iterasi > iterasi maksimum maka proses dihentikan dan
didapatkan akar x. Jika kondisi tersebut masih belum terpenuhi, maka
pengoperasian biseksi diulangi dari langkah 6.
b. Metode Regula Falsi (False Position) (Sidiq, n.d.)
Metode Regula Falsi merupakan metode pencarian akar persamaan dengan
memanfaatkan kemiringan dan selisih tinggi dari dua titik batas rentang. Dua titik a
dan b pada fungsi f(x) digunakan untuk mengestimasi posisi c dari akar interpolasi
linier.
Algoritma metode regula falsi dijelaskan sebagai berikut:

1. Mendefinisikan fungsi f(x)


2. Menentukan batas bawah (a) dan batas atas (b)
3. Menentukan toleransi error (e) dan iterasi maksimum (n)
4. Menghitung Fa = f(a) dan Fb = f(b)
5. Untuk iterasi = 1 s/d n atau error > e
𝐹𝑏.𝑏−𝐹𝑏.𝑎
- x=b- 𝐹𝑏−𝐹𝑎

- Menghitung Fx sebagai f(x)


- Menghitung error = |Fx|
- Apabila Fx.Fa < 0, maka b = x dan Fb = Fx jika tidak a = x dan Fa = Fx
- Akar persamaan adalah x

HASIL DAN PEMBAHASAN

a. Metode Biseksi

Modul:

def f(x): #mendefinisikan fungsi dengan parameter x


y = x ** 3 + (2 * x) ** 2 + 10 * x – 20 #fungsi yang didefinisikan dalam f(x) disimpan
dalam variabel y
return (y)#nilai yang disimpan pada variabel y akan dikeluarkan sebagai output
pemanggilan fungsi
Kode:

from fungsi import f #mengimport fungsi f(x) dari modul fungsi


a = 0.5 #memberikan nilai pada masing-masing variabel
b = 1.5
n=1
x = (a+b)/2
while (n <= 10): #pengulangan akan terus berlanjut hingga n = 10
f(x)#memanggil fungsi dengan parameter x
e = f(x)#mendefinisikan fungsi sebagai variabel e. Hal ini dikarenakan f(x) tidak dapat
langsung dioperasikan dengan operasi aritmatika pada koding
f(b) #memanggil fungsi dengan parameter b sebagai ganti x
d = f(b) #mendefinisikan fungsi sebagai variabel d
if e*d < 0: #pengondisian apabila nilai f(x) dikali dengan f(b) bernilai negative maka
nilai a diganti dengan x pada fungsi.
a=x
else:
b = x #pengondisian apabila nilai f(x) dikali dengan f(b)) bernilai positif, maka nilai
b diganti dengan x pada fungsi f(x)
print(n, x, e)#menampilkan nilai n, x, dan e setiap kali pengulangan
x = (a + b) / 2 #memproses nilai x baru dengan parameter a dan b yang telah diganti
pada proses sebelumnya
n = n +1 #menambah nilai n sehingga dapat mencapai nilai maksimal untuk
memberhentikan pengulangan
Hasil:

1 1.0 -7.0

2 1.25 -2.421875

3 1.375 0.130859375

4 1.3125 -1.168701171875

5 1.34375 -0.524810791015625
6 1.359375 -0.19845962524414062

7 1.3671875 -0.03417253494262695

8 1.37109375 0.04825013875961304

9 1.369140625 0.007015503942966461

10 1.3681640625 -0.013584337197244167

B. Regula Falsi

Kode:

from fungsi import f #memanggil fungsi f dari modul fungsi


a = 0.5 #mendefinisikan variabel dengan nilai
b = 1.5
maxter = 10 #jumlah maksimum iterasi
n=1
while (n <= maxter):
c = f(a)#fungsi dengan parameter a didefinisikan dengan variabel c
d = f(b)#fungsi dengan parameter b didefinisikan dengan variabel d
x = b - ((d * b - d * a) / (d - c))#operasi untuk mendefinisikan variabel x
f(x)
e = f(x) #mendefinisikan fungsi dengan parameter x sebagai variabel e
f(a)
f(b)

if e*d < 0: #apabila variabel e dikalikan dengan d menghasilkan nilai negative maka
nilai a digantikan dengan x
a=x
else: #apabila variabel e dikalikan dengan d menghasilkan nilai positif maka nilai b
digantikan dengan x
b=x
print(n, x, e)
n = n +1
Hasil:

1 1.3333333333333333 -0.7407407407407405

2 1.3674775928297054 -0.02805792199207957

3 1.3687584158316919 -0.0010482940599203516

4 1.3688062522235154 -3.91459299287078e-05

5 1.3688080385300652 -1.4617790498050454e-06

6 1.3688081052339134 -5.458539931169071e-08

7 1.3688081077247523 -2.0383161825066054e-09

8 1.3688081078177645 -7.611689056830073e-11

9 1.368808107821238 -2.8421709430404007e-12

10 1.3688081078213676 -1.0658141036401503e-13

TUGAS

(i) Penyelesaian Masalah dengan Biseksi dan Regula Falsi

Modul:

def f(x):
y = (150*x**2*0.01*0.75)/(0.1**2)+(1.75*x*1*0.75**2)/(0.1)-(810.5/20)
return (y)

1. Biseksi
Kode:

from fungsitugas import f #memanggil fungsi f dari modul fungsitugas


a = float(input("Nilai minimum ="))#menginput nilai minimum (a) yang didefinisikan
sebagai tipe float
b = float (input("Nilai maksimum =")) #menginput nilai maksimum (b) yang
didefinisikan sebagai tipe float
c = float (input("Inputkan iterasi maksimum =")) #menginput nilai maksimal iterasi
yang didefinisikan sebagai tipe float
d = float (input("Inputkan nilai maksimum error =")) #Menginput nilai maksimal
error yang didefinisikan sebagai tipe float
n = 1 #pengulangan pertama dianggap sebagai nomor 1
while n <= c: #apabila nilai n lebih dari atau sama dengan nilai c (iterasi maksimal),
maka pengoperaisan pada blok akan berlanjut
r = (a + b) / 2 #pengoperasian yang dilakukan dengan nilai a dan b pada parameter r
f(r) #mengoperasikan fungsi dengan parameter r
f(a)
y = f(r)#mendefinisikan fungsi dengan parameter r sebagai y
ya = f(a) #mendefinisikan fungsi dengan parameter a sebagai ya
if abs(y) <= d: #apabila nilai absolut variabel y kurang dari atau sama dengan nilai
maksimum error maka penghitungan dihentikan
exit ()
else:
if y*ya < 0: #apabila hasil kali fungsi a dengan fungsi r bernilai negatif, maka
variabel b didefinisikan sebagai r
b=r
else:
a = r #jika berbeda dari kondisi pertama, maka r didefinisikan sebagai a
print (n, r, abs(y))
n=n+1
print ("algorithm fails: no convergence")

Hasil:
Nilai minimum = 0.1
Nilai maksimum = 0.9
Inputkan iterasi maksimum = 100
Inputkan nilai maksimum error = 0.01
1 0.5 7.478125000000006
2 0.7 21.49062499999998
3 0.6 5.881249999999994
4 0.55 1.0796874999999986
5 0.575 2.330468749999987
6 0.5625 0.6078124999999943
7 0.55625 0.24033203124999858
8 0.559375 0.1826416015624872
9 0.5578125 0.02911987304687358
10 0.55859375 0.07669219970702557
11 0.558203125 0.023768997192377128
12 0.5580078125000001 0.0026797294616613954
13 0.55810546875 0.010543560981744804

2. Regula Falsi

Kode:

from fungsitugas import f #memanggil modul fungsitugas dengan fungsi f


a = float(input("Nilai minimum =")) #sebagai variabel untuk input nilai dari pengguna
dan didefinisikan sebagai tipe float
b = float (input("Nilai maksimum ="))
c = float (input("Inputkan iterasi maksimum ="))
d = float (input("Inputkan nilai maksimum error ="))
n=1
while n <= c: #apabila nilai n kurang dari atau sama dengan c, maka pengulangan operasi
pada blok akan terus berjalan
r = b - ((f(b) * b - f(b) * a) / (f(b) - f(a))) #mendefinisikan pengoperasian variabel r
untuk digunakan dalam fungsi
f(r)
f(a)
y = f(r)#mendefinisikan f(r) sebagai variabel y
ya = f(a) #mendefinisikan f(a) sebagai variabel ya
if abs(y) <= d: #apabila nilai absolut dari y lebih rendah atau sama dengan d, maka
pengoperasian dihentikan
exit ()
else:
if y*ya < 0: #apabila nilai kali antara y dengan ya menghasilkan nilai negatif, maka
variabel b digantikan dengan r
b=r
else:
a = r #apabila nilai kali antara y dengan ya menghasilkan nilai positif, maka
variabel a digantikan dengan r
print (n, r, abs(y)) #menunjukkan nilai yang dihasilkan per pengulangan
n=n+1
print ("algorithm fails: no convergence")

Hasil

Nilai minimum = 0.1

Nilai maksimum = 0.9

Inputkan iterasi maksimum = 100

Inputkan nilai maksimum error = 0.01

1 0.41399744572158365 17.167900573978656

2 0.5228835240540473 4.619557590785291

3 0.5500704825227787 1.0702709165966198

4 0.5562578536818733 0.23927177725807525

5 0.5576355699067472 0.0530641158929015
6 0.5579408382853579 0.01174723263962818

Kesimpulan (hasil dari kedua metode):

X = 0.5579408382853579 (dibulatkan menjadi 0.558)

(1-ε) = 0.558

1 – 0.558 = ε

ε = 0.442

Jadi, nilai porositasnya adalah 0.442.

(II) Perbandingan Biseksi dengan Regula Falsi

Metode Biseksi:

a. Kelebihan:
- Selalu berhasil menemukan akar persamaan. Dengan kata lain, metode biseksi selalu
konvergen.
- Persamaan x lebih sederhana dibandingkan Regula Falsi
b. Kekurangan:
- Konvergennya lebih lambat. Dengan kata lain, pemrosesan yang dibutuhkan lebih
panjang dan membutuhkan waktu lebih lama dibandingkan Regula Falsi.

Metode Regula Falsi:

a. Kelebihan:
- Membutuhkan iterasi yang lebih sedikit dibandingkan Biseksi untuk mendapatkan
nilai akar persamaan.
- Tidak membutuhkan differensiasi.
b. Kelemahan:
- Tidak dapat digunakan untuk mencari bilangan imajiner atau kompleks.
- Jika persamaan memiliki lebih dari satu akar, maka proses pencarian harus dilakukan
satu per satu.
- Rumus yang digunakan untuk mencari akar lebih rumit dibandingkan biseksi.

KESIMPULAN

Metode Biseksi dan Regula Falsi memiliki algoritma yang sama. Akan tetapi, keduanya
memiliki rumus persamaan variabel yang berbeda. Sebagai contoh, persamaan variabel akar
𝑎+𝑏 𝐹𝑏.𝑏−𝐹𝑏.𝑎
biseksi ditunjukkan sebagai berikut: x = , sedangkan regula falsi adalah x = b - .
2 𝐹𝑏−𝐹𝑎

Keduanya termasuk dalam penyelesaian masalah dengan persamaan non linier pada metode
numerik dan memiliki kelebihan serta kekurangannya masing-masing.

DAFTAR PUSTAKA

Luknanto, M.S.c, Ph.D., I. (2001). Metoda Numerik. Yogyakarta: Universita Gajah Mada, pp.10-
11.

Sidiq, M. (n.d.). Metode Numerik. [ebook] Semarang: Universitas Dian Nuswantoro, pp.3-5, 14-21.
Available at: http://dinus.ac.id/repository/docs/ajar/13-METODE_NUMERIK.pdf [Accessed 4 Mar.
2019].

Anda mungkin juga menyukai