Anda di halaman 1dari 30

BAB I

Bahan Kuliah Metode Numerik

A. Pengertian Numerik
Dalam bidang ilmu pengetahuan dan teknologi, permasalahan – permasalahan umumnya
diformulasikan/dimodelkan dalam bentuk persamaan – persamaan matematis. Metode
numerik adalah metode atau teknik yang digunakan untuk menyelesaikan permasalahan
yang dimodelkan / diformulasikan secara matematis khususnya persamaan matematis
yang kompleks yang tidak bisa diselesaikan secara analitis. Jika persamaan matematis
tersebut sederhana maka tentu penyelesaiannya dapat dilakukan secara analitis saja yang
menghasilkan nilai eksak.
Contoh :
Misalkan x 2 2 x 4 0
Maka persamaan ini bisa dikategorikan sebagai persamaan analitis karena sederhana dan
dapat diselesaikan hanya dengan metode-metode matematis yang ada dan menghasilkan nilai x
yang eksak yaitu x = 2

Dalam dunia nyata, model formulasi matematis yang dihasilkan umumnya sangat
kompleks dan melibatkan banyak variabel sehingga sulit diselesaikan secara analitis.
Untuk menyelesaikan persamaan matematis yang kompleks tersebut biasanya digunakan
teknik pendekatan yang dikenal dengan metode numerik . Dengan demikian hasil
penyelesaian dengan metode numerik adalah merupakan suatu pendekatan atau perkiraan
dan bukan nilai eksak sehingga terdapat deviasi atau kesalahan (error) terhadap nilai
eksak. Disamping itu, untuk menyelesaikan suatu tipe persamaan matematis yang
kompleks, dibutuhkan beberapa proses hitungan atau algoritma. Proses hitungan atau
algoritma tersebut biasanya melibatkan proses iterasi dalam jumlah yang sangat banyak
dan berulang-ulang sehingga menghabiskan banyak tenaga dan waktu. Karena itu, dalam
perhitungan numerik, efisiensi dan waktu yang dibutuhkan oleh suatu proses untuk
mendapatkan hasil yang mendekati dan akumulasi kesalahan (error) yang dihasilkan
merupakan hal paling penting. Untuk mengatasinya maka penyelesaian dengan metode
numerik biasanya menggunakan bantuan komputer.
B. Definisi Kesalahan
Berdasarkan definisinya, maka hasil perhitungan numerik merupakan suatu pendekatan
sehingga terdapat perbedaan antara hasil dengan nilai eksak yang disebut kesalahan
( error). Yang terpenting dalam penyelesaian numerik adalah bahwa nilai kesalahan
tersebut harus cukup kecil, sehingga sangat diperlukan pengetahuan dan pemahaman
yang mendalam terhadap bentuk kesalahan (error) yang timbul akibat penggunaan
metode numerik dalam menyelesaikan suatu persamaan matematis yang kompleks.

Secara umum terdapat tiga macam kesalahan(error) dalam penyelesaian secara numerik
yaitu
1. Kesalahan pembulatan (Roundoff )
2. Kesalahan pemotongan (Truncation)
3. Kesalahan pembawaan (Cancellation)

Kesalahan pembulatan terjadi karena tidak diperhitungkannya beberapa angka terakhir


dari suatu bilangan. Hal ini terjadi apabila bilangan perkiraan digunakan untuk mengganti
bilangan eksak misalnya suatu bilangan dibulatkan pada posisi ke n dengan membuat
angka-angka disebelah kanan dari bilangan pada posisi ke n ditetapkan adalah nol,
sedangkan angka pada posisi ke n tersebut tidak berubah atau dinaikan satu digit yang
bergantung apakah nilai tersebut lebih kecil atau lebih besar dari setengah bilangan posisi
ke – n.

Contoh :
564789097 dibulatkan menjadi 565000000
3.1415926 dibulatkan menjadi 3.14

Kesalahan pemotongan terjadi karena tidak dilakukannya hitungan sesuai prosedur


matematik yang benar. Misalnya operasi tak berhingga digantikan dengan operasi
berhingga. Sebagai contoh, misal operasi aljabar yang melibatkan deret tak hingga.
Contoh :
x2 x3 x4
e x 1 x    .........
2! 3! 4!
x
Nilai eksak e akan didapat bila semua suku dari deret diperhitungkan. Namun dalam praktek tentu
sangat sulit untuk memperhitungkan semua suku. Jadi jika kita hanya memperhitungkan beberapa
suku maka nilainya bukan nilai eksak. Jadi kesalahan ini termasuk jenis kesalahan pemotongan.

Kesalahan Bawaan adalah kesalahan dari nilai data. Kesalahan ini bisa terjadi karena
kekeliruan dalam menyalin data, salah membaca skala atau kurangnya pengertian
terhadap data yang diukur.

C. Kesalahan Absolut dan Kesalahan Relatif


Dalam penyelesaian masalah secara numerik, kita tidak hanya perlu mengenal dan
mengetahui tipe kesalahan tetapi juga diperlukan penentuan besar tingkat kesalahan yaitu
perbedaan nilai eksak dan nilai perkiraan. Berdasarkan hubungan antara nilai eksak, nilai
perkiraan dan perbedaannya atau kesalahan ( error), terdapat dua tipe persamaan
kesalahan yaitu kesalahan absolut dan kesalahan relatif. Hubungan tersebut dapat
dirumuskan sebagai berikut:
p p* Ee
Dengan :
P : nilai eksak
*
P : nilai perkiraan
Ee : kesalahan terhadap nilai eksak.

Dari hubungan tersebut dapat dirumuskan persamaan kesalahan yaitu


Ee p p*
Persamaan ini disebut kesalahan absolut. Kesalahan absolut ini tidak menunjukkan
besarnya tingkat kesalahan. Hal ini dapat dilihat pada contoh berikut yang menunjukkan
besar kesalahan pengukuran panjang jalan dan pensil yang sama:
Contoh 1 :
1. Panjang Jalan sebenarnya 10 m = 1000 cm
Panjang jalan hasil pengukuran = 9.99 m = 999 cm
Jadi besar kesalahannya adalah 1 cm
Ee = 1000 – 999 = 1 cm
2. Panjang pensil sebenarnya 10 cm
Panjang pensil hasil pengukuran = 9 cm
Jadi kesalahan absolutnya adalah 1 cm
Terlihat bahwa kesalahan absolut kedua hasil pengukuran tersebut adalah sama. Sehingga
tidak dapat digunakan untuk menentukan besar tingkat kesalahan.

Untuk menyatakan besar tingkat kesalahan, kita menggunakan kesalahan relatif yaitu
membandingkan kesalahan yang terjadi dengan nilai eksaknya atau dirumuskan sebagai
berikut :

Ee
e  ( e adalah kesalahan relatif terhadap nilai eksak)
p
biasanya kesalahan relatif dinyatakan dalam persen yaitu nilai kesalahan relatif dikalikan
100 %. Nilai kesalahan relatif dapat ditunjukkan untuk kedua contoh diatas sebagai
berikut :

1. Panjang Jalan sebenarnya 10 m = 1000 cm


Panjang jalan hasil pengukuran = 9.99 m = 999 cm
Ee 1
Jadi besar kesalahan relatifnya adalah e  100%  100% 0.1%
p 1000
2. Panjang pensil sebenarnya 10 cm
Panjang pensil hasil pengukuran = 9 cm
Ee 1
Jadi kesalahan relatifnya adalah e  100 %  100 % 10%
p 10
Dari perhitungan diatas meskipun kedua kesalahan adalah sama yaitu 1 cm namun
kesalahan relatif pada pengukuran pensil lebih besar dari kesalahan relatif pada
pengukuran jalan jadi dapat disimpulkan bahwa kesalahan 1 cm pada pengukuran
jembatan tidak akan berpengaruh besar jika dibanding kesalahan 1 cm pada pengukuran
panjang pensil dan dari kedua jenis kesalahan tersebut dapat disimpulkan kesalahan
relatif dapat menunjukkan besar tingkat kesalahan suatu pengukuran.

Dari persamaan – persamaan kesalahan diatas, nilai kesalahan(error) dibandingkan


terhadap nilai eksak, namun ternyata bahwa nilai eksak hanya dapat diketahui bila suatu
fungsi bisa diselesaikan secara analitis sedangkan dalam metode numerik biasanya nilai
eksak tersebut tidak diketahui. Dengan demikian tingkat kesalahan dinyatakan
berdasarkan perkiraan terbaik dari nilai eksak sehingga rumus kesalahan relatif berubah
menjadi :
Ea
a  * 100 %
p
dimana
*
p adalah nilai perkiraan terbaik.
Ea adalah kesalahan terhadap nilai perkiraan terbaik
Jadi besar tingkat kesalahan diperoleh dari perbandingan antara nilai kesalahan terhadap perkiraan
terbaik dengan nilai perkiraan terbaik ( approximate value).

Dalam metode numerik, sering pendekatan dilakukan secara iteratif. Pada pendekatan
tersebut perkiraan sekarang dibuat berdasarkan perkiraan sebelumnya, jadi kesalahan
adalah perbedaan antara perkiraan sebelumnya dan perkiraan terkini. Dengan demikain
kesalahan relatifnya dirumuskan sebagai berikut :
p *n 1 p *n
a  100%
p *n 1
Dimana :
p *n 1 adalah nilai perkiraan pada interasi ke n + 1
n
p* adalah nilai perkiraan pada iterasi ke n
Contoh 2.
Hitung kesalahan yang terjadi dari nilai e x dengan x = 0.5 apabila hanya diperhitungkan
beberapa suku pertama saja. Diketahui nilai eksak dari e0.5 = 1.648721271

Penyelesaian :
Nilai e x dapat dihitung berdasarkan deret berikut :
2 3 4
x x x
e x 1 x    ..................
2! 3! 4!

a. Diperhitungkan satu suku pertama


e x 1
Kesalahan relatif terhadap nilai eksak sebagai berikut :
Ee 1.648721271 1
e  100 %  100% 39 .35 %
p 1.648721271
b. Diperhitungkan hanya dua suku pertama
e 1 x
x

Untuk x = 0.5 maka :


e 10.5 =1.5
0. 5

Kesalahan relatif terhadap nilai eksak sebagai berikut :


Ee 1.648721271 1.5
e  100 %  100% 9.025%
p 1.648721271
Kesalahan relatif berdasarkan perkiraan terbaik sebagai berikut :
Ea 1.5 1
e  100%  100 % 33.33 %
p* 1 .5
c. Diperhitungkan hanya 3 suku pertama
x2
e 1 x 
x

2!
Untuk x = 0.5, maka
0 .5 2
e 0.5 1 0.5  = 1.625
2!
Kesalahan relatif terhadap nilai eksak sebagai berikut :
Ee 1.648721271 1.625
e  100 %  100 % 1.44 %
p 1.648721271

Kesalahan relatif berdasarkan perkiraan terbaik sebagai berikut :


Ea 1.625 1.5
e  100%  100 % 7.69%
p* 1.625
Jika ditabelkan hasil perhitungan kesalahan sebagai berikut :

Suku Hasil 
e 
a
1 1.000000000 39.3 -
2 1.500000000 9.02 33.3
3 1.625000000 1.44 7.69
4 1.645833333 0.175 1.27
5 1.648437500 0.0172 0.158
6 1.648697170 0.00142 0.0158

D. Penentuan Kesalahan ( error ) Suatu Fungsi Deret Taylor


Penyelesaian persamaan diferensial dalam metode numerik biasanya dilakukan dengan
menggunakan deret Taylor. Bentuk umum deret Taylor adalah sebagai berikut :
x x x x
f
xi 1 f ( xi ) f '  f '' 
xi  f ' ' ' 
xi  ............ f xi  Rn
n
xi
1! 2! 3! n!
Dengan
Rn adalah kesalahan pemotongan ( truncation error ). = O ( x n 1 )
x adalah jarak antara xi dan xi+1.
f’ adalah turunan pertama
f(x i) adala fungsi pada xi.

Jika suatu fungsi f(x) diketahui di titik xi dan semua turunan dari f terhadap x diketahui
pada titik tersebut, maka dengan deret Taylor nilai f pada titik x i+1 yang terletak sejarak
x dari titik xi dapat ditentukan.
Secara grafis dapat ditunjukkan sebagai berikut :
y
F (x )

O rd e 2

O rd e 1

O rd e 0

x
i i + 1

Gambar 1.1. Tipe kesalahan dengan menggunakan deret Taylor.

Kesalahan pemotongan (truncation error) dari deret taylor adalah Rn = O( xn 1 )


sehingga kesalahan pemotongan (truncation error) pada deret taylor kecil apabila :
1. interval x adalah kecil
2. memperhitungkan lebih banyak suku dari deret taylor.
x 2 x3
Contoh : Besar kesalahan orde satu = O( x 2 ) = f ' ' (xi )
f ' ' '( xi ) ......
2! 3!
Dengan deret taylor kita dapat memperkirakan bentuk diferensial kontinyu menjadi
bentuk diskrit sehingga bermanfaat dalam penyelesaian persamaan diferensial.

1. Penyelesaian diferensial turunan pertama.


Berdasarkan deret taylor maka diferensial turunan pertama dapat dituliskan dalam
bentuk : f ( xi1 ) f ( xi ) f ' ( xi )x O (x 2 ) maka persamaan ini dapat dituliskan
sebagai berikut :
f f ( x ) f ( xi )
f ' ( xi )  i1 O 
x 
x x
Seperti ditunjukkan pada garfik berikut :
y

F(x)

Maju orde satu

C Garis singgung di i

terpusat orde satu


Mundur orde satu

A B

x
i -1 i i +1

Gambar 1.2. Grafik penyelesaian denga deret Taylor.


Berdasarkan grafik diatas, maka turunan f terhadap x dititik xi dapat didekati dengan
tiga garis kemiringan yaitu
1. Kemiringan garis yang menghubungkan titik A dan B yang menghasilkan
persamaan diferensial mundur orde satu karena menggunakan data pada titik x i-1
dan x i untuk memperhitungkan diferensial. Maka deret taylornya adalah :
x x2 x 3
f ( xi 1 ) f ( xi ) f ' (xi ) f '' ( xi ) f ' ' ' (xi ) .....
1! 2! 3!
Atau f ( xi1 ) f ( xi ) f ' ( xi )x O(x2 ) maka diperoleh

 f (x ) f ( xi 1 )
O 
x 
f
f '( xi )  i
x x
2. Kemiringan garis yang menghubungkan titik B dan C yang menghasilkan
persamaan diferensial maju orde satu karena menggunakan data pada titik xi+1 dan
xi untuk memperhitungkan diferensial. Maka deret taylornya adalah :
x x 2 x3
f ( xi 1 ) f (xi ) f ' ( xi ) f ' ' (xi ) f '' ' ( xi ) .....
1! 2! 3!
Atau f ( xi1 ) f ( xi ) f ' ( xi )x O (x 2 )

 f (x ) f ( xi )
O 
x 
f
f '( xi )  i 1
x x
3. Kemiringan garis yang menghubungkan titik A dan C yang menghasilkan
persamaan diferensial terpusat orde satu karena menggunakan data pada titik xi-1
dan x i+1 untuk memperhitungkan diferensial. Maka deret taylornya adalah :
x x3
f ( xi 1 ) f (xi 1 ) 2 f ' (xi ) 2 f ' ' '( xi ) .....
1! 3!
f f ( x ) f ( xi 1 ) x2
Atau f ' ( xi )  i 1 f ' '' ( xi ) ......
x 2x 6
f f ( x ) f ( xi 1 )
f ' ( xi )  i 1 O (x 2 ) ..........
x 2x

Dari ketiga jenis diferenasial tersebut terlihat bahwa diferensial terpusat kesalahannya
berorde x 2 sedangkan diferensial maju dan mundur berorde x . Jadi untuk interval yag
kecil maka kesalahan pemotongan diferensial terpusat lebih kecil dari kesalahan
diferensial maju dan mundur sehingga perkiraan diferensial terpusat adalah yang lebih
teliti.
Dengan menggunakan deret taylor maka turunan kedua dari suatu fungsi didapat dari
menjumlahkan diferensial maju dan mundur sebagai berikut :
x 2 x 4
f ( xi 1 ) f (xi 1 ) 2 f ( xi ) 2 f ' ' ( xi ) 2 f ' ' ' '( xi ) ..... atau
2! 4!
2 f f ( xi 1 ) 2 f (xi ) f ( xi1 ) x 2
f ' ' ( x )  f ' ' ' ' ( x ) ...... atau
x2 x 2
i i
12
f f ( xi 1 ) 2 f (xi ) f ( xi1 )
2

2 f ' ' ( xi )  O( x )


2

x x
2

Untuk diferensial turunan ketiga


f f (x ) 2 f ( xi 1 ) 2 f ( xi1 ) f ( xi2 )
3
f ' ' ' (xi )  i 2
x3
2x3

Untuk diferensial turunan keempat


4 f f ( x ) 4 f (xi 1 ) 6 f ( xi ) 4 f ( xi 1 ) f (xi 2 )
f ' ' ' ' ( xi )  i2
x 4
x 4
Sedangkan turunan yang mengandung lebih dari satu variabel bebas misalnya f(x,y),
maka bentuk deret taylornya adalah
f x f y 2 x 2 2 y 2
f ( xi 1 , y j 1 ) f (xi , y j )    2  .......
x 1! y 1! 
x 2! y 2 2!
Maka diferensial maju dari f(x,y) adalah
f f ( xi1, y j ) f ( xi , y j )

x x
f f (xi y j1 ) f ( xi , y j )

y y
Diferensial mundur dari f(x,y) adalah
f f (xi 1, y j ) f ( xi 1 , y j )

x 2x
f f ( xi y j 1 ) f ( xi , y j1 )

y 2y
Diferensial terpusat untuk f(x,y) adalah
f 2 f (xi 1 , y j ) 2 f ( xi , y j ) f ( xi 1 , y j )
2 
x x
2

f 2 f (xi , y j 1 ) 2 f ( xi , y j ) f ( xi , y j 1 )

y 2 y 2

Dari persamaan – persamaan f(x,y) tersebut dapat digambarkan secara grafis dalam
sistem koordinat x dan y ( dua dimensi)

y
i , j+1
j +1
i+1 , j
j i-1 , j i,j

j -1
i , j+1
x
i-1 i i+1
Gambar 1.3 Jaring titik hitung dalam sistem dua dimensi (x,y)
Contoh :
Diketahui suatu fungsi f ( x) 0.25x3 0.5x 2 0.25x 0.5 . Dengan menggunakan deret
taylor orde nol, satu dan tiga, perkirakan fungsi tersebut pada titik xi1 1, berdasarkan
nilai fungsi pada titik xi = 0. Titik xi1 1 berada pada jarak x 1 dari titik xi 0.

Jawab :

Karena bentuk fungsi sudah diketahui maka dapat dihitung nilai f(x) antara 0 dan 1.
seperti ditunjukkan pada Gambar 1.4.
Untuk xi = 0 maka f(x = 0) = 0.25(0) 3 0.5(0) 2 0.25(0) 0.5 0.5
Untuk xi1 = 0 maka f(x = 1) = 0.25(1) 3 0.5(1)2 0.25(1) 0.5 1.5
Jadi nilai eksak untuk f( x = 1) adalah 1.5. Apabila digunkan deret Taylor orde nol, maka
didapat :
f ( xi 1 ) f ( x i 0) 0.5
Seperti terlihat pada Gambar 1.4. Perkiraan orde nol adalah konstan, dan kesalahan
pemotongannya adalah :
E e p p* 1.5 0.5 1.0
Apabila digunakan deret Taylor orde satu, maka nilai f ( x i1 ) 1 dapat dihitung. Pertama
kali dihitung turunan fungsi di titik x i 0 :
f ' ( x i 0) 0.75 x 2 x 0.25 0.75(0)2 0 0.25
Sehingga diperoleh
x 1
f ( xi 1 ) f ( x i ) f ' ( xi ) 0.5 0.25  0.75
1! 1
Pada gambar 1.1. perkiraan orde satu adalah lurus, dan kesalahan pemotongannya adalah
:
E e p p* 1.5 0.75 0.75
Bila digunakan deret Taylor orde dua, nilai f ( x i1 1) dapat dihitung dengan
menggunakan persamaan orde dua.. Maka turunan kedua dari fungsi di titik xi 0 :
f ' ' ( x ) 1.5x 1 1.5(0) 1 1.0
Sehingga diperoleh:
x
f ( xi 1 ) f ( x i ) f ' ( xi )x f ' ' ( xi )
2
1
0.5 0.25 1 1  1.25
12
Dalam Gambar 1.4 , perkiraan orde dua adalah garis lengkung, dan kesalahan
pemotongannya adalah
E e p p* 1.5 1.25 0.25
Bila digunakan deret Taylor orde tiga, persamaan menjadi
x x x
2 3
f ( xi 1 ) f (x i ) f ' ( xi )
f ' ' ( x i ) f ' ' ' ( xi )
1! 2! 3!
Turunan ketiga dari fungsi adalah
f ' ' ' (x i 0) 1.5
Sehingga diperoleh
1 1
f ( x i 1 1) 0.5 0.25 1 1 1.5  1.5
12 1 2 3
Kesalahan pemotongannya adalah
E e p p* 1.5 1.5 0.0
Terlihat bahwa dengan menggunakan deret taylor orde tiga, hasil penyelesaian numerik =
penyelesaian eksak.
BAB II
PENYELESAIAN NUMERIK PERSAMAAN NON LINIER

Untuk mendapatkan penyelesaian matematik yang menjabarkan model dari suatu


persoalan nyata bidang rekayasa, sering solusi yang dicari berupa suatu nilai variabel x
sedemikian rupa, sehingga terpenuhi persamaan f(x) = 0. Dalam beberapa kasus, melalui
faktorisasi f(x) = 0 dapat diperoleh penyelesaian seperti yang diinginkan, akan tetapi
lebih banyak jabaran persamaan model mempunyai bentuk yang rumit, sehingga teknik
analisis matematika murni tidak dapat memberikan solusi.
Contoh :
o
Suatu bola baja dengan jari-jari 1 cm dibakar secara merata sampai temperatur 100 C.
Bola ini kemudian disimpan didalam ruang pendingin dengan temperatur 0 o C. Dengan
anggapan adanya perambatan panas, maka konduksi panas dapat dinyatakan dalam
persamaan fungsi untuk temperatur T di pusat bola setelah 1 detik sebagai :

T (t ) 100  sin n 
t
(n) exp(2n ) ……….……………1
n1 8
Hal mana i adalah akar positip persamaan :

1
cos  ………………………………………………2
2
Untuk mencari T(t) pada t tertentu ditengah bola, perlu dicari harga dari persamaan 2;
dengan demikian tidak mungkin diselesaikan secara analitik.
Secara geometrik penentuan harga x sehingga terpenuhi persamaan f(x) = 0 berarti
mencari suatu titik dimana grafik fungsi f(x) tepat memotong sumbu absis x, sehingga
f(x) = 0.
Ada beberapa metode numerik yang digunakan untuk menentukan harga x sedemikian
hingga f(x) = 0. Metode konvensional digunakan dengan cara menggambar fungsi f(x)
kemudian dicari titik potongnya dengan sumbu x yang menunjukkan hampiran kasar akar
dari fungsi f(x).
Contoh :
Dengan metode grafik tentukan akar persamaan f(x) = 2552 - 30d2 + d3
3000
2500
2000 Akar Persamaan
1500
1000
f( x)

500
0
-500 0 5 10 15 20 25

-1000
-1500
d
-2000

Dari gafik tersebut pada prinsipnya, akar persamaan yang diperoleh tentu tidak akan
akurat karena masing-masing orang pasti berbeda tebakan angkanya dan akan memakan
waktu yang lama. Jika persamaannya sangat kompleks tentunya sangat sulit menentukan
akar persamaan secara grafik. Metode – metode selain metode grafik untuk mencari akar
persamaan adalah sebagai berikut :
1. Metode Setengah Interval ( Bisection )
Metode ini adalah metode numerik yang paling sederhana dalam mencari nilai x. Dengan
metode ini, mula-mula dicari suatu interval [a,b]. sedemikian sehingga f(a) dan f(b)
mempunyai tanda berbeda seperti gambar 1 berikut :

f(a)
f(x)

b
a

Gambar 1
f(b)

Dengan pembatasan interval ini, secara cermat dapat dicari nilai x =  yang
memberikan nilai f () 0 . Langkah-langkah penyelesaian dengan metode setengah
interval adalah sebagai berikut :
1. Menetapkan sembarang nilai a dan b yang memberikan harga bagi fungsi f(x) untuk
x = a dan x = b sampai diperoleh f(a) x f(b) < 0.
2. Menghitung perkiraan nilai tengah yaitu xt yaitu rerata antara xi dan xi+1 dengan
x x i1 a b
rumus : xt  i  .
2 2
3. Dilakukan pengecekan didalam sub interval mana akar persamaan berada sebagai
berikut :
a. Jika f(x i) x f(xt) < 0, maka akar persamaan yang dicari berada pada sub interval
pertama, maka tetapkan xi+1 = xt dan lanjut pada langkah ke 4.
b. Jika f(xi) x f(xt) > 0, maka akar persamaan berada pada sub interval ke dua, maka
tetapkan x i = xt dan dilnjutkan pada langkah ke 4.
c. Jika f(x i) x f(xt) = 0, maka akar persamaan adalah x t dan hitungan selesai.
x xi 1
4. Hitung perkiraan akar baru dengan persamaan : xt  i .
2
5. Jika f(xt) sudah cukup kecil atau kurang dari batas simpangan kesalahan atau error
yang ditentukan , maka xt tersebut adalah solusinya.
Secara grafis dapat digambarkan sebagai berikut:
F(x)

Akar Persamaan

X1 X3 X5 x
X4 X2

X5

X3 X4

X3 X2
X4
X3

X1 X2
Gambar 2
Metoda Bisection adalah salah satu dari kelas metoda pengelompokan (bracketing
methode), karena prosedur mendapatkan nilai x untuk f(x) = 0 melalui pendekatan
kelompok akar. Metoda 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) < f(b) dalam nilai mutlaknya, maka akar persamaan akan terletak lebih dekat ke f(a),
Bagan alir metoda bisection adalah sebagai berikut :
Flow Chart Bisection.
Berikut adalah algoritma metode bisection yang di tuangkan dalam bahasa program
matlab sebagai berikut :
Definisi fungsi :
function y = func1(x)
y=x^3-10*x^2+5;

Program Utama :
function root=bisection
clear all
clc
a=input('masukan angka pertama :');
b=input('masukan angka kedua :');
tol=input('masukan angka toleransi :');
max_iter=input('masukan jumlah iterasi :');
it=0;Ya=func1(a); Yb=func1(b);
fprintf('it a m b f(a) f(b) abs[(f(b)-f(a))/2]\n');
if Ya*Yb>0;
error('akar diluar interval (a,b)')
else
epsilon=tol+1;
while (it<=max_iter)&(epsilon>tol)
it=it+1; m=(a+b)/2; Ym=func1(m);
fprintf('%3i %2.8f %2.8f %2.8f %2.8f %2.8f %2.8f\n',it,a,m,b,Ya,Yb,abs((Ya-Yb)/2));
epsilon=abs(m-a);
if (Ya*Ym<=0)
b=m; Yb=Ym;
else
a=m; Ya=Ym;
end
end
if it<=max_iter
disp('toleransi terpenuhi'); fprintf('hasil akhir =');
fprintf('%2.8f\n',m);
else
disp('toleransi tidak terpenuhi')
end
end
Hasil Eksekusi :
masukan angka pertama :0
masukan angka kedua :1
masukan angka toleransi :0.0000001
masukan jumlah iterasi :30
it a m b f(a) f(b) abs[(f(b) -f(a))/2]
1 0.00000000 0.50000000 1.00000000 -0.50000000 0.05740772 0.27870386
2 0.50000000 0.75000000 1.00000000 -0.45369751 0.05740772 0.25555262
3 0.75000000 0.87500000 1.00000000 -0.31840354 0.05740772 0.18790563
4 0.87500000 0.93750000 1.00000000 -0.17757837 0.05740772 0.11749305
5 0.93750000 0.96875000 1.00000000 -0.07542802 0.05740772 0.06641787
6 0.96875000 0.98437500 1.00000000 -0.01345334 0.05740772 0.03543053
7 0.96875000 0.97656250 0.98437500 -0.01345334 0.02077637 0.01711485
8 0.96875000 0.97265625 0.97656250 -0.01345334 0.00337330 0.00841332
9 0.97265625 0.97460938 0.97656250 -0.00511064 0.00337330 0.00424197
10 0.97460938 0.97558594 0.97656250 -0.00088650 0.00337330 0.00212990
11 0.97460938 0.97509766 0.97558594 -0.00088650 0.00123892 0.00106271
12 0.97460938 0.97485352 0.97509766 -0.00088650 0.00017509 0.00053080
13 0.97485352 0.97497559 0.97509766 -0.00035598 0.00017509 0.00026554
14 0.97497559 0.97503662 0.97509766 -0.00009052 0.00017509 0.00013280
15 0.97497559 0.97500610 0.97503662 -0.00009052 0.00004227 0.00006639
16 0.97500610 0.97502136 0.97503662 -0.00002413 0.00004227 0.00003320
17 0.97500610 0.97501373 0.97502136 -0.00002413 0.00000907 0.00001660
18 0.97501373 0.97501755 0.97502136 -0.00000753 0.00000907 0.00000830
19 0.97501373 0.97501564 0.97501755 -0.00000753 0.00000077 0.00000415
20 0.97501564 0.97501659 0.97501755 -0.00000338 0.00000077 0.00000207
21 0.97501659 0.97501707 0.97501755 -0.00000130 0.00000077 0.00000104
22 0.97501707 0.97501731 0.97501755 -0.00000027 0.00000077 0.00000052
23 0.97501707 0.97501719 0.97501731 -0.00000027 0.00000025 0.00000026
24 0.97501719 0.97501725 0.97501731 -0.00000001 0.00000025 0.00000013
toleransi terpenuhi
hasil akhir =0.97501725

2. Metode REGULA FALSI ( interpolasi linier)/ false position.


Hampir sama seperti metode bisection, namun untuk mendapatkan nilai tengah atau x t
adalah dengan cara menghubungkan f(a) dan f(b) dengan satu garis lurus dan
perpotongan garis ini dengan absis x merupakan nilai xt , seperti gambar 3 berikut :
f(x)
f(a )

b
x
a

f(b)
Gambar 3

Untuk menentukan nilai xt maka digunakan rumus :


(b a) * f (b)
xt b [ ] ……………………………………….3
f (b) f (a)
Dengan cara ini proses memperoleh akar persamaan akan lebih cepat dari metode
bisection., walaupun pada kasus khusus dapat juga terjadi proses cantelan baik pada titik
a ataupun b yang memperlambat perhitungan.
Walaupun pada algoritma , proses akan selesai jika hasilnya kurang dari nilai kesalahan
terkecil, namun kriteria ini belum cukup. Sehingga dengan memperhatikan dua kurva
berikut maka syarat ketelitian yang tepat adalah harga mutlak f(xt) < nilai kesalahan
terkecil dan harga mutlak [abaru – bbaru] < error terkecil. Grafik tersebut sebagai berikut :

F(a)

b
a F(a)

Gambar 4.
Untuk menghindari masalah yang mungkin terjadi bagi perilaku persamaan yang tidak
dapat dilacak, maka perlu pembatasan tinjauan interval sesuai dengan sifat fungsi. Hal ini
penting dalam teknik numerik utuk memperoleh solusi nyata.
Proses regula falsi sama dengan proses bisection, hanya rumus untuk mendapatkan nilai
xt diganti dengan rumus xt regula falsi. Flow chart metode regula falsi sebagai berikut :
START

Definisikan Fungsi

Baca :
a,b,tol, iter_max

Iter = 0
f_a = f(a)
f_b = f(b)

Y Tulis :
f_a * f_b < 0
f_a * f_b> 0

1
Iter = iter +1
m = a-[fb*(b-a)/(fb - fa)]
f_m = f(m)

|m-a| < tol Y


iter>iter_max
Y T
T

Bmm A=m
F_a *f_m < 0
f_b = f_m f_a = f_m

Tulis hasil
m, f(m)

END

Flow Chart Regula Falsi


Berikut adalah contoh program regulafalsi dengan Matlab :
Definisi fungsi :
function y = func1(x)
y=x^3-10*x^2+5;
Program Utama :
function root=regulafalsi
clear all
clc
a=input('masukan angka pertama :');
b=input('masukan angka kedua :');
tol=input('masukan angka toleransi :');
max_iter=input('masukan jumlah iterasi :');
it=0;Ya=func1(a); Yb=func1(b);
if Ya*Yb>0;
error('Nilai Ya x Yb >0')
else
fprintf('it a m b f(a) f(b) abs[(f(b)-f(a))/2] \n');
epsilon=tol+1;
while (it<=max_iter)&(epsilon>tol)
it=it+1; m=a-Ya*(b-a)/(Yb-Ya); Ym=func1(m);
fprintf('%2i %2.8f %2.8f %2.8f %2.8f %2.8f %2.8f\n',it,a,m,b,Ya,Yb,abs((Ya-Yb)/2));
epsilon=abs(m-a);
if (Ya*Ym<=0)
b=m;Yb=Ym;
else
a=m; Ya=Ym;
end
end
if it<=max_iter
disp('toleransi terpenuhi'); fprintf('hasil akhir =');
fprintf('%2.8f\n',m);
else
disp('toleransi tidak terpenuhi')
end
end

Hasil eksekusi :
>> regulafalsi
masukan angka pertama :0
masukan angka kedua :1
masukan angka toleransi :0.0000001
masukan jumlah iterasi :30
it a m b f(a) f(b) abs[(f(b)-f(a))/2]
1 0.00000000 0.89700946 1.00000000 -0.50000000 0.05740772 0.27870386
2 0.89700946 0.97072600 1.00000000 -0.14456173 0.05740772 0.10098473
3 0.97072600 0.97478854 1.00000000 -0.00925060 0.05740772 0.03332916
4 0.97478854 0.97500503 1.00000000 -0.00049722 0.05740772 0.02895247
5 0.97500503 0.97501655 1.00000000 -0.00002646 0.05740772 0.02871709
6 0.97501655 0.97501716 1.00000000 -0.00000141 0.05740772 0.02870457
7 0.97501716 0.97501719 1.00000000 -0.00000007 0.05740772 0.02870390
toleransi terpenuhi
hasil akhir =0.97501719

4. Metode Newton Raphson


Metode lain dalam mencari akar persamaan adalah dengan bantuan garis singgung kurva
f(x) untuk nilai x yang ditentukan, dan dengan menggunakan besaran x dari perpotongan
garis singgung terhadap absis, diperoleh nilai x baru. Metode ini diperlihatkan pada
grafik berikut :
f(x)
f(xi )

Akar persamaan
f(xi ) - 0

x
xi + 1 xi
( xi + -1 x i )

Gambar 5
Untuk menggunakan metode newton Raphson maka kita harus mencari turunan dari
fungsi f(x) atau tangensial dari fungsi f(x) dengan rumus :
f (xk ) f ( xk 1 ) f ( xk )
f ' ( x)   ……….………….4
(xk xk 1 ) ( xk xk 1 )

f (x k )
Sehingga xk 1 x k  , k 0,1,2,....
( xk xk 1 )
Algoritma metode newton raphson sebagai berikut :
1. Tentukan x0, toleransi dan jumlah iterasi maksimum
2. Hitung xbaru = x – f(xo)/f’(xo)
3. Jika nilai mutlak (xbaru – xo) < toleransi tuliskan xbaru sebagai hasil perhitungan,
jika tidak lanjutkan ke langkah berikutnya
4. Jika jumlah iterasi > iterasi maksimum , maka hitungan selesai.
5. x = xbaru, dan kembali ke langkah 2.
Flow Chart Newton Raphson.
Program Newton Raphson dengan matlab :
Program menggunakan algoritma Newton_Raphson, digunakan untuk menyelesaikan
persamaan : f ( x) e x x 2 3x 2 0 dan turunan pertamanya adalah

f ' ( x ) e x 2 x 3 , sebagai berikut :


Definisi Fungsi :
function y = fnewton(x)
y=x^2-3*x-2+exp(x);

function y=fnewton1(x)
y=exp(x)+2*x-3;

Program Utama :
function root=NewtonRaphson
clear all
clc
xawal=input('Nilai awal :');
tol=input('masukan angka toleransi :');
max_iter=input('masukan jumlah iterasi :');
it=0;
fprintf('it x f(x) epsilon\n');
epsilon=tol+1;
while (it<=max_iter)&(epsilon>tol)
it=it+1; xb=xawal-fnewton(xawal)/fnewton1(xawal); epsilon=abs(xb-xawal);
fprintf('%2i %2.8f %2.8f %2.8f\n',it,xb,fnewton(xb),epsilon); xawal=xb;
end
if it<=max_iter
disp('toleransi terpenuhi'); fprintf('hasil akhir ='); fprintf('%2.8f\n',xb);
else
disp('toleransi tidak terpenuhi');
end

Hasil eksekusi :
Nilai awal :0
masukan angka toleransi :0.0000001
masukan jumlah iterasi :20
it x f(x) epsilon
1 -0.50000000 0.35653066 0.50000000
2 -0.39493624 0.01450634 0.10506376
3 -0.39028102 0.00002898 0.00465521
4 -0.39027169 0.00000000 0.00000934
5 -0.39027169 -0.00000000 0.00000000
toleransi terpenuhi
hasil akhir =-0.39027169

6. Metode Secant
Apabila Nilai turunan fugsi susah untuk didapat, maka penentuan akar persamaan
dapat dilakukan dengan menggunakan metode secant. Yaitu bentuk diferensial didekati
dengan nilai perkiraan berdasarkan diferensial beda hingga sebagai berikut :
f ( xi ) f (xi 1 )
f ' ( xi )  …………………………………5
( xi xi1 )

f ( xi )
xi xi1 
Maka akan diperoleh xi1 xi  , i 0,1,2,.... …………………………..6
f xi  f ( xi 1 )
Jadi berdasarkan persamaan diatas maka dalam metode secant diperlukan dua nilai awal
yang digunakan untuk memerkirakan dari fungsi seperti pada gambar berikut :
Y

F ( X i) A

B
F (X i- 1
)

X i- 1 Xi x

X i - X i- 1

F (x )

Gambar 6. metode Secant


S TA R T

D e f in is ik a n F u n g s i

B aca
x o , x 1, t o l
it e r _ m a x

Ite r = 0

I t e r = ite r + 1

X b = x 1 - f ( x 1 ) * ( x 1- x 0) /
[ f ( x 1 ) - f ( x 0) ]

|x b -x o | < to l Y T u lis H a s il
it e r > it e r _ m a x x b , f(x b )

T
S E LE S A I
X o = xb

Flow Chart metode Secant


Program menggunakan algoritma Newton_Raphson, digunakan untuk menyelesaikan
persamaan : f ( x) e x 3x 2 0 .
x 2

Definisi Fungsi :
function y = fsecant(x)
y=x^2-3*x-2+exp(x);

Program Utama :
function root=secant
clear all
clc
x1=input('Nilai pertama :');
x2=input('Nilai kedua :');
tol=input('masukan angka toleransi :');
max_iter=input('masukan jumlah iterasi :');
it=0;
fprintf('it x f(x) epsilon\n');
epsilon=tol+1;
while (it<=max_iter)&(epsilon>tol)
it=it+1; xb=x2-fsecant(x2)*(x2-x1)/(fsecant(x2)-fsecant(x1)); epsilon=abs(xb-x2);
fprintf('%2i %2.8f %2.8f %2.8f\n',it,xb,fsecant(xb),epsilon); x1=x2;x2=xb;
end
if it<=max_iter
disp('toleransi terpenuhi'); fprintf('hasil akhir ='); fprintf('%2.8f\n',xb);
else
disp('toleransi tidak terpenuhi');
end

Hasil Eksekusi :
Nilai pertama :0
Nilai kedua :-0.1
masukan angka toleransi :0.00001
masukan jumlah iterasi :20
it x f(x) epsilon
1 -0.46546826 0.24090654 0.36546826
2 -0.37966148 -0.03277978 0.08580679
3 -0.38993867 -0.00103342 0.01027719
4 -0.39027322 0.00000476 0.00033455
5 -0.39027169 -0.00000000 0.00000153
toleransi terpenuhi
hasil akhir =-0.39027169

7. Metode Iterasi
Penentuan akar persamaan dengan metode iterasi adalah dengan memulai suatu
perkiraan harga dari akar persamaan, yang kemudian dengan serangkaian nilai perkiraan;
mulai xo (perkiraan awal), x1, x2, ……,x k, akhirnya konvergen pada nilai akar tertentu
yaitu xk yang cukup dekat dengan akar yang eksak menurut tingkat kecermatan yang
diinginkan.
Metode perkiraan awal untuk satu variabel, disebut metode iterasi tunggal. Dalam hal
ini fungsi f(x) ditulis sebagai :
f ( x) x g (x ) 0 , sehingga g ()
Kemudian xk 1 g ( xk ), k 0,1,2,....

Contoh : Untuk mendapatkan akar persamaan x 3 3x 20 0 , langkah pertama yang
dilakukan adalah mengubah persamaan dalam bentuk f(x) = x – g(x). Perubahan ini dapat
dilakukan dalam beberapa cara antara lain :
1. x (3x 20)1 / 3 0

( x3 20)
2. x  0
3
20
3. x  0

x 3
2

20
4. x (3  )1 / 2 0
x
Dengan menggunakan bentuk pertama maka dapat dirumuskan sebagai berikut :
xk 1 (3x k 20)1 / 3 , k 1,2,3,.....
Dan dengan perkiraan awal xo = 5, diperoleh :
xo = 5
1/3
x1 = (3 * 5 + 20) = 3.2771
1/3
x2 = (3 * 3.2771 + 20) = 3.1008
x3 = 3.0830 x4 = 3.0811; x5 = 3.0809; x 6 = 3.0809 ; x7 = 3.0809
Karena nilai x sudah konstan pada harga 3.0809, maka pemeriksaan harga f(x). Diperoleh
f(3.0809) = 0.0010 dan jika simpangan kesalahan sudah sesuai yang ditentukan maka
harga x = 3.0809 merupakan solusinya.
Metode iterasi yang diuraikan ini disebut CARA PENDEKATAN BERURUT. Secara
geometri yang dilakukan adalah menemukan perpotongan dua kurva yaitu y = x dan y =
g(x) seperti gambar berikut :

Y Y = x

Y = g(x )

Gambar 7. Metode Iterasi


Algoritma Program Iterasi :
a. tentukan xo, toleransi , dan jumlah iterasi maksimum
b. Hitung xbaru = g(xo)
c. Jika nilai mutlak (xbaru – xo) < toleransi; tuliskan xbaru sebagi hasil perhitungan, jika
tidak lanjutkan ke langkah berikutnya.
d. Jika jumlah iterasi > iterasi maksimum akhiri program.
e. xo = x baru, dan kembali ke langkah b.
STAR T

D e f in is ik a n F u n g s i

B aca
x o , to l
ite r _ m a x

Ite r = 0

Ite r = ite r + 1

X b = G (xo )

|x b -x o | < to l Y T u lis H a s il
ite r > ite r _ m a x x b , f(x b )

T
SELESAI
X o = xb

Flow Chart Metode Iterasi


Program berikut menggunakan algoritma Iterasi untuk menyelesaikan persamaan non
linier. Program dicoba untuk menyelesaikan persamaan : e x x 2 3x 2 0 atau dalam
(e x x 2 2)
bentuk lain ditulis x  0 sehingga fungsi yang digunakan adalah :
3

g( x ) 
e x
x 2
2 .
3
Definisi Fungsi :
function y = fiterasi(x)
y=(x^2-2+exp(x))/3;
Program Utama :
function root=iterasi
clear all
clc
xawal=input('Nilai awal :');
tol=input('masukan angka toleransi :');
max_iter=input('masukan jumlah iterasi :');
it=0;
fprintf('it x g(x) epsilon\n');
epsilon=tol+1;
while (it<=max_iter)&(epsilon>tol)
it=it+1; xb=fiterasi(xawal); epsilon=abs(xb-xawal);
fprintf('%2i %2.8f %2.8f %2.8f\n',it,xawal,xb,epsilon); xawal=xb;
end
if it<=max_iter
disp('toleransi terpenuhi'); fprintf('hasil akhir ='); fprintf('%2.8f\n',xb);
else
disp('toleransi tidak terpenuhi');
end
Hasil eksekusi :
Nilai awal :1
masukan angka toleransi :0.0000001
masukan jumlah iterasi :20
it x g(x) epsilon
1 1.00000000 0.57276061 0.42723939
2 0.57276061 0.03373667 0.53902394
3 0.03373667 -0.32151654 0.35525321
4 -0.32151654 -0.39052616 0.06900961
5 -0.39052616 -0.39026286 0.00026330
6 -0.39026286 -0.39027199 0.00000913
7 -0.39027199 -0.39027168 0.00000032
8 -0.39027168 -0.39027169 0.00000001
toleransi terpenuhi
hasil akhir =-0.39027169

Anda mungkin juga menyukai