(Materi Kuliah#4) - Persamaan Aljabar Non-Linier [PDF]

  • 0 0 0
  • Suka dengan makalah ini dan mengunduhnya? Anda bisa menerbitkan file PDF Anda sendiri secara online secara gratis dalam beberapa menit saja! Sign Up
File loading please wait...
Citation preview

Bab



Persamaan Aljabar Non Linier (PANL)



5



Persamaan aljabar non-linier (PANL), kadangkala disebut juga sebagai persamaan aljabar non-linier tunggal (PANLT), merupakan suatu fungsi atau persamaan aljabar skalar yang terbentuk berdasarkan proyeksi fungsional dari variabel bebasnya (yang digambarkan pada sumbu datar atau absis) pada variabel terikatnya (sebagai sumbu tegak atau ordinat)



y( x) ≡



(5.1)



f ( x)



Dalam penulisan yang bersifat eksplisit, suatu variabel x dapat dengan mudah dikeluarkan dari y ( x ) , sedemikian rupa sehingga Persamaan (5.1) dapat ditulis dalam bentuk implisit rekursif. Persamaan yang terbentuk seperti pada Persaman (5.2) di bawah, dapat digunakan untuk mencarai akar (atau akar-akar) PANL pada bidang bebas atau dengan menggunakan metode titik tetap (fixedpoint method)



x ≡



(5.2)



g( x)



Di sisi lain, jika Persamaan (5.1) dituliskan dalam bentuk persamaan residual, maka problem utama yang sering dijumpai dalam pencarian akar suatu PANLT adalah mencari dan menelusuri titik persamaan (kurva) itu dengan sumbu x sebagai



α sebagai titik perpotongan



(sehingga akarnya disebut juga



α ), dan pada saat bersamaan fungsi f ( x ) tersebut juga mencapai nilai



nol-nya. Secara umum, persamaan aljabar non linier dengan variabel bebas x tersebut dapat direpresentasikan melalui persamaan vektorial skalar berikut



y( x) ≡



f ( x) = 0



(5.3)



Representasi residual seperti Persamaan (5.3) merupakan penulisan untuk persamaan aljabar non-linier tunggal (PANLT), yaitu suatu fungsi skalar (juga dengan nilai besaran dan variabel sebagai skalar), dalam domain bilangan nyata (riil atau real). Sedangkan penulisan untuk sistem persamaan aljabar non-linier (SPANL), sebagai suatu persamaan vektorial dengan besaran variabelvariabelnya sebagai skalar dalam domain bilangan riil, dapat direpresentasikan sebagai berikut Bab 5. Persamaan Aljabar Non Linier (PANL)



Metode Numerik: Komputasi dengan FORTRAN 77 dan Turbo PASCAL # 84



⎡ f1 ( x1 , …, xn ) ⎤ ⎡0⎤ ⎢ f ( x , …, x ) ⎥ ⎢0⎥ n ⎥ ⎢ 2 1 = ⎢ ⎥ ⎢ ⎥ ⎢ ⎥ ⎢ ⎥ ⎢ ⎥ ⎣0⎦ ⎣ f n ( x1 , …, xn ) ⎦



(5.4)



Persamaan 5.4 di atas, yang seringkali disebut juga sebagai persamaan vaktorial residual, bila dituliskan dalam bentuk simbolik vektorial umum menjadi sebagai berikut



fˆ ( xˆ ) = 0



(5.5)



Dalam bab ini, titik berat pembahasan akan lebih banyak pada solusi-solusi numerik dari persamaan aljabar non-linier tunggal dalam bentuk residual, seperti pada Persamaan (5.3), yaitu menggunakan metode-metode solusi yang paling umum dan banyak digunakan dalam ilmu sains dan keteknikan. Berbagai teknik solusi numerik telah banyak dikembangkan untuk solusi atau pencarian akar (atau akar-akar) dari suatu PANLT dengan bentuk umum seperti pada Persamaan (5.2) dan (5.3) di atas. Beberapa di antaranya akan disajikan secara khusus dalam bab ini, yaitu: (a). Metode titik tetap (fixed-point method), (b). Metode bidang paruh (bisection method), (c). Metode regula-falsi (false position method), (d). Metode Newton-Raphson (tangent method), dan (e). Metode secant (secant method).



5.1. Solusi dengan Metode Titik Tetap Metode titik-tetap ini memerlukan 1 (satu) buah harga x (disebut sebagai



xawal ) sebagai “nilai tebakan” (guess value) untuk memulai suatu proses iterasi. Selanjutnya, suatu prosedur untuk penghitungan fungsi g ( x ) harus dibuat untuk melakukan komputasi secara suksesif (iteratif), bersamaan dengan nilai awal x0 . Kemudian, sekuens nilai-nilai xk akan diperoleh melalui formula atau prosedur iteratif berikut



xk +1







g ( xk )



(5.6)



Jika disajikan secara menyeluruh, maka sekuens dalam algoritma prosedur komputasi numerik dengan metode titik-tetap ini dapat dituliskan sebagai berikut: Bab 5. Persamaan Aljabar Non Linier (PANL)



Metode Numerik: Komputasi dengan FORTRAN 77 dan Turbo PASCAL # 85



(tentukan harga x0 sebagai harga awal)



x0 x1 = g ( x0 ) x2 = g ( x1 ) xk xk +1



xn



= =



=



(hitung x1 sebagai harga yang baru) (hitung x2 sebagai harga yang baru)



g ( xk −1 ) ⎫ ⎬ g ( xk ) ⎭



(hitung xk karena suksesi harga xk −1 )



(perhitungan sampai n iterasi maksimum)



g ( xn−1 )



Gambar 5.1. Representasi sekuens komputasi dari metode titik-tetap dari y = g ( x ) . Dari algoritma di atas, dapatkah pembaca sekalian bayangkan: sampai di titik manakah proses komputasi iteratif di atas akan diakhiri? Dari sekuens komputasi di atas, dapat pula disimpulkan bahwa suatu titiktetap dari fungsi g ( x ) adalah suatu nilai sebesar xk sedemikian rupa sehingga dipenuhi xk = g ( xk ) . Hal ini berarti pula bahwa suatu titik tetap xk bukanlah akar dari persamaan g ( x ) = 0 , melainkan solusi dari sistem x = g ( x ) .



Algoritma TIKTAP(



f , xk , xk +1 , ε , iter , itmax , flag ) x0 , tentukan ε , dan itmax



1.



Tebak harga awal



2.



Set k = 0 ; flag = 0



3.



Set k = k + 1 dan tentukan/hitung



4.



Jika



abs ( xk +1 − xk ) ≤ ε )



xk +1 = g ( xk ) ;



maka



set



flag = 1 ; jika



iter > itmax maka set flag = 2 5. Jika flag = 0 maka ulangi ke nomor 3 6. Jika flag = 2 maka proses melampaui itmax dan segera keluar ke nomor 8; jika flag = 1 maka proses konvergen 7. Jika flag = 1 maka akar sistem titik-tetap (tiktap) adalah xk +1 8.



Selesai.



Gambar 5.2. Algoritma komputasi dari metode titik-tetap untuk persamaan y = g ( x ) . Secara geometris, titik-tetap dari suatu fungsi g ( x ) adalah titik (atau titiktitik) perpotongan antara kurva



y = g ( x ) dengan garis y = x , seperti



direpresentasikan pada Gambar 5.1 di bawah.



Bab 5. Persamaan Aljabar Non Linier (PANL)



Metode Numerik: Komputasi dengan FORTRAN 77 dan Turbo PASCAL # 86



y



y=x



2



( p, g ( p ) )



p = g ( p)



1



y = g( x)



x 1



p



2



Gambar 5.3. Geometri representasi titik-tetap dari y = g ( x ) . Untuk memberikan gambaran yang lebih jelas dan ringkas tentang cara pemrograman yang efektif dari metode atau bahasa pemrograman yang dipilih, maka di bawah ini diberikan suatu hasil pemrograman dalam FORTRAN 77.



Gambar 5.4. Listing pemrograman FORTRAN untuk metode titik-tetap pada y = g ( x ) . Bab 5. Persamaan Aljabar Non Linier (PANL)



Metode Numerik: Komputasi dengan FORTRAN 77 dan Turbo PASCAL # 87



5.2. Solusi dengan Metode Bidang Paruh Metode bidang paruh (bisection), atau kadangkala disebut juga dengan metode bidang bebas, merupakan metode solusi numerik yang relatif paling sederhana dibandingkan dengan metode-metode persamaan residual lainnya. Prinsip dari metode ini adalah “pemaruhan” (perolehan nilai rata-rata dengan cara memaruh dua nilai yang berbeda) dari nilai estimasi akar suatu PANLT yang dibentuk dengan cara ‘menebak’ dua buah harga awal pada interval [ a , b ] yang bertempat-kedudukan di kiri dan kanan (mengapit) akar atau jawab yang sebenarnya. Metode ini memerlukan dua buah tebakan untuk harga-harga xawal (yaitu x0 dan x1 ). 5.2.1. Representasi grafis Dengan mempelajari representasi grafis dari metode bidang paruh ini, diharapkan para pembaca sekalian akan lebih memahami secara lebih mudah tentang prinsip kerjanya. Representasi grafis dari metode bidang paruh ini dapat dilihat seperti pada Gambar 5.5.



y y = f ( x)



[a x0



b] c = x2



x



x1



Gambar 5.5. Rrepresentasi grafis dari metode bidang paruh (bisection). Dari representasi grafis pada Gambar 5.5 di atas, dapat diambil kesimpulan dengan jelas, bahwa



Bab 5. Persamaan Aljabar Non Linier (PANL)



Metode Numerik: Komputasi dengan FORTRAN 77 dan Turbo PASCAL # 88



x2



x1 − x0 2



=



(5.9)



sehingga, setelah n kali iterasi, akan diperoleh relasi berikut



xn+1



x1 − x0 2n



=



(5.10)



Pada saat panjang interval [a,b] tidak melampaui suatu harga A (yang di dalamnya terdapat akar a ), sedemikian rupa sehingga jarak akar a tersebut dengan ekstremitas interval tidak melebihi A , maka pada saat itu toleransi perhitungan sudah dapat dilakukan (diberikan). 5.2.2. Algoritma metode bidang paruh Asumsi awal yang harus diambil adalah ‘menebak’ interval awal



[ a, b ]



dimana f ( x ) adalah kontinu padanya. Demikian pula ia harus terletak ‘mengapit’ (secara terstruktur) pada nilai akar a , sedemikian rupa sehingga



f ( a ) ⋅ f (b ) ≤ 0



(5.11)



Selengkapnya, algoritma dari metode bidang paruh ini dapat disajikan secara sistematis seperti berikut ini:



Algoritma BISECT( 1.



f , a , b , akar , ε , iter , itmax , flag )



[



]



Tebak harga interval a, b , tentukan



ε , dan itmax



2.



Set f ( 0 ) = f ( a ) ; iter = 0 , flag = 0



3.



Tentukan



atau



hitung



akar:



c = (a + b ) / 2



dan iter = iter + 1 ; 4.



Jika



f (a )⋅ f (b ) ≤ 0 ,



dan f 0 = f ( a )



maka set b = c , jika tidak a = c



(b



- a ) ≤ ε maka flag = 1 ; dan jika iter > itmax maka flag = 2 6. Jika flag = 0 ulangi (iterasi) kembali ke nomor 3 5.



Jika



7.



Akar persamaan adalah:



akar = ( a + b ) 2 , sebagai harga



akar yang terbaru 8.



Selesai.



Gambar 5.6. Algoritma komputasi dari metode bidang paruh (bisection). Bab 5. Persamaan Aljabar Non Linier (PANL)



Metode Numerik: Komputasi dengan FORTRAN 77 dan Turbo PASCAL # 89



5.2.3. Listing program metode bidang paruh Sebagai contoh perhitungan untuk dibuatkan bahasa pemrogramannya, di bawah ini diberikan persoalan untuk menghitung akar (atau akar-akar) persamaan



f (0) berikut f ( x) ≡



x − e1 x



= 0



(5.12)



Listing program sederhana tanpa sub-program (subroutine) dan program dengan subroutine disertakan dalam Gambar 5.7, 5.8 dan 5.9, baik dalam Bahasa FORTRAN maupun dalam Bahasa Turbo PASCAL. Perlu diketahui pula, bahwa pemrograman FORTRAN yang dibuat pada bab ini semuanya memiliki kompatibilitas (kesesuaian), baik untuk FORTRAN 77 ataupun untuk FORTRAN 90 dan 95.



Gambar 5.7. Listing program FORTRAN sederhana (tanpa subroutine) untuk metode bisection. Bab 5. Persamaan Aljabar Non Linier (PANL)



Metode Numerik: Komputasi dengan FORTRAN 77 dan Turbo PASCAL # 90



Gambar 5.8. Listing program FORTRAN dengan subprogram (subroutine) untuk metode bisection.



Bab 5. Persamaan Aljabar Non Linier (PANL)



Metode Numerik: Komputasi dengan FORTRAN 77 dan Turbo PASCAL # 91



Gambar 5.9. Listing program Turbo PASCAL dengan Procedure untuk metode bisection.



Bab 5. Persamaan Aljabar Non Linier (PANL)



Metode Numerik: Komputasi dengan FORTRAN 77 dan Turbo PASCAL # 92



5.3. Solusi dengan Metode Regula Falsi Seperti telah sedikit disinggung pada Sub-bab 5.2, bahwa metode bidang paruh (bisection) memiliki kelemahan pokok, yaitu kecepatannya yang rendah dalam mencapai konvergensi dan/atau divergensi, maka kelemahan pokok mengalami perbaikan pada metode regula falsi. Walaupun memiliki kelemahan semacam itu, sesungguhnya metode bidang paruh juga memiliki kelebihan dalam hal kepastian atau jaminan dalam mencapai konvergensi. Dalam sub-bab ini, akan dibahas metode regula falsi yang dapat memperbaiki atau memodifikasi beberapa kelemahan pokok dalam metode sebelumnya, terutama karena kinerjanya yang lebih cepat dalam mencapai konvergensi, dan juga masih tetap memiliki kepastian dan/atau jaminan menuju konvergensi. Pada dasarnya, solusi pencarian akar (atau akar-akar) dengan menggunakan metode regula falsi ini merupakan modifikasi dari metode bidang paruh dengan cara memperhitungkan ‘kesebangunan’ yang dapat dilihat dari kurva pada Gambar 5.10.



Gambar 5.10. Rrepresentasi grafis dari metode regula falsi. Perhatikanlah kesebangunan dua segitiga Pcb dan PQR pada Gambar 5.10 di atas, sehingga persamaan berikut dapat digunakan



Pb bc



=



PR RQ



(5.13)



atau



f (b ) − 0 b − c



=



f (b ) − f ( a ) b − a



(5.14)



sehingga Bab 5. Persamaan Aljabar Non Linier (PANL)



Metode Numerik: Komputasi dengan FORTRAN 77 dan Turbo PASCAL # 93



⎡ ⎤ b − a c = b − f (b ) ⎢ ⎥ ⎣ f (b ) − f ( a ) ⎦



(5.15)



Persamaan (5.15) di atas dikenal sebagai persamaan rekursif dari metode regula falsi. Dari Persamaan (5.15) tersebut, tampak jelas bahwa diperlukan 2 (dua) buah harga awal (yaitu a dan b ) untuk memulai proses perhitungan akar persamaan atau pencarian b . Kecepatan atau laju konvergensi dari metode regula falsi hampir sama dengan metode bidang paruh, yaitu ‘konvergensi linier’, namun dengan faktor pengali



ξ (= konstanta) yang lebih besar dari 0,5 (1 2 ≤ ξ ≤ 1).



5.3.1. Algoritma metode regula falsi Asumsi awal yang harus diambil adalah identik dengan metode bidang paruh, yaitu ‘menebak’ interval awal [ a , b ] dimana



f ( x ) adalah kontinyu



padanya. Demikian pula, interval tersebut harus terletak ‘mengapit’ (secara geometris) nilai akar



α , sedemikian rupa sehingga Persamaan (5.11) dapat



terpenuhi, yaitu



f ( b ) ⋅ f (a ) ≤ 0



Algoritma REGFAL(



f , a , b , akar , ε , iter , itmax , flag )



[



]



1.



Tebak harga interval a, b , tentukan



2.



Set



3.



Tentukan atau hitung akar:



4.



Jika



5.



Jika



ε , dan itmax



xold = 2 * b − a ; iter = 0 , flag = 0



c = b − f (b ) ⋅ [ b − a ] iter = iter + 1 ;



[ f (b ) −



f (a )] dan



f ( a ) ⋅ f ( b ) ≤ 0 , maka set a = c , jika tidak b = c abs ( c - xold ) ≤ ε maka flag = 1 ; dan jika



iter > itmax maka flag = 2 ; atau jika tidak maka iter = iter + 1 dan akar = c 6. Jika flag = 0 ulangi (iterasi) kembali ke nomor 3 7.



Selesai.



Gambar 5.11. Algoritma komputasi dari metode regula falsi. Jika diperhatikan sekuens- sekuens pencarian akar (akar-akar) persamaan pada alagoritma metode regula falsi, seperti diberikan pada Gambar 5.11 di atas, Bab 5. Persamaan Aljabar Non Linier (PANL)



Metode Numerik: Komputasi dengan FORTRAN 77 dan Turbo PASCAL # 94



maka dapat pula disimpulkan formula rekursif dari metode regula falsi sebagai berikut



xk



=



ak ⋅ f (bk ) − bk ⋅ f (ak ) ; k = 0,1, …, n f (bk ) − f (ak )



(5.16)



Sedangkan, untuk perbaikan harga variabel yang baru diperoleh, dapat digunakan persamaan kondisional berikut



⎧ (+) : ak +1 = ak ; bk +1 = xk f (ak ) ⋅ f ( xk ) ⎨ ⎩ (−) : ak +1 = xk ; bk +1 = bk



(5.17)



Jika disimpulkan secara lebih spesifik, maka metode regula falsi ini memiliki beberapa karakteristik, kinerja dan/atau sifat yang khas dalam komputasi numerik untuk PANLT sebagai berikut: Ö Memerlukan 2 (dua) harga awal (yaitu a0 dan b0 sedemikian rupa sehingga f (a0 ) ⋅ f (b0 ) ≤ 0 ,



Ö Memiliki laju konvergensi superlinier (yaitu laju konvergensi antara linier dan kuadratik), Ö Dapat digunakan dengan baik untuk fungsi-fungsi yang turunannya tak terdefinisi dengan jelas (diskontinyu), Ö Mencapai divergensi (RTE, run time error) bila tercapai ak = bk (atau selisihnya mendekati epsilon mesin, ak − bk
itmax maka flag = 2 ; atau jika tidak maka xold = x 6. Jika flag = 0 ulangi (iterasi) kembali ke nomor 3 5.



Jika



7.



Selesai.



Gambar 5.16. Algoritma komputasi dari metode Newton-Raphson. Bab 5. Persamaan Aljabar Non Linier (PANL)



Metode Numerik: Komputasi dengan FORTRAN 77 dan Turbo PASCAL # 102



Perhatikan baik-baik, bahwa algoritma di atas tidak memperhitungkan adanya kemungkinan turunan pertama fungsi



f ( x ) yang berharga nol



( f ′( x ) = 0 ). Cobalah Saudara analisis atau beri komentar tentang masalah tersebut! Jika para pembaca berpendapat bahwa harus ada peringatan tentang adanya fungsi turunan yang berharga nol, bagaimanakah bentuk algoritmanya? Adapun ringkasan umum tentang sifat dan karakteristik metode ini adalah sebagai berikut: Ö Memerlukan satu harga awal ( ≡ x0 ), Ö Konvergensi kuadrat (paling cepat), Ö Dapat diaplikasikan untuk fungsi-fungsi dan turunannya yang terdefinisi dengan jelas (≡ kontinyu dan dapat diturunkan pada xn ); sebaliknya akan menjadi kendala bila fungsinya dan turunannya tidak jelas atau sulit perolehannya, Ö Resiko “divergen”, bila f ′( x ) = 0 (≡ titik optimum), Ö Untuk kriteria penghentian iterasi, dapat dipilih salah satu atau keduanya, yaitu (a). Δ xn = xn+1 − xn ≤ ε , dan atau



ε.



(b). f ( xn ) ≤



Sistematika kerja dari solusi akar (atau akar-akar) PANLT dengan menggunakan metode Newton-Raphson dapat berbentuk seperti tabel kerja di bawah ini, yaitu dengan sekuens kerja yang mengikuti arah panah berikut. Tabel 5.2. Tabel kerja untuk metode Newton-Raphson.



k



xk



f (a k )



f (bk )



0 1



xxx … … …



















n



5.4.3. Listing program metode Newton-Raphson Seperti juga pada sub-bab-sub-bab sebelumnya, untuk problem yang sama diberikan persoalan untuk menghitung akar (atau akar-akar) persamaan Bab 5. Persamaan Aljabar Non Linier (PANL)



Metode Numerik: Komputasi dengan FORTRAN 77 dan Turbo PASCAL # 103



f ( x ) = 0 , yaitu Persamaan (5.12) berikut ini f ( x) ≡



x − e1 x



= 0



Listing program tanpa sub-program (subroutine) dan program dengan subroutine dapat dilihat berturut-turut pada Gambar 5.17 (dalam FORTRAN), Gambar 5.18 (dalam Turbo PASCAL), dan Gambar 5.19 (dalam FORTRAN disertai



dengan



subprogram



SUBROUTINE).



Seperti



juga



pemrograman



FORTRAN yang dilakukan pada sub-bab-sub-bab sebelumnya, pemrograman FORTRAN yang dibuat pada sub-bab ini semuanya memiliki kompatibilitas (kesesuaian), baik untuk FORTRAN 77 maupun untuk FORTRAN 90 dan 95.



Gambar 5.17. Listing program FORTRAN tanpa subroutine untuk metode Newton-Raphson. Bab 5. Persamaan Aljabar Non Linier (PANL)



Metode Numerik: Komputasi dengan FORTRAN 77 dan Turbo PASCAL # 104



Gambar 5.18. Listing program Turbo PASCAL tanpa procedure untuk metode Newton-Raphson. Khusus untuk pemrograman yang menggunakan subprogram procedure dalam pemrograman Turbo PASCAL, seperti pada Gambar 5.19 di bawah ini, para pembaca diharapkan dapat menerjemahkannya sendiri. Bab 5. Persamaan Aljabar Non Linier (PANL)



Metode Numerik: Komputasi dengan FORTRAN 77 dan Turbo PASCAL # 105



Gambar 5.19. Listing program FORTRAN dengan subroutine untuk metode Newton-Raphson.



Bab 5. Persamaan Aljabar Non Linier (PANL)



Metode Numerik: Komputasi dengan FORTRAN 77 dan Turbo PASCAL # 106



Perhatikan sekali lagi dengan baik, bahwa program-program (Gambar 5.17, 5.18, dan 5.19) di atas juga tidak memperhitungkan adanya kemungkinan harga fungsi turunan yang berharga nol ( f ′( x ) = df ( x ) = 0 )! Bila para pembaca menganggap perlu, Saudara dapat memperbaiki atau melakukan modifikasi program-program di atas, sedemikian rupa agar masalah fungsi turunan yang berharga nol dapat dihindari!



5.5. Solusi dengan Metode Secant Metode secant merupakan suatu metode solusi PANLT secara numerik yang dibentuk dari pendekatan melalui ‘garis secant’ di sekitar domain jawab atau akar persamaan



α . Di sisi lain, metode ini sebenarnya bentuk atau ‘varian



formula numerik’ dari bentuk turunan yang dipersyaratkan oleh metode Newton-



Raphson. Karakteristik khas dari metode ini akan dijelaskan lebih jauh pada subbab-sub-bab di bawah. Pada Sub-bab 5.4. yang disajikan terdahulu, telah dijelaskan tentang keunggulan komparatif metode Newton-Raphson dibandingkan dengan metodemetode lainnya, terutama laju konvergensinya yang paling cepat. Namun demikian, kelemahan mendasar dari metode Newton-Raphson adalah dalam hal ‘perhitungan turunan fungsi’ atau f ′( x ) . Dalam modul ini akan dipelajari suatu metode komparatif yang sebanding dengan metode Newton-Raphson untuk penyelesaian PANLT, namun memiliki keunggulan bahwa ia tidak melakukan perhitungan turunan fungsi.



Metode secant, memiliki kemiripan persamaan rekursif yang sangat dekat dengan metode Newton-Raphson. Namun demikian, perbedaan yang paling mencolok dari kedua metode tersebut adalah dalam hal cara mereka menghitung turunan fungsi y = f ( x ) , yaitu metode Newton-Raphson menghitung turunan fungsi dengan cara analitis, sedangkan metode secant menghitung turunan fungsi dengan pendekatan numeris. Oleh sebab itulah, metode secant ini mau tak mau mewajibkan para penggunanya untuk ‘menebak 2 (dua) buah nilai (sembarang)



sebagai harga xawal ’ yang berbeda. Sesuai dengan namanya, metode secant bekerja berdasarkan GARIS SECANT (garis busur) yang menghubungkan dua titik pada kurva y = f ( x ) , sedemikian rupa sehingga secara geometris akan terbentuk “kesebangunan segitiga” dan kemudian daripadanya dapat dihitung suatu titik pendekatan baru pada kurva



y = f ( x ) yang mendekati akar atau jawaban eksaknya dan



Bab 5. Persamaan Aljabar Non Linier (PANL)



Metode Numerik: Komputasi dengan FORTRAN 77 dan Turbo PASCAL # 107



kemudian dari titik yang baru ini ditarik lagi suatu ‘garis secant yang baru’ yang berhubungan dengan salah satu titik awal yang tempat kedudukannya lebih dekat ke arah akar eksaknya Demikian proses rekursif tersebut dilakukan secara berulang (iteratif) sehingga diperoleh suatu akar yang paling mendekati akar eksaknya sesuai dengan kriteria yang ditentukan.



5.5.1. Representasi grafis dari metode secant Solusi akar (atau akar-akar) suatu persamaan aljabar non-linier tunggal (PANLT) dengan menggunakan metode secant, secara sederhana, dapat diturunkan dari representasi grafis pada Gambar 5.20 di bawah.



f ( x) y = f ( x) C garis secant



E



x*



D x2



A



ο



B x1



x3



x



Gambar 5.20. Representasi garis secant pada metode secant. Perhatikanlah Gambar 5.20 di atas, dalam hal ini dapat disimpulkan bahwa dalam kesebangunan antara 2 (dua) segitiga



ABC dan ADE berlaku



hubungan perbandingan berikut



BC AB



=



DE AD



(5.30)



f ( x1 ) x1 − x3



=



f ( x2 ) x 2 − x3



(5.31)



x1 ⋅ f ( x2 ) − x3 ⋅ f ( x2 ) .



(5.32)



atau



sehingga



x2 ⋅ f ( x1 ) − x3 ⋅ f ( x1 ) =



Kemudian, pindahkan faktor x3 ⋅ f ( x2 ) dari ruas kanan ke ruas kiri sebagai berikut Bab 5. Persamaan Aljabar Non Linier (PANL)



Metode Numerik: Komputasi dengan FORTRAN 77 dan Turbo PASCAL # 108



x3 ⋅ f ( x2 ) − x3 ⋅ f ( x1 ) + x2 ⋅ f ( x1 ) =



x1 ⋅ f ( x2 ) .



(5.33)



Dan, jika kedua ruas pada Persamaan (5.33) di atas dikurangi dengan faktor



x2 ⋅ f ( x2 ) , maka akan diperoleh persamaan berikut x3 f ( x2 ) − x3 f ( x1 ) − x2 f ( x2 ) + x2 f ( x1 ) = x1 f ( x2 ) − x2 f ( x2 ) .



(5.34)



Dan, dengan penyusunan ulang, maka akan diperoleh persamaan dalam bentuk berikut



( x3 − x 2 ) ⋅ [ f ( x 2 ) −



f ( x1 ) ] =



( x1 −



x2 ) ⋅ f ( x2 ) .



(5.35)



sehingga, x3 dapat dihitung berdasarkan formula rekursif berikut, yang dihasilkan dari penyusunan ulang Persamaan (5.35) di atas



x3



=



x2 − f ( x2 ) ⋅



( x2 −



x1 )



f ( x2 ) − f ( x1 )



.



(5.36)



atau, secara umum, dalam bentuk formula rekursif berurutan (konsekutif) yang dikenal sebagai formula metode secant di bawah ini



x n +1 =



xn − f ( xn ) ⋅



( xn −



xn −1 )



f ( xn ) − f ( xn −1 )



.



(5.37)



Namun, seperti juga pada metode-metode solusi PANLT lainnya, metode ini dapat bekerja dengan baik jika dipenuhi beberapa persyaratan berikut: Ö Diperlukan 2 (dua) HARGA AWAL (yaitu xn−1 dan xn , yang keduanya merupakan tebakan yang nilainya hampir berdekatan), Ö Kedua tebakan harga awal di atas tidak boleh mengakibatkan kedua harga ‘fungsi denominator’ (masing-masing



f ( xn ) dan f ( xn−1 )



menjadi ‘saling meniadakan’ sehingga berharga 0 (nol), Ö Demikian pula, selama proses iterasi, harga-harga f ( xn ) dan f ( xn−1 ) tidak boleh tepat sama, Ö Kriteria penghentian iterasi dilakukan bilamana SALAH SATU syarat berikut telah dipenuhi: (a). Selisih harga antara xn+1 (harga akar terbaru) dengan xn (harga akar pada iterasi sebelumnya) harus lebih kecil atau sama dengan harga



ε (kriteria dalam simbol epsilon), atau dapat dituliskan juga



sebagai



Bab 5. Persamaan Aljabar Non Linier (PANL)



Metode Numerik: Komputasi dengan FORTRAN 77 dan Turbo PASCAL # 109



xn+1 − xn



≤ ε.



(5.38)



(b). Harga fungsi f ( xn+1 ) , yang diperoleh dengan cara menggunakan harga x pada iterasi terbaru, terkonvergensi menuju ke suatu harga yang (dianggap) sudah sangat kecil dan/atau menuju nol, sehingga dapat dikatakan juga lebih kecil atau sama dengan harga



ε



(epsilon), yang dapat dituliskan sebagai



f ( xn+1 )



≤ ε.



(5.39)



5.5.2. Tinjauan metode secant dan metode Newton-Raphson Karena kemiripan formulanya, mungkin di sini perlu ditinjau secara ringkas beberapa aspek penggunaan dari kedua metode ini. Secara sekilas, mungkin dapat disimpulkan bahwa metode Newton-Raphson tampaknya bekerja dengan lebih cepat. Namun, perlu dicatat pula di sini, bahwa metode secant hanya memerlukan ‘sekali evaluasi fungsi’ per langkah. Nilai fungsi yang sudah ada sebelumnya tidak perlu lagi dievaluasi. Sedangkan metode Newton-Raphson selalu memerlukan dua kali evaluasi fungsi per langkahnya. Jadi secara umum, metode



Newton-Raphson



akan



memerlukan



lebih



sedikit



iterasi



untuk



mendapatkan akurasi yang diinginkan, namun, ia akan memerlukan lebih banyak komputasi per langkah iterasi yang dilakukan. Atkinson (1978) pernah menganalisis keduanya, bahwa bila waktu yang dibutuhkan oleh program untuk mengevaluasi f ′( xn ) lebih besar sekitar 44 % dari waktu yang diperlukan untuk mengevaluasi



f ( xn ) , maka sudah dapat



dipastikan bahwa metode secant akan lebih efisien untuk digunakan.



5.5.3. Algoritma metode secant Serupa dengan metode-metode sebelumnya, selain metode Newton-



Raphson yang telah dibahas di atas, metode secant ini juga membutuhkan ‘tebakan’ dua buah harga awal yang semuanya harus berada di sekitar DOMAIN JAWAB dari akar a (secara intuitif), sedemikian rupa sehingga formula tersebut konvergen (menuju ke titik jawab). Hal lain yang harus diperhatikan adalah meskipun metode secant ini membutuhkan dua buah nilai awal, namun ia dapat meringankan beban tambahan kepada penggunanya dalam hal perhitungan fungsi turunan f ′( xn ) , Bab 5. Persamaan Aljabar Non Linier (PANL)



Metode Numerik: Komputasi dengan FORTRAN 77 dan Turbo PASCAL # 110



di setiap iterasi (titik xn ). Hal ini merupakan salah satu keuntungan dari penggunaan metode ini dibandingkan dengan metode Newton-Raphson, mengingat tidak semua fungsi dapat diturunkan atau mempunyai turunan pada suatu interval yang kontinyu. Di samping itu juga, jaminan konvergensi dan bahkan laju konvergensinya masih jauh lebih baik dari metode regula falsi, seperti yang telah dibahas pada Sub-bab 5.3 di atas. Secara ringkas, sistematika dari algoritma metode secant ini dapat disajikan sebagai berikut: Algoritma SECANT( f , x , x0 , x1 , ,



ε , iter , itmax , flag )



1. Set harga variabel-variabel: iter = 0, flag = 0; 2. Set x = x1 − f ( x1 ) ⋅[ x1 − x0 ]



[ f ( x1 ) −



f ( x0 ) ] ; ;



3. Jika abs ( x - x1 ) ≤ ε maka flag = 1 ; atau jika



iter > itmax maka flag = 2 ; atau jika tidak maka set:



iter = iter + 1 x0 = x1 x1 = x 4. Jika flag = 0 ulangi (iterasi) kembali ke nomor 2 5. Selesai. Gambar 5.21. Algoritma komputasi dari metode secant. Perhatikan baik-baik, bahwa algoritma di atas tidak memperhitungkan adanya kemungkinan kedua fungsi denominator ( f ( x0 ) dan f ( x1 ) ) berharga sama atau keduanya berharga nol. Pembaca sekalian dapat menganalisis atau memberi komentar tentang masalah tersebut! Jika pembaca berpendapat bahwa harus ada peringatan tentang bahaya fungsi turunan yang berharga nol, bagaimanakah bentuk algoritmanya? Adapun ringkasan umum tentang sifat dan karakteristik metode ini adalah sebagai berikut: Ö Memerlukan 2 (dua) harga awal ( x0 dan x0 ), Ö Konvergensinya bersifat superlinier, namun lebih mendekati kuadratis (mendekati metode Newton-Raphson), Bab 5. Persamaan Aljabar Non Linier (PANL)



Metode Numerik: Komputasi dengan FORTRAN 77 dan Turbo PASCAL # 111



Ö Sesuai untuk fungsi yang turunannya tak terdefinisi dengan jelas atau sulit dilakukan (diskontinyu) sehingga kendala perhitungan turunan fungsi dapat dihindari, Ö Divergen (RTE, run time error) bila selama proses iterasi diperoleh harga xn = xn−1 (yang berarti, bahwa Δx = xn − xn−1 = 0 ), Ö Serupa dengan yang ada pada mertode Newton-Raphson, maka kriteria penghentian iterasi pada metode secant ini adalah sebagai berikut: •



Δ xn = xn+1 − xn ≤ ε , dan/atau







f ( xn+1 ) ≤ ε .



Untuk memudahkan aplikasinya, berikut diberikan sistematika kerja dari metode secant seperti di atas dalam bentuk tabel kerja seperti di bawah ini, yaitu dengan sekuens kerja yang mengikuti arah panah. Tabel 5.3. Tabel kerja untuk metode secant.



n



xn−1



xn



f ( xn−1 )



0



xxx



yyy







1



… …







f ( xn )



… n







Perhatikan baik-baik Tabel 5.3 di atas, bahwa untuk memulai prosesi iterasi selalu diperlukan 2 (dua) harga awal, yaitu xxx dan yyy pada baris n = 0 .



5.5.3. Listing program metode secant Dengan contoh persoalan seperti yang diberikan pada sub-bab-sub-bab sebelumnya, yaitu problem untuk menghitung akar (atau akar-akar) Persamaan (5.12) sebagai berikut



f ( x) ≡



x − e1 x



= 0



para pembaca dapat melihat dengan jelas, yaitu kontras dengan yang ada pada metode Newton-Raphson, bahwa pada pemrograman-pemrograman untuk metode secant yang akan dilakukan di bawah ini tidak dilakukan perhitungan (termasuk juga dalam bentuk sub-program) untuk turunan fungsi SPANLT yang Bab 5. Persamaan Aljabar Non Linier (PANL)



Metode Numerik: Komputasi dengan FORTRAN 77 dan Turbo PASCAL # 112



dijadikan obyek perhitungan. Fungsi SPANLT yang menjadi persoalan di sini ditulis dalam sub-program FUNCTION yang diberi nama f(x). Listing program tanpa sub-program (subroutine) dan program dengan subroutine dapat dilihat berturut-turut pada Gambar 5.22 (dalam FORTRAN), Gambar 5.23 (dalam Turbo PASCAL), Gambar 5.24 (dalam FORTRAN disertai dengan subprogram SUBROUTINE) dan Gambar 5.25 (dalam Turbo PASCAL disertai dengan subprogram PROCEDURE), seperti di bawah ini. Seperti juga pemrograman FORTRAN yang dilakukan pada sub-bab-sub-bab sebelumnya, pemrograman FORTRAN yang dibuat pada sub-bab ini semuanya juga memiliki kompatibilitas yang tinggi, baik untuk FORTRAN 77 maupun untuk FORTRAN 90 dan 95.



Gambar 5.22. Listing program FORTRAN tanpa subroutine untuk metode secant. Bab 5. Persamaan Aljabar Non Linier (PANL)



Metode Numerik: Komputasi dengan FORTRAN 77 dan Turbo PASCAL # 113



Gambar 5.23. Listing program Turbo PASCAL tanpa procedure untuk metode secant.



Bab 5. Persamaan Aljabar Non Linier (PANL)



Metode Numerik: Komputasi dengan FORTRAN 77 dan Turbo PASCAL # 114



Gambar 5.24. Listing program FORTRAN dengan subroutine untuk metode secant.



Bab 5. Persamaan Aljabar Non Linier (PANL)



Metode Numerik: Komputasi dengan FORTRAN 77 dan Turbo PASCAL # 115



Gambar 5.25. Listing program Turbo PASCAL dengan procedure untuk metode secant. Perhatikan baik-baik sekali lagi, bahwa listing program-program di atas tidak juga memperhitungkan adanya kemungkinan kedua fungsi f ( x0 ) dan f ( x1 ) berharga sama atau keduanya nol! Bila para pembaca menganggap perlu, cobalah perbaiki atau modifikasi program-program di atas, agar kemungkinan adanya masalah divergensi akibat fungsi-fungsi denominator dapat dihindari! Bab 5. Persamaan Aljabar Non Linier (PANL)



Metode Numerik: Komputasi dengan FORTRAN 77 dan Turbo PASCAL # 116