Komputasi Numerik Widjianto release 2013 44 hal 1 Penyelesaian persamaan fungsi mencari titik potong dengan sumbu variabel bebas. Umumnya sukar diperoleh secara eksak. Persamaan fungsi suatu gejala alam umumnya bilangan real. Sukar ditentukan akarnya!!! Selain itu bentuk fungsinyapun sangat beragam, seperti - fungsi eksponen, - fungsi hiperbola, - fungsi polinom, atau - fungsi-fungsi rumit lainnya. Komputasi Numerik Widjianto release 2013 44 hal 2 Contoh persamaan keadaan gas sejati Van Der Wall (p + a / v2)(v - b) = RT, bentuk rumit hubungan antara p dan v sukar diselesaikan untuk v Kenyataannya nilai akar dari suatu persamaan dari gejala alam atau rekayasa pengukuran harus ditemukan untuk keperluan tertentu. Nilai sesungguhnya dapat diwakili dgn nilai pendekatan dengan taraf kesalahan yang dapat ditoleransi. Pencarian akar persamaan dilakukan dengan iterasi sampai ditemukan nilai dengan kesalahan iterasi tertentu atau nol. Nilai terakhir dianggap mewakili nilai sesungguhnya. Dua metode populer untuk menyelesaian persamaan fungsi: - metode akolade (tertutup) - metode terbuka. Komputasi Numerik Widjianto release 2013 44 hal 3 1. Metode Akolade (Tertutup) Prinsip: akar suatu persamaan dapat diisolasikan pada suatu rentangan dua nilai variabel dimana nilai fungsi yang dihasilkan berbeda tanda. Jika terdapat dua nilai f(x1) dan f(x2) yang berbeda, f(x1).f(x2) < 0, maka salah satu akar dari fungsi tersebut terletak antara x1 dan x2 . Y Metode akolade ada dua macam : - metode bagi dua - metode posisi palsu atau regula falsi. f(x) f(x1) x1 akar o x2 X f(x2) Komputasi Numerik Widjianto release 2013 44 hal 4 1.1 Metode Bagi Dua Kapan berhenti??? Jika f(akar_n) = 0 atau Disebut juga metode Bolzano ei mencapai nilai tertentu. Akar pendekatan membagi dua interval yang dibentuk oleh nilai batas. Langkahnya: 0. Tetapkan nilai batas bawah xb dan nilai batas atas xa, 1. Periksa apakah f(xb)*f(xa) <0. Jika tidak ulangi batasnya 2. akar1 = (xb + xa) / 2. 3. Jika f(akar1) = 0 proses selesai dan akar persamaan = akar1. Jika tidak, tetapkan batas baru. Jika f(xb).f(akar1) > 0 tukar xb dengan akar1 Y f(x) Jika f(xa).f(akar1) > 0 tukar xa dengan akar1. akar1 akar2 = (akar1 + xa) / 2 atau xa akar2 = (xb + akar1) / 2. 4. Kesalahan relatif iterasi adalah: ei = abs((akar2 - akar1) / akar2) x 100 % 5. Ulangi langkah 2. Komputasi Numerik Widjianto release 2013 44 hal X xb akar2 5 Procedure BagiDua; BEGIN PROGRAM Input batas bawah dan batas atas: xb, xa; Input batas kesalahan iterasi: eibatas; AkarDugaAwal := xb; Cari nilai f(xb) dan f(xa); IF (f(xb) = 0) THEN begin akar := xb; tampilkan di listbox; exit; end ELSE IF (f(xa) = 0) THEN begin akar := xa; tampilkan di listbox; exit; end ELSE IF (f(xb) * f(xa) > 0) THEN begin hapus xa dan xb; Munculkan peringatan salah; exit; end ELSE Repeat AkarDuga := (xb + xa ) / 2 ; Cari f(akarDuga); IF (f(AkarDuga) = 0) THEN begin Akar := AkarDuga; tampilkan di listbox; exit; end ELSE IF f(AkarDuga) * f(xb) > 0 THEN xb := AkarDuga ELSE xa := AkarDuga; ei := abs((AkarDuga - AkarDugaAwal) / AkarDuga) * 100; Akar := AkarDuga; Tampilkan akar dan kesalahan di listbox; AkarDugaAwal := AkarDuga; Until ei <= eiBatas; Komputasi Numerik Widjianto 6 END PROC; release 2013 44 hal Contoh: Gunakan metode bagi dua untuk mencari akar dari f(x) = e -x - x dengan batas bawah = 0 dan batas atas = 2 serta batas kesalahan iterasi = 1 %. Jawab: xb = 0; xa = 2. Periksa apakah batas-batas yang ada sudah memenuhi persyaratan metode bagi dua, yaitu dengan menentukan nilai f(0) dan f(2). f(0) = e-0 - 0 = 1 - 0 = 1. f(2) = e-2 - 2 = 0,1353 - 2 = - 1,8647. Ternyata f(0).f(2) = 1 . (-1,8647) = -1,8647 < 0. Iterasi 1 : akar1 = (xb + xa)/2 = (0 + 2)/2 = 1. Periksa nilai f(1) = e-1 - 1 = 0,3679 - 1 = -0,6321. Ternyata f(1) <> 0 dan sama tandanya dengan f(2). Maka tukar nilai xa dengan nilai akar1. Jadi xb = 0 dan xa = 1. Ambil salah satu nilai batas sebagai akar sebelumnya xb = 0. Kesalahan iterasi = |(1 - 0) / 1 x 100 %| = 100 % > 1 %. Komputasi Numerik Widjianto release 2013 44 hal 7 Iterasi 2: akar2 = (xb + xa) / 2 = (0 + 1) / 2 = 0,5. Periksa nilai f(0,5) = e-0,5 - 0,5 = 0,6065 - 0,5 = 0,1065. Ternyata f(0,5) <> 0 dan sama tandanya dengan f(0). Maka tukar nilai xb dengan nilai akar2. Jadi xb = 0,5 dan xa = 1. Kesalahan iterasi = |(0,5 - 1) / 0,5 x 100 % | = 100 % > 1 %. Iterasi 3: akar3 = (xb + xa) / 2 = (0,5 + 1) / 2 = 0,75. Periksa nilai f(0,75) = e-0,75 - 0,75 = 0,4724 - 0,75 = -0,2776. Ternyata f(0,75) <> 0 dan sama tandanya dengan f(1). Maka tukar nilai xa dengan nilai akar3. Jadi xb = 0,5 dan xa = 0,75. Kesalahan iterasi = |(0,75 - 0,5) / 0,75 x 100 % | = 33,33 % > 1 %. Komputasi Numerik Widjianto release 2013 44 hal 8 Iterasi 4: akar4 = (xb + xa) / 2 = (0,5 + 0,75) / 2 = 0,6250. Periksa nilai f(0,625) = e-0,625 - 0,625 = 0,5353 - 0,6250 = -0,0897. Ternyata f(0,625) <> 0 dan sama tandanya dengan f(0,75). Maka tukar nilai xa dengan nilai akar4. Jadi xb = 0,5 dan xa = 0,6250. Kesalahan iterasi = |(0,6250 - 0,75) / 0,625 x 100 % | = 20 % > 1 %. Iterasi 5: akar5 = (xb + xa) / 2 = (0,5 + 0,625) / 2 = 0,5625. Periksa nilai f(0,5625) = e-0,5625 - 0,5625 = 0,5698 - 0,5625 = 0,0073. Ternyata f(0,5625) <> 0 dan sama tandanya dengan f(0,5). Maka tukar nilai xb dengan nilai akar5. Jadi xb = 0,5625 dan xa = 0,625. Kesalahan iterasi = |(0,5625 - 0,6250) / 0,5625 x 100 % | = 11,11 % > 1 %. Komputasi Numerik Widjianto release 2013 44 hal 9 Iterasi 6: akar6 = (xb + xa) / 2 = (0,5625 + 0,625) / 2 = 0,5938. Periksa nilai f(0,5938) = e-0,5938 - 0,5938 = 0,5523 - 0,5938 = -0,0415. Ternyata f(0,5938) <> 0 dan sama tandanya dengan f(0,6250). Maka tukar nilai xa dengan nilai akar6. Jadi xb = 0,5625 dan xa = 0,5938. Kesalahan iterasi = |(0,5938 - 0,5625) / 0,5938 x 100 % | = 5,26% > 1%. Iterasi 7: akar7 = (xb + xa) / 2 = (0,5625 + 0,5938) / 2 = 0,5781. Periksa nilai f(0,5781) = e-0,5781 - 0,5781 = 0,5609 - 0,5781 = -0,0172. Ternyata f(0,5781) <> 0 dan sama tandanya dengan f(0,5938). Maka tukar nilai xa dengan nilai akar7. Jadi xb = 0,5625 dan xa = 0,5781. Kesalahan iterasi = |(0,5781 - 0,5938) / 0,5781 x 100 % | = 2,70 % > 1 %. Komputasi Numerik Widjianto release 2013 44 hal 10 Iterasi 8: akar8 = (xb + xa) / 2 = (0,5625 + 0,5781) / 2 = 0,5703. Periksa nilai f(0,5703) = e-0,5703 - 0,5703 = 0,5653 - 0,5703 = -0,0050. Ternyata f(0,5703) <> 0 dan sama tandanya dengan f(0,5781). Maka tukar nilai xa dengan nilai akar8. Jadi xb = 0,5625 dan xa = 0,5703. Kesalahan iterasi = |(0,5703 - 0,5781) / 0,5703 x 100 % | = 1,37 % > 1 %. Iterasi 9: akar9 = (xb + xa) / 2 = (0,5625 + 0,5703) / 2 = 0,5664. Periksa nilai f(0,5664) = e-0,5664 - 0,5664 = 0,5676 - 0,5664 = -0,0012. Ternyata f(0,5664) <> 0 dan sama tandanya dengan f(0,5703). Maka tukar nilai xa dengan nilai akar9. Jadi xb = 0,5625 dan xa = 0,5664. Kesalahan iterasi = |(0,5664 - 0,5703) / 0,5664 x 100 % | = 0,69% < 1 %. nilai pendekatan = 0,5664, taraf kesalahan iterasi relatif = 0,69 %. Komputasi Numerik Widjianto release 2013 44 hal 11 1.2 Metode Posisi Palsu (Regula Falsi) Mirip dengan metode Bolzano. Metode ini juga mensyaratkan batas bawah (xb) dan batas atas (xa) yang memenuhi f(xb).f(xa) < 0. Bedanya pada penentuan akar. Akar pendekatan dilakukan dengan perbandingan seharga antara nilai batas dengan nilai fungsi. (segitiga sebangun) Proses pencarian nilai akar lebih cepat. Komputasi Numerik Widjianto release 2013 44 hal 12 Cara kerja: 0. Tentukan batas bawah xb dan batas atas xa. 1. Mencari titik potong antara garis hubung titik (xb,f(xb)) dan (xa,f(xa)) dengan sumbu variabel bebas (x). 2. Titik potong ini dianggap sebagai akar pendekatan diberi simbol xr. 3. Tentukan nilai f(xr) dan posisi xr terhadap xa dan xb seperti Bolzano. 4. Ulangi langkah 1 dengan titik (xb,f(xb)) atau (xa,f(xa)) yg telah diubah nilainya terhadap xr. Kesebangunan segitiga: Y xa,f(xa) xr xb xa xb,f(xb) xb,f(xb) baru X - f(xb) --------xr - xb f(xa) = -------xa - xr - f(xb) . (xa - xr) = f(xa) . (xr - xb) xr.(f(xa) - f(xb)) = xb.f(xa) - xa.f(xb) xr baru xb.f(xa) - xa.f(xb) xr = ----------------------f(xa) - f(xb) Komputasi Numerik Widjianto release 2013 44 hal 13 Procedure RegulaFalsi; BEGIN PROGRAM Input batas bawah, batas atas dan batas iterasi: xb, xa, eibatas; AkarDugaAwal := xb; Cari nilai f(xb) dan f(xa); IF (f(xb) = 0) THEN begin akar := xb; tampilkan di listbox; exit; end ELSE IF (f(xa) = 0) THEN begin akar := xa; tampilkan di listbox; exit; end ELSE IF (f(xb) * f(xa) > 0) then begin hapus xa dan xb; munculkan peringatan salah; exit; end ELSE Repeat AkarDuga := ((xb * f(xa) – xa * f(xb)) / (f(xa) - f(xb)) ; Cari nilai f(AkarDuga); IF (f(AkarDuga) = 0) THEN begin Akar := AkarDuga; tampilkan di listbox; exit; end ELSE IF f(AkarDuga) * f(xb) < 0 THEN xa := AkarDuga ELSE xb := AkarDuga; ei := abs((AkarDuga - AkarDugaAwal) / AkarDuga) * 100; Akar := AkarDuga; Tampilkan hasil di listbox; AkarDugaAwal :=Komputasi AkarDuga; Cari nilai f(xb) dan f(xa) baru;14 Numerik Widjianto release 2013 44 hal Until ei <= eiBatas; END Proc; Contoh: Gunakan metode regula falsi untuk menaksirkan akar persamaan f(x) = e-x - x dengan batas bawah = 0, batas atas = 2 dan batas kesalahan iterasi = 1 %. Jawab: xb = 0; xa = 2. Periksa apakah batas-batas yang ada sudah memenuhi persyaratan. f(0) = e-0 - 0 = 1 - 0 = 1. f(2) = e-2 - 2 = 0,14 - 2 = - 1,8647. Ternyata f(0).f(2) = 1 . (-1,8647) = -1,8647 < 0. memenuhi persyaratan. 0 . (-1,8647) – 2 . (1) Iterasi 1: akar1 = ------------------------------ = 0,6982 1,8647 - 1 Periksa nilai f(0,6982) = e-0,6982 - 0,6982 = 0,4975 - 0,6982 = -0,2007. Ternyata f(1) <> 0 dan sama tandanya dengan f(2). Maka tukar nilai xa dengan nilai akar1. Jadi xb = 0 dan xa = 0,6982. Ambil salah satu nilai batas sebagai akar sebelumnya yaitu xb= 0, Kesalahan iterasi = |(0,6982 - 0) / 0,6982| x 100 % = 100 % > 1 % Komputasi Numerik Widjianto release 2013 44 hal 15 Iterasi 2: 0.(-0,2007) - 0,6982.(1) akar2 = --------------------------------0,2007 – 1 = 0,5815. Periksa nilai f(0,5815) = e-0,5815 - 0,5815 = 0,5591 - 0,5815 = - 0,0224. Ternyata f(1) <> 0 dan sama tandanya dengan f(2). Maka tukar nilai xa dengan nilai akar1. Jadi xb = 0 dan xa = 0,5815. Kesalahan iterasi = |(0,5815 - 0,6982) / 0,5815| x 100 % = 20,07 %. 0.(-0,0224) - 0,5815.(1) Iterasi 3: akar3 = --------------------------------- = 0,5687. -0,0224 – 1 Periksa nilai f(0,5687) = e-0,5687 - 0,5687 = 0,5662 - 0,5687 = -0,0025. Ternyata f(1) <> 0 dan sama tandanya dengan f(2). Maka tukar nilai xa dengan nilai akar1. Jadi xb = 0 dan xa = 0,5687. Kesalahan iterasi = |(0,5687 - 0,5815 ) / 0,5687| x 100 % = 2,24 % > 1%. Komputasi Numerik Widjianto release 2013 44 hal 16 Iterasi 4: 0.(-0,0025) - 0,5815.(1) akar4 = --------------------------------- = 0,5673. -0,0025 – 1 Periksa nilai f(0,5673) = e-0,5673 - 0,5673 = 0,5670 - 0,5673 = - 0,0003. Ternyata f(1) <> 0 dan sama tandanya dengan f(2). Maka tukar nilai xa dengan nilai akar1. Jadi xb = 0 dan xa = 0,5815. Kesalahan iterasi = |(0,5673 - 0,5687) / 0,5673 x 100 % = 0,25 % < 1%. Proses selesai dalam 4 iterasi, dengan Bolzano 9 kali iterasi. metode regula falsi mempunyai kecepatan iterasi yang lebih baik. Hasil akar pendekatannya = 0,5673 dengan kesalahan iterasi 0,25 %. dengan metode bagi dua = 0,5664 dengan kesalahan iterasi 0,69 %, secara teknis kedua hasil tidak berbeda. Komputasi Numerik Widjianto release 2013 44 hal 17 2. Metode Terbuka Dalam metode akolade harus ditentukan batas bawah dan atas yang mengurung akar. Kesulitan dalam menduga batas-batas tersebut. Kesulitan dihilangkan dengan metode terbuka, yang hanya perlu satu nilai duga awal. Dapat mengalami divergensi yaitu pencarian akar menjauhi nilai akar yang sesungguhnya. Jika metode ini bersifat konvergen maka iterasinya lebih cepat dibanding dengan metode akolade. Terdapat 3 metode operasional: -metode iterasi satu titik sederhana, -metode Newton-Raphson dan -metode Secant. Komputasi Numerik Widjianto release 2013 44 hal 18 2.1 Metode Iterasi Satu Titik Kerja metode ini mengatur ulang bentuk fungsi f(x) = 0 sehingga: - variabel bebas x diletakkan di ruas kiri dan - variabel selain x terletak di sebelah kanan. - Persamaan baru berbentuk : x = g(x) x3 + 5 x + 3 = 0 dapat diubah menjadi x = - (x3 + 3) / 5. Dari persamaan yang terakhir jika dikerjakan secara iterasi, maka nilai x yang lama akan mengisi ruas kanan dan nilai x yang baru dipegang oleh variabel x di ruas kiri. Formula iterasinya dapat ditulis: xi+1 = g(xi) Bentuk f(x) = ln(x), f(x) = cos(x) ??? xi+1 = ln(xi) + xi dan xi+1 = cos(xi) + xi Kesalahan iterasinya: diubah menjadi: f(x) = ln(x) x = ln(x) + x. f(x) = cos(x) x = cos(x) + x. ei = |(xi+1 - xi) / xi+1| * 100% Komputasi Numerik Widjianto release 2013 44 hal 19 Procedure IterasiSatuTitik; PROGRAM BEGIN Input akar awal: xi ; Input batas kesalahan iterasi: eibatas; Cari nilai f(xi); if f(xi) = 0 then begin tampilkan akar = xi; exit ; end else Repeat AkarDugaAwal := xi ; xi = g(xi); // mengubah fungsi.... Cari nilai f(xi); If f(xi )=0 then begin tampilkan akar = xi; exit; end; AkarDuga := xi ; ei := abs ((AkarDuga - AkarDugaAwal ) / AkarDuga) * 100; Tampilkan hasil di listbox; Until ei < = eiBatas; END PROC; Komputasi Numerik Widjianto release 2013 44 hal 20 Contoh: Tentukan akar persamaan f(x) = e-x - x dengan iterasi satu titik dengan titik awal x = 0 dan kesalahan iterasi batas 1%. Jawab: Persamaan f(x) = e-x - x dalam bentuk iterasi satu titik menjadi: xi+1 = e-xi Akar awal ditetapkan = 0, Iterasi 1: Akar1 = e-0 = 1 Kesalahan iterasi = |(1 - 0) / 1| x 100 % = 100 %. Iterasi 2: Akar2 = e-1 = 0,3679. Kesalahan iterasi = |(0,3679 - 1 ) / 0,3679| x 100 % = 171,8 %. Iterasi 3: Akar3 = e-0,3679 = 0,6922. Kesalahan iterasi = |(0,6922 - 0,3679) / 0,6922| x 100 % = 46,9 %. Komputasi Numerik Widjianto release 2013 44 hal 21 Iterasi 4: Akar4 = e-0,6922 = 0,5005. Kesalahan iterasi = |(0,5005 - 0,6922) / 0,5005| x 100 % = 38,3 %. Iterasi 5: Akar5 = e-0,5005 = 0,6062. Kesalahan iterasi = |(0,6062 - 0,5005) / 0,6062| x 100 % = 17,4 %. Iterasi 6: Akar6 = e-0,6062 = 0,5454. Kesalahan iterasi = |(0,5454 - 0,6062) / 0,5454| x 100 % = 11,2 %. Iterasi 7: Akar7 = e-0,5454 = 0,5796. Kesalahan iterasi = |(0,5796 - 0,5454) / 0,5796| x 100 % = 5,90 %. Iterasi 8: Akar8 = e-0,5796 = 0,5601. Kesalahan iterasi = |(0,5601 - 0,5796) / 0,5601| x 100 % = 3,48 %. Iterasi 9: Akar9 = e-0,5601 = 0,5711. Kesalahan iterasi = |(0,5711 - 0,5601) / 0,5711| x 100 % = 1,93 %. Komputasi Numerik Widjianto release 2013 44 hal 22 Iterasi 10: Akar10 = e- 0,5711 = 0,5648. Kesalahan iterasi = |(0,5648 - 0,5711) / 0,5648| x 100 % = 1,11 %. Iterasi 11: Akar11 = e- 0,5648 = 0,5685. Kesalahan iterasi = |(0,5685 - 0,5648 ) / 0,5685| x 100 % = 0,65 % Iterasi berhenti sampai akar ke 11 karena telah dicapai kesalahan iterasi < 1 %. Jadi akar pendekatannya = 0,5685 dengan kesalahan relatif 0,65 %. Bandingkan hasil ini dengan metode bolzano dan regula falsi. Akar dengan regula falsi = 0,5673 dengan kesalahan iterasi 0,25 %. Akar dengan Bolzano = 0,5664 dengan kesalahan iterasi 0,69 %, Ketiga nilai tidak berbeda secara teknis. Komputasi Numerik Widjianto release 2013 44 hal 23 2.2 Metode Newton Raphson (N-R) Metode ini menetapkan satu taksiran akar misalnya xi. Kemudian ditarik garis singgung pada kurva dari titik (x i,f(xi)). Garis singgung ini akan memotong sumbu x yang menunjukkan perbaikan taksiran akar xi+1 Dan seterusnya...... Y Akar (xi,f(xi)) Akar taksiran awal, xi X Akar taksiran berikut, xi+1 Garis singgung (slope) representasi turunan pertama fungsi f’(x). Secara pendekatan diskrit nilainya: f’(x) f(x) / x Dari gambar disamping diperoleh: f’(x) = (f(xi) – 0)/(xi – xi+1) f(xi) xi+1 = xi - ---- Rumus N-R f’(xi) Komputasi Numerik Widjianto release 2013 44 hal 24 Procedure NewtonRaphson; PROGRAM BEGIN Input akar awal: xi ; Input batas kesalahan iterasi: eibatas; Tentukan nilai fungsi f(xi); if f(xi) = 0 then begin Tampilkan di ListBox; exit; end else Repeat Cari nilai fungsi turunan f ’(xi); AkarDugaAwal := xi; xi = xi - f(xi )/ f ’(xi ); AkarDuga:= xi ; Cari nilai f(xi); // f(akarDuga) = f(xi) if (f(xi) = 0) then Begin Tampilkan hasil; Exit; End; ei := abs ((AkarDuga - AkarDugaAwal) / AkarDuga) * 100; Tampilkan hasil di listbox; Until ei <= eiBatas; END PROC; Komputasi Numerik Widjianto release 2013 44 hal 25 Contoh Tentukan akar persamaan f(x) = e-x - x dengan Newton Raphson dengan titik awal x = 0 dan kesalahan iterasi batas 1%. Jawab: f(x) = e-x - x. Maka f’(x) = -e-x - 1. Sehingga Rumus NR menjadi: f(xi) e-xi - xi xi+1 = xi - --------- = xi - ---------f’(xi) -e-xi - 1 Iterasi 1: e- 0 - 0 x1 = x0 - ---------e- 0 - 1 1 = 0 - ---------- = 0,5 -1 - 1 Kesalahan iterasi = |(0,5 - 0) / 0,5| * 100% = 100% Komputasi Numerik Widjianto release 2013 44 hal 26 Iterasi 2: e- 0,5 - 0,5 e- 0,5 - 0,5 x2 = x1 - -------------- = 0,5 - --------------- = 0,566311 - e- 0,5 - 1 - e- 0,5 - 1 Kesalahan iterasi = |(0,566311 – 0,5) / 0,566311| * 100% = 11,8% Iterasi 3: e- 0,566311 - 0,5 66311 e- 0,566311 - 0,566311 x3 = x2 - ---------------------------- = 0,566311 - -------------------------- = 0,567143 - e- 0,566311 – 1 - e- 0,566311 - 1 Kesalahan iterasi = |(0,567143 - 0,566311) / 0,567143| * 100% = 0,147% Jadi akar pendekatannya = 0,567143 dengan kesalahan iterasi 0,147% Komputasi Numerik Widjianto release 2013 44 hal 27 2.3 Metode Secant Merupakan pendekatan metode Newton Raphson, terutama untuk fungsi-fungsi yang sukar ditentukan turunannya. Dipilih 2 titik sembarang sebagai titik awal xi-1 dan xi. Titik ini tidak memerlukan persyaratan seperti pada metode bagi dua. Ditarik garis ke kurva sehingga membentuk titik (xi-1,f(xi-1)) dan (xi,f(xi)). Kemudian ditarik garis sampai memotong sumbu var bebasakar duga. Y Turunan kurva dapat didekati dengan (xi-1, f(xi-1)) Akar (xi, f(xi)) f(x) x xi Akar Duga xi+1 X xi-1 f’(x) f(x) / x = (f(xi-1 ) - f(xi )) / (xi-1 – xi ) Formula Newton Raphson menjadi: f(xi ). (xi-1 – xi ) xi+1 = xi - ------------------- ... secant f(xi-1 ) - f(xi ) Komputasi Numerik Widjianto release 2013 44 hal 28 PROGRAM Procedure Secant; BEGIN Input dua nilai awal: xi dan xi-1 ; Input batas kesalahan iterasi: eibatas; Cari nilai f(xi); if f(xi) = 0 then begin akar := xi; Tampilkan di ListBox; Exit; end ; Repeat AkarDugaAwal := xi ; Cari nilai f(xi-1 ) xi = xi - (f(xi ). (xi-1 - xi )) / (f(xi-1 ) - f(xi )); AkarDuga:= xi ; Cari nilai f(xi); // f(AkarDuga) = f(xi) if (f(xi) = 0) then Begin Tampilkan hasil di listbox; Exit; End; ei := abs ((AkarDuga - AkarDugaAwal) / AkarDuga) * 100; Tampilkan hasil di listbox; xi-1 = AkarDugaAwal; Until ei < = eiBatas; END PROC; Komputasi Numerik Widjianto release 2013 44 hal 29 Contoh: Tentukan akar persamaan f(x) = e-x - x dengan metode Secant dengan titik batas awal x0= 0 dan x1 = 1 serta batas kesalahan iterasi 1%. Jawab: Akar duga awal = x1 = 1. Iterasi 1: f(x0) = e-0 - 0 = 1 f(x1) = e-1 - 1 = - 0,63212 - 0,63212 (0 - 1) x2 = 1 - ------------------------ = 0,61270 1 - (- 0,63212) Kesalahan iterasi = |(0,61270 - 1)| / 0,61270 x 100 % = 63,21 % Komputasi Numerik Widjianto release 2013 44 hal 30 Iterasi 2: x1 = 1 x2 = 0,61270 f(x1) = e-1 – 1 = - 0,63212 f(x2) = e-0,61270 - 0,61270 = - 0,07081 - 0,07081 (1- 0,61270) x3 = 0,61270 - ------------------------------- = 0,56384 - 0,63212 – (-0,07081) Kesalahan iterasi = |(0,56384 - 0,61270)| / 0,56384 x 100 % = 8,67 % Iterasi 3: x2 = 0,61270 x3 = 0,56384 f(x2) = e-0,61270 - 0,61270 = - 0,07081 f(x3) = e-0,56384 - 1 = 0,00518 0,00518 (0,61270 - 0,56384) x4 = 0,61270 - --------------------------------------- = 0,56717 - 0,07081 - 0,00518 Kesalahan iterasi = |(0,56717 - 0,56384)| / 0,56717 x 100 % = 0,58 % Jadi hasilnya 0,56717 dengan kesalahan relatif 0,58 % dan 3 iterasi. Komputasi Numerik Widjianto release 2013 44 hal 31 3. Studi Kasus Dalam Sain dan Teknik Dari kelima metode penyelesaian persamaan yang sering digunakan adalah metode Newton-Raphson. Metode Secant digunakan jika fungsinya sukar dicari turunannya. Sedangkan metode akolade jarang digunakan karena kendala sulitnya menentukan dua batas awal yang mengapit akar. Untuk fungsi yang hanya menyinggung sumbu variabel bebas metode akolade sukar diterapkan. Apalagi untuk fungsi yang tidak memotong sumbu variabel bebas metode akolade tidak dapat digunakan. Tetapi ada kalanya metode akolade digunakan juga. Komputasi Numerik Widjianto release 2013 44 hal 32 3.1 Menentukan akar pangkat n dari suatu bilangan. Bentuk persamaan fungsinya f(x) = xn - a = 0. Maka f’(x) = n x n-1 Sehingga formula Newton Raphson menjadi: f(xi) xi+1 = xi - -------f’(xi) xn - a xi+1 = xi - -----------n x n-1 Komputasi Numerik Widjianto release 2013 44 hal 33 Carilah nilai 3√ 6 atau 61/3 dengan metode Newton Raphson dengan tebakan awal x = 1 dan batas kesalahan iterasi 1 %. Jawab: Bentuk fungsinya adalah f(x) = x3 – 6. Maka f’(x) = 3x2. Rumus Newton Raphson: f(xi) xi 3 - 6 xi+1 = xi - ------- = xi - ---------f’(xi) 3xi2 Iterasi 1: x0 3 - 6 13 - 6 -5 x1 = x0 - --------- = 1 - --------- = 1 - ----- = 2,666667 3x02 3.12 3 Kesalahan iterasi = |(2,666667 – 1)/2,666667| * 100% = 62.5% Komputasi Numerik Widjianto release 2013 44 hal 34 Iterasi 2: x1 3 - 6 2,6666673 - 6 x2 = x1 - --------- = 2,666667 - -------------------- = 2,059028 3 x 12 3 .2 ,6666672 Kesalahan iterasi = |(2,059028 - 2, 666667) / 2,059028| * 100% = 29,5% Iterasi 3: x2 3 - 6 2,0590283 - 6 x3 = x2 - ---------- = 2,059028 - -------------------3 x 22 3 .2 ,0590282 = 1,844428 Kesalahan iterasi = |(1,844428 - 2,059028) / 1,844428| * 100% = 11,6% Iterasi 4: x3 3 - 6 1,8444283 - 6 x4 = x3 - --------- = 1,844428 - -------------------3 x 32 3 . 1,8444282 = 1,817523 Kesalahan iterasi = |(1,817523 -1,844428) / 1,817523| * 100% = 1,5% Komputasi Numerik Widjianto release 2013 44 hal 35 PROGRAM Iterasi 4: x3 3 - 6 1,8444283 - 6 x4 = x3 - ------------ = 1,844428 - -------------------- = 1,817523 3x32 3 . 1,8444282 Kesalahan iterasi = |(1,817523 -1,844428) / 1,817523| * 100% = 1,5% Iterasi 5: x4 3 - 6 1,8175233 - 6 x5 = x4 - ----------- = 1,817523 - -------------------- = 1,817121 3x42 3 . 1,8175232 Kesalahan iterasi = |(1,817121 -1,817523) / 1,817121| * 100% = 0,02% Jadi nilai 61/3 = 1,817121 dengan kesalahan iterasi 0,02% Komputasi Numerik Widjianto release 2013 44 hal 36 3.2 Menentukan volume gas sejati Van Der Walls Persamaan gas ideal dituliskan dengan pv = nRT. Persamaan ini mempunyai batas rentang tekanan dan suhu tertentu. Dari percobaan Van Der Walls diperoleh rumusan untuk gas yang dapat mengoreksi ketidakakuratan persamaan gas ideal. Persamaannya (p + a / v2)(v - b) = RT, a dan b adalah tetapan-tetapan empiris yang bergantung jenis gas. Misalnya untuk gas oksigen nilai a = 1,360 dan b = 0,03183 sedangkan untuk gas karbondioksida a = 3,592 dan b = 0,04267. Sebagai titik awal perhitungan dapat dipakai nilai volume gas menurut gas ideal pada tekanan dan suhu yang sama. Selanjutnya dengan salah satu metode penyelesaian persamaan (disarankan Newton Raphson) dapat dicari volume gas yang lebih teliti. Komputasi Numerik Widjianto release 2013 44 hal 37 Formulasi Van Der Walls f(v) = (p + a/v2)(v - b) - RT f(v) = pv + a/v - pb - ab/v2 - RT Maka f ’(v) = p - a/v2 - 0 + 2ab/v3 - 0 f ’(v) = p - a/v2 + 2ab/v3 Dengan kedua bentuk persamaan diatas lebih mudah menggunakan metode Newton Raphson. vi+1 = vi - f(vi) / f’(vi). Komputasi Numerik Widjianto release 2013 44 hal 38 Contoh Tentukan volume 1 mol gas oksigen pada suhu 500 K dan tekanan 10 atm berdasar persamaan Van Der Walls dengan metode Newton Raphson dan kesalahan 0.001%. Jawab: Nilai awal volume gas dicari dengan persamaan gas ideal pv = nRT. R = 0,082054 liter.atm/mol K vo = nRT/p = 1. 0,082054. 500/10 = 4,1027 liter Untuk gas oksigen a = 1,360 dan b = 0,03183 Metode Newton Raphson: f(v) = (p + a/v2)(v - b) – RT. f ’(v) = p - a/v2 + 2ab/v3. Komputasi Numerik Widjianto release 2013 44 hal 39 Iterasi 1: PROGRAM v1 = vo - f(vo)/ f ’(vo). f(vo) = (10 + 1,360 / 4,10272)( 4,1027 - 0,03183) - 0,082054. 500 = 0,01061722 f ’(vo) = 10 - 1,360 / 4,10272 + 2 . 1,360 . 0,03183 / 4,10273 = 9,92045593. v1 = 4,1027 - 0,01061722 / 9,92045593 v1 = 4,101629764. Kesalahan iterasi = | (4,101629764 - 4,1027)| / 4,101629764 x 100 = 0.026 %. Iterasi 2 v2 = v1 - f(v1)/ f ’(v1). f(v1) = (10 + 1,360 / 4,1016297642)( 4,101629764 - 0,03183) - 0,082054. 500 = 2,2038 . 10-8 . f ’(v1) = 10 - 1,360 / 4,10272 + 2 . 1,360 . 0,03183 / 4,10273 = 9,92041476 v2 = 4,101629764 - 2,2038 . 10-8 / 9,92041476 v2 = 4,101629762 Kesalahan iterasi = |(4,101629762- 4,101629764)| / 4,101629762 x 100 = 5,4. 10-8Komputasi %. Numerik Widjianto release 2013 44 hal 40 3.3 Menentukan Komponen Rangkaian Listrik Keadaan mantap (steady state) dalam rangkaian listrik sangat diperlukan sebab merupakan syarat dasar kerja peralatan elektronika. Keadaan mantap diperoleh setelah melalui keadaan transien dari keadaan mati (off). Sebagai contoh rangkaian osilasi RLC berikut ini. Komputasi Numerik Widjianto release 2013 44 hal 41 Ketika arus melalui resistor terjadi penurunan tegangan V R = i R. Sedangkan induktor akan menahan arus sehingga terjadi perubahan tegangan VL = L di/dt, dan dalam kapasitor terjadi perubahan tegangan VC = q/C. Setelah saklar ditutup jumlah tegangan = 0, persamaannya menjadi: L di/dt + iR + q/C = 0. Mengingat i = dq/dt, persamaan diatas menjadi: L d2q/dt2 + R dq/dt + q/C = 0 Solusi kalkulus menghasilkan: q(t) = q0 e –Rt/2L cos [{1/(LC) –(R/(2L)2}t] atau f(R) = e –Rt/2L cos [{1/(LC) –(R/(2L)2}t] – q(t)/ q0 pada saat t = 0, q = q0 = VoC. Komputasi Numerik Widjianto release 2013 44 hal 42 Persoalan desain teknik elektro umumnya menentukan nilai resistor yang layak untuk mendisipasikan energi pada suatu kelajuan tertentu dengan harga L dan C yang ditentukan. Misalnya muatan harus didisipasikan sampai 1 % dari harga awal dalam waktu 0,05 detik dengan H = 5H dan C = 10-4 F. Maka persamaan menjadi: f(R) = e –0,05R cos [{2000 –0,01R2}0,05] – 0,01. Dengan mengunakan syarat batas bilangan dibawah tanda akar 2000 – 0,01R2 > 0 maka nilai R berkisar antara 0 – 400 Ohm. Nilai tsb dapat dipakai sebagai nilai batas awal perhitungan. Metode apa yang akan dipakai? Turunan fungsi sukar ditentukan. Metode Newton Raphson dan metode alokade terbuka sukar dipakai. Kita dapat menggunakan metode Bagi Dua atau Regula Falsi. Dengan metode Bagi Dua dengan taraf kesalahan 0,0001 % setelah 20 iterasi diperoleh nilai R = 328,1515 Ohm. Coba buat programnya Komputasi Numerik Widjianto release 2013 44 hal sendiri..... 43 Komputasi Numerik Widjianto release 2013 44 hal 44