Modul 6 METODE REGULA-FALSI (False Positio) utuk Solusi Akar PERSAMAAN ALJABAR NON-LINIER TUNGGAL A. Pedahulua Seperti telah dijelaska pada modul terdahulu, Metode Bisectio memiliki kelemaha pokok, yaitu: kecepataya dalam mecapai divergesi; maka beberapa ahli matematika telah berusaha meyempuaka metode tersebut. Namu demikia, metode ii memiliki kelebiha yaitu: kepastia atau jamiaya dalam meuju kovergesi. Dalam modul ii aka dibahas suatu metode solusi baru yag memodifikasi metode bisectio, yag kierjaya lebih cepat dalam mecapai kovergesi, amu masih tetap memiliki kepastia atau jamia meuju kovergesi. B. Solusi Akar PANLT dega Metode Regula-Falsi Solusi akar (atau akar-akar) dega megguaka Metode Regula- Falsi merupaka modifikasi dari Metode Bisectio dega cara memperhitugka kesebagua yag dilihat pada kurva berikut: y y f(x) (b,f(b)) P a c α b x (a,f(a)) Q R Gambar 6.. Represetasi grafis metode Regula-Falsi. Seri Kuliah Metode Numerik (Modul 6: Metode Regula-Falsi utuk Solusi PANLT (Persamaa Aljabar No-Liier Tuggal) (/)
Perhatika kebagua 2 segitiga Pcb da PQR di atas, sehigga persamaa berikut dapat diguaka: atau sehigga c Pb bc PR RQ f ( b) 0 f ( b) f ( a ) b c b a : b f ( b) b f ( b) a f ( a) Persamaa di atas disebut sebagai persamaa rekursif dari Metode Regula Falsi. Kecepata atau laju kovergesi dari Metode Regula-Falsi sama dega Metode Bisectio, yaitu kovergesi liier, amu dega faktor pegali (kostata) yag lebih besar dari 2 (faktor pegali berkisar atara 2 ). C. Algoritma Metode Regula-Falsi Asumsi awal yag harus diambil adalah sama seperti pada Metode Bisectio, yaitu: meebak iterval awal [a,b] dimaa f(x) adalah kotiu padaya, demikia pula iterval tersebut harus terletak megapit (secara ituitif) ilai akar α, sedemikia rupa sehigga: f ( a) f ( b) 0 Meskipu pada algoritma berikut masih megadug beberapa kelemaha, amu secara umum masih sagat megutugka utuk dipakai. Perbaika da modifikasi secara umeris dilakuka oleh Bret (Atkiso, 978), utuk algoritma tersebut. Seri Kuliah Metode Numerik (Modul 6: Metode Regula-Falsi utuk Solusi PANLT (Persamaa Aljabar No-Liier Tuggal) (2/2)
Algoritma REGFAL(f,a,b,akar,ε,iter,itmax,flag). Tebak harga iterval [a,b]; tetuka ε; da itmax 2. Set xold 2*b-a; iter 0; flag 0; 3. Tetuka atau hitug akar c b f(b) [(b a)/(f(b) f(a)); iter iter + ; 4. Jika f(b) f(c) 0 maka a c jika tidak b c; 5. Jika abs(c xold) ε maka flag atau jika iter > itmax maka flag 2 atau jika tidak maka iter iter + da akar c; 6. Jika flag 0 ulagi ke omor 3; 7. Selesai. Gambar 6.2. Algoritma Metode-Regula Falsi Sehigga formula rekursif dari Metode REGULA-FALSI: dapat dituliska dalam resume berikut: x f ( a ) a f ( b ) f ( b ) f ( x b f ( a) f ( a ) ( + ) a ) < 0? ( ) a + + a x, b, b + + x b Adapu sifat atau karakteristik metode ii secara umum adalah: Memerluka 2 harga awal ( a 0 da b 0 sedemikia rupa sehigga f(a 0 ) f(b 0 ) 0) Kovergesi Superliier ( Sedag, atara liier da kuadrat) Seri Kuliah Metode Numerik (Modul 6: Metode Regula-Falsi utuk Solusi PANLT (Persamaa Aljabar No-Liier Tuggal) (3/3)
Baik diguaka utuk fugsi yag turuaya tak terdefiisi dega jelas ( diskotiyu) Diverge (RTE, ru time error) bila a b ( ε mesi ) Kriteria peghetia iterasi : b a da atau f ( x ) ε ε Adapu tabel kerja dari metode ii (sesuai dega algoritmaya), dapat disajika secara sistematis sebagai berikut: Tabel 6.. Tabel Kerja Metode Regula-Falsi x a b f(a) f(b) 0 --- D. Listig Program Metode Regula-Falsi Diberika persoala utuk meghitug akar (akar-akar) persamaa f(x) 0, sebagai berikut: f ( x) x e x 0 Listig program sederhaa (o-subroutie) da program dega subroutie utuk Metode Regula-Falsi disertaka dalam gambargambar 6.2. da 6.3. di bawah ii, yag ditulis dalam Bahasa FORTRAN 77 (kompatibel dega Bahasa FORTRAN 90/95): Seri Kuliah Metode Numerik (Modul 6: Metode Regula-Falsi utuk Solusi PANLT (Persamaa Aljabar No-Liier Tuggal) (4/4)
C Program: Solusi Persamaa Aljabar No-Liier Tuggal (PANLT) C dega Metode 'Regula Falsi' C VARIAN: Program sederhaa/no-subroutie C Kodisi proses diyataka dalam variabel 'flag' C flag 0; berarti sistem masih dalam proses iterasi C flag ; berarti proses telah mecapai kovergesi C flag 2; berarti jumlah iterasi maksimum telah terlampaui C ------------------------------------------------------------- implicit oe REAL*8 eps,f,f0,f,x,xold,x0,x INTEGER flag,iter,maxiter WRITE(*,'(A,$)') 'Harga-harga awal x0, x : ' READ(*,*) x0,x WRITE(*,'(A,$)') 'Jumlah iterasi maksimum : ' READ(*,*) maxiter WRITE(*,'(A,$)') 'Epsilo/kriteria proses : ' READ(*,*) eps iter 0 flag 0 xold 2*x - x0 DO WHILE(flag.EQ. 0) x x - (x - x0)/(f(x) - f(x0))*f(x) IF ((f(x)*f(x)).le. 0.0D0) THEN x0 x x x IF IF (ABS(x - xold).le. eps) THEN flag IF (iter.gt. maxiter) THEN flag 2 iter iter + xold x IF DO WRITE(*,*) 'x0 ',x0 WRITE(*,*) 'x ',x WRITE(*,*) 'xold ',xold WRITE(*,*) 'x ',x WRITE(*,*) 'f(x) ',f(x) WRITE(*,*) 'Flag ',flag WRITE(*,*) 'Jumlah iterasi ',iter STOP FUNCTION f(x) REAL*8 f,x f x - exp(.0d0/x) RETURN Gambar 6.3. Listig program sederhaa (tapa subroutie). Seri Kuliah Metode Numerik (Modul 6: Metode Regula-Falsi utuk Solusi PANLT (Persamaa Aljabar No-Liier Tuggal) (5/5)
C Program: Solusi Persamaa Aljabar No-Liier Tuggal (PANLT) C dega Metode 'REGULA-FALSI' C VARIAN: Program dega Subroutie C ------------------------------------------------------------- implicit oe exteral f REAL*8 eps,f,x,x0,x INTEGER flag,iter,maxiter WRITE(*,'(A,$)') 'Harga-harga awal x0, x : ' READ(*,*) x0,x WRITE(*,'(A,$)') 'Jumlah iterasi maksimum : ' READ(*,*) maxiter WRITE(*,'(A,$)') 'Epsilo/kriteria proses : ' READ(*,*) eps CALL REGFAL(f,x0,x,x,eps,iter,maxiter,flag) WRITE(*,*) 'x0 ',x0 WRITE(*,*) 'x ',x WRITE(*,*) 'x ',x WRITE(*,*) 'xold ',x WRITE(*,*) 'f(x) ',f(x) WRITE(*,*) 'Flag ',flag WRITE(*,*) 'Jumlah iterasi ',iter STOP FUNCTION f(x) REAL*8 f,x f x - exp(.0d0/x) RETURN SUBROUTINE REGFAL(ff,x0,x,x,eps,itum,itmax,prflag) C -------------------------------------------------------- C Sub-program: Solusi PANLT dega metode REGULA-FALSI C sebagai perbaika dari metode BISECTION C ff : fugsi f(x) 0 yag aka dicari akarya C x0 : ilai x-awal di sebelah kiri akar f(x) C x : ilai x-awal di sebelah kaa akar f(x) C x : akar f(x), ilai paruh (atara x0 da x) C eps : kriteria atau ketelitia peghituga C itum : jumlah iterasi yag dilakuka proses C itmax : jumlah pembatas iterasi utuk proses C prflag : idetifikasi utuk kovergesi, yaitu: C 0 proses sedag/aka berlagsug C proses mecapai kovergesiya C 2 itmax telah terlampaui C -------------------------------------------------------- REAL*8 eps,ff,x,xold,x0,x INTEGER prflag,itum,itmax Seri Kuliah Metode Numerik (Modul 6: Metode Regula-Falsi utuk Solusi PANLT (Persamaa Aljabar No-Liier Tuggal) (6/6)
itum 0 prflag 0 xold 2*x - x0 DO WHILE(prflag.EQ. 0) x x - (x - x0)/(ff(x) - ff(x0))*ff(x) itum itum + IF ((ff(x)*ff(x)).le. 0.0D0) THEN x0 x x x IF IF (ABS(x - xold).le. eps) THEN prflag IF (itum.gt. itmax) THEN prflag 2 xold x IF DO RETURN Gambar 6.4. Listig program dega subroutie. Tugas: x! Cari akar (akar-akar) dari persamaa: f ( x) e l( x) E. Pustaka yag bersesuaia Atkiso, Kedal E., A Itroductio to Numerical Aalysis, Joh Wiley & Sos, Toroto, pp. 44-48, 978. Atkiso, L.V., Harley, P.J., A Itroductio to Numerical Methods with Pascal, Addiso-Wesley Publishig Co., Tokyo, pp. 49-5, 983. Bismo, Setijo, Modul Kuliah Metode Numerik, TGP-FTUI, 999. Seri Kuliah Metode Numerik (Modul 6: Metode Regula-Falsi utuk Solusi PANLT (Persamaa Aljabar No-Liier Tuggal) (7/7)