Seri Kuliah Metode Numerik (Modul 8: Metode Secant untuk Solusi PANLT (Persamaan Aljabar Non-Linier Tunggal) (1/1) Modul 8
METODE SECANT untuk
Solusi Akar PERSAMAAN ALJABAR NON-LINIER TUNGGAL
A. Pendahuluan
Pada modul 7 terdahulu, telah dijelaskan tentang keunggulan komparatif Metode Newton-Raphson dibanding metode-metode 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 keduanya 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 tidak ada pilihan lagi mengharuskan para penggunakan untuk ‘menebak 2 buah (sembarang) harga x-awal’ yang berbeda.
Sesuai dengan namanya, Metode Secant bekerja berdasarkan GARIS SECANT (garis busur) yang menghubungkan 2 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 kemudian dari titik yang baru ini ditarik lagi suatu ‘garis secant yang baru’ yang berhubungan dengan salah satu titik awal yang tempat kedududkannya lebih dekat ke arah akar eksaknya, demikian proses rekursif tersebut dilakukan secara berulang (iteratif) sehingga
Seri Kuliah Metode Numerik (Modul 8: Metode Secant untuk Solusi PANLT (Persamaan Aljabar Non-Linier Tunggal) (2/2) diperoleh suatu akar yang paling mendekati akar eksaknya sesuai dengan kriteria yang ditentukan.
B. Solusi Akar PANLT dengan Metode Secant
Solusi akar (atau akar-akar) dengan menggunakan Metode Secant, secara sederhana, dapat diturunkan dari representasi grafis di bawah ini:
Gambar 8.1. Representasi grafis untuk Metode Secant.
Perhatikan Gb. 8.1. di atas, maka kesebangunan segitiga yang terbentuk adalah perbandingan berikut:
3 2 2 3 1 1) ( ) ( x x x f x x x f − = − atau ) ( ) ( ) ( ) ( 1 3 1 1 2 3 2 2 f x x f x x f x x f x x − = −
dan, pindahkan faktor x3 f(x3) di ruas kanan ke ruas kiri:
) ( ) ( ) ( ) ( 2 3 1 2 1 1 2 3 f x x f x x f x x f x x − + =
tambahkan masing-masing ruas dengan − x2 f (x2), sehingga diperoleh:
Seri Kuliah Metode Numerik (Modul 8: Metode Secant untuk Solusi PANLT (Persamaan Aljabar Non-Linier Tunggal) (3/3) ) ( ) ( ) ( ) ( ) ( ) ( 2 3 1 2 2 2 1 1 2 2 2 3 f x x f x x f x x f x x f x x f x x − − + = −
kemudian, setelah penyusunan ulang diperoleh:
(
x3− x2)(
f(x2)− f(x1))
=(
x1− x2)
f(x2)sehingga x dapat dihitung dari persamaan di atas setelah dilakukan 3 penyusunan ulang persamaan, sebagai berikut:
) ( ) ( ) ( 1 2 1 2 2 2 3 x f x f x x x f x x − − − =
atau secara umum, dalam bentuk formula rekursif beturutan dari Metode Secant: ) ( ) ( ) ( 1 1 1 − − + = − −− n n n n n n n x f x f x x x f x x
Namun, seperti juga pada metode-metode solusi PANLT lainnya, metode ini dapat bekerja dengan baik jika dipenuhi beberapa persyaratan berikut:
ð Diperlukan DUA HARGA AWAL (yaitu: xn−1 dan x , yang n
keduanya merupakan tebakan yang nilainya hampir berdekatan),
ð Kedua tebakan harga awal diatas, tidak boleh mengakibatkan kedua harga ‘fungsi denominator’ (masing-masing f(xn) dan
) (xn−1
f ) menjadi ‘saling meniadakan’ ataupun 0 (nol),
ð 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 xn+1 (harga akar terbaru) dengan x (harga n akar pada iterasi sebelumnya) lebih kecil atau sama dengan
Seri Kuliah Metode Numerik (Modul 8: Metode Secant untuk Solusi PANLT (Persamaan Aljabar Non-Linier Tunggal) (4/4) harga ε, atau dapat dituliskan sebagai:
ε ≤ − + n n x x 1 , atau
(b). Harga fungsi f(xn+1) (dengan menggunakan harga x pada iterasi terbaru) sudah sangat kecil dan menuju nol atau dapat dikatakan juga lebih kecil atau sama dengan harga ε, yang dapat dituliskan sebagai:
ε ≤
+ ) (xn 1
f
C. Perbandingan Metode Secant dan Metode Newton-Raphson Karena kemiripan formulanya, mungkin disini perlu ditinjau secara ringkas beberpa aspek penggunaan dari kedua metode ini.
Secara sekilas, mungkin dapat disimpulkan bahwa Metode Newton-Raphson tampaknya bekerja dengan lebih cepat. Namun, perlu dicatat pula disini, 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 2 kali evaluasi fungsi per-langkahnya. Jadi secara umum, Metode Newton akan memerlukan lebih sedikit iterasi untuk mendapatkan akurasi yang diinginkan, namun, ia akan memerlukan lebih banyak komputasi per-langkah iterasi yang dilakukan.
Atkinson (1978) menganalisis keduanya, bahwa bila waktu yang dibutuhkan oleh program untuk mengevaluasi f '(x) lebih besar dari 44 % dari waktu yang diperlukan untuk mengevaluasi f(x), maka sudah dapat dipastikan bahwa Metode Secant akan lebih efisien untuk digunakan.
D. Algoritma Metode Secant
Serupa dengan metode-metode sebelumnya, selain Metode Newton-Raphson yang akan dibahas pada Modul 7, Metode
Seri Kuliah Metode Numerik (Modul 8: Metode Secant untuk Solusi PANLT (Persamaan Aljabar Non-Linier Tunggal) (5/5) Secant ini juga membutuhkan ‘tebakan’ 2 buah harga awal yang semuanya harus berada di sekitar DOMAIN JAWAB dari akar α (secara intuitif), sedemikian rupa sehingga formula tersebut konvergen (menuju ke titik jawab).
Hal lain yang harus diperhatikan adalah meskipun Metode Secant ini membutuhkan 2 buah nilai awal, namun ia dapat meringankan beban tambahan kepada penggunanya dalam hal perhitungan fungsi turunan f '
( )
xn , di setiap iterasi (titik x ). Hal ini merupakan salah n satu keuntungan dari penggunaan metode ini dibandingkan 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 Modul 6.Secara ringkas, 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. 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 ke nomor 2; 5. Selesai.
Seri Kuliah Metode Numerik (Modul 8: Metode Secant untuk Solusi PANLT (Persamaan Aljabar Non-Linier Tunggal) (6/6) Perhatikan dengan baik-baik: bahwa algoritma di atas tidak memperhitungkan adanya kemungkinan kedua fungsi denominator (f(x1) dan f(x0)) berharga nol atau berharga sama. Cobalah analisis atau beri komentar saudara tentang masalah tersebut ! Jika saudara berpendapat harus ada peringatan tentang bahaya fungsi turunan yang berharga nol, bagaimanakah bentuk algoritmanya menurut saudara ?
Adapun ringkasan umum tentang sifat dan karakteristik metode ini adalah sebagai berikut:
ð Memerlukan 2 harga awal (≡ x0 dan x1),
ð Konvergensi superlinier, namun mendekati Kuadratis (mendekati metode Newton-Raphson),
ð 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 (≡ ∆x = 0 tepat),
ð Kriteria penghentian iterasi : xn+1−xn ≤ε dan atau ε
≤
+ ) (xn 1
f .
Adapun tabel kerja dari metode ini (sesuai dengan algoritmanya), dapat disajikan secara sistematis sebagai berikut:
Tabel 8.1. Tabel Kerja Metode Secant
n xn-1 xn f(xn-1) f(xn)
0 … … … …
1 … … … …
Seri Kuliah Metode Numerik (Modul 8: Metode Secant untuk Solusi PANLT (Persamaan Aljabar Non-Linier Tunggal) (7/7) E. Listing Program Metode Secant
Sama seperti pada modul-modul sebelumnya, problem yang diberikan adalah perhitungan untuk akar (akar-akar) persamaan berikut:
0 )
(x ≡ x − e1 x = f
Listing program sederhana (non-subroutine) dan program dengan
subroutine untuk Metode Secant disertakan dalam gambar-gambar
8.2. dan 8.3. di bawah ini, yang ditulis dalam Bahasa FORTRAN 77 (kompatibel dengan Bahasa FORTRAN 90/95):
C Program: Solusi Persamaan Aljabar Non-Linier Tunggal (PANLT) C dengan Metode 'SECANT'
C VARIAN: Program sederhana/Non-Subroutine
C Kondisi proses dinyatakan dalam variabel 'flag'
C flag = 0; berarti sistem masih dalam proses iterasi C flag = 1; berarti proses telah mencapai konvergensi
C flag = 2; berarti jumlah iterasi maksimum telah terlampaui C --- implicit none
REAL*8 eps,f,x,x0,x1 INTEGER flag,iter,maxiter
WRITE(*,'(A,$)') 'Harga-harga awal x0, x1 : ' READ(*,*) x0,x1
WRITE(*,'(A,$)') 'Jumlah iterasi maksimum : ' READ(*,*) maxiter
WRITE(*,'(A,$)') 'Epsilon/kriteria proses : ' READ(*,*) eps
iter = 0 flag = 0
DO WHILE(flag .EQ. 0)
x = x1 - f(x1)*(x1 - x0)/(f(x1) - f(x0)) IF (ABS(x - x1) .LE. eps) THEN
flag = 1
ELSEIF (iter .GT. maxiter) THEN flag = 2 ELSE iter = iter + 1 x0 = x1 x1 = x ENDIF ENDDO WRITE(*,*) 'x0 = ',x0
Seri Kuliah Metode Numerik (Modul 8: Metode Secant untuk Solusi PANLT (Persamaan Aljabar Non-Linier Tunggal) (8/8)
WRITE(*,*) 'x1 = ',x1 WRITE(*,*) 'x = ',x WRITE(*,*) 'f(x) = ',f(x) WRITE(*,*) 'Flag = ',flag
WRITE(*,*) 'Jumlah iterasi = ',iter STOP END FUNCTION f(x) REAL*8 f,x f = x - exp(1.0D0/x) RETURN END
Gambar 8.2. Listing program Metode Secant sederhana (tanpa subroutine).
C Program: Solusi Persamaan Aljabar Non-Linier Tunggal (PANLT) C dengan Metode 'SECANT'
C VARIAN: Program dengan Subroutine
C Kondisi proses dinyatakan dalam variabel 'flag'
C flag = 0; berarti sistem masih dalam proses iterasi C flag = 1; berarti proses telah mencapai konvergensi
C flag = 2; berarti jumlah iterasi maksimum telah terlampaui C --- implicit none
external f
REAL*8 eps,f,x,x0,x1 INTEGER flag,iter,maxiter
WRITE(*,'(A,$)') 'Harga-harga awal x0, x1 : ' READ(*,*) x0,x1
WRITE(*,'(A,$)') 'Jumlah iterasi maksimum : ' READ(*,*) maxiter
WRITE(*,'(A,$)') 'Epsilon/kriteria proses : ' READ(*,*) eps iter = 0 flag = 0 CALL SECANT(f,x0,x1,x,eps,iter,maxiter,flag) WRITE(*,*) 'x0 = ',x0 WRITE(*,*) 'x1 = ',x1 WRITE(*,*) 'x = ',x WRITE(*,*) 'f(x) = ',f(x) WRITE(*,*) 'Flag = ',flag
WRITE(*,*) 'Jumlah iterasi = ',iter STOP
Seri Kuliah Metode Numerik (Modul 8: Metode Secant untuk Solusi PANLT (Persamaan Aljabar Non-Linier Tunggal) (9/9) FUNCTION f(x) REAL*8 f,x f = x - exp(1.0D0/x) RETURN END SUBROUTINE SECANT(ff,x0,x1,x,eps,itnum,itmax,prflag) C --- C Sub-program: Solusi PANLT dengan metode SECANT | C sebagai varian dari metode BISECTION | C ff : fungsi f(x) = 0 yang akan dicari akarnya | C x0 : nilai x-awal, identik dengan x(n-1) | C x1 : nilai x-awal, identik dengan x(n) | C x : nilai x-baru, identik dengan x(n+1) | C eps : kriteria atau ketelitian penghitungan | C itnum : jumlah iterasi yang dilakukan proses | C itmax : jumlah pembatas iterasi untuk proses | C prflag : identifikasi untuk konvergensi, yaitu: | C 0 = proses sedang/akan berlangsung | C 1 = proses mencapai konvergensinya | C 2 = jumlah iterasi maksimum (itmax) telah | C terlampaui | C --- REAL*8 eps,ff,x,xold,x0,x1 INTEGER prflag,itnum,itmax itnum = 0 prflag = 0 DO WHILE(prflag .EQ. 0) x = x1 - ff(x1)*(x1 - x0)/(ff(x1) - ff(x0)) IF (ABS(x - x1) .LE. eps) THEN
prflag = 1
ELSEIF (itnum .GT. itmax) THEN prflag = 2 ELSE itnum = itnum + 1 x0 = x1 x1 = x ENDIF ENDDO RETURN END
Gambar 8.3. Listing program dengan subroutine.
Perhatikan sekali lagi dengan baik-baik: bahwa listing program-program di atas juga tidak memperhitungkan adanya kemungkinan harga kedua fungsi f(x1) dan f(x0) berharga sama atau keduanya nol !
Seri Kuliah Metode Numerik (Modul 8: Metode Secant untuk Solusi PANLT (Persamaan Aljabar Non-Linier Tunggal) (10/10) Bila saudara anggap perlu, coba perbaiki atau modifikasi program-program di atas, agar supaya kemungkinan adanya masalah divergensi akibat fungsi-fungsi denominator dapat dihindari !
Tugas:
Cari akar (akar-akar) dari persamaan-persamaan berikut: (a). f (x) = e−x ⋅ln(x)
(b). f (x) = x6 − x −1 dan
(c). f (x) = x +e−Bx2 cos(x) ; dengan harga-harga B = 1, 5, 10, 25 dan 50. Analisislah hasil-hasilnya.
E. Daftar Pustaka
Atkinson, Kendal E., “An Introduction to Numerical Analysis”, John Wiley & Sons, Toronto, pp. 48-52, 1978.
Atkinson, L.V., Harley, P.J., “An Introduction to Numerical Methods with Pascal”, Addison-Wesley Publishing Co., Tokyo, pp. 51-54, 1983.