Metode secant merupakan perbaikan dari metode regula-falsi dan newton raphson dimana kemiringan dua titik dinyatakan sacara diskrit, dengan mengambil bentuk garis lurus yang melalui satu titik. Masalah potensial dalam menerapkan metode Newton-Raphson adalah evaluasi dari turunan.
(1.1)
Metode Newton-Raphson:
(1.2)
Algoritma Metode Secant:
- Definisikan fungsi F(x)
- Definisikan torelansi error (e) dan iterasi maksimum (n)
- Masukkan dua nilai pendekatan awal yang di antaranya terdapat akar yaitu x0 dan x1,sebaiknya gunakan metode tabel atau grafis untuk menjamin titik pendakatannya adalah titik pendekatan yang konvergensinya pada akar persamaan yang diharapkan.
- Hitung F(x0) dan F(x1) sebagai y0 dan y1
- Untuk iterasi I = 1 s/d n atau |F(xi)|
- Akar persamaan adalah nilai x yang terakhir.
Flowchart Metode Secant :
Start
F
T
iterasi=iterasi+1
Dapatkan :
(xn-1=x0,xn=x1,yn-1=F(x0),yn=F(x1))
- x0=x1,x1=xn+1, yn-1=F(x0),yn=F(x1)
Inisialisasi :
- iterasi = 0
Dapatkan y1=F(x0) dan y2=F (x1)
Definisi Fungsi F(x)
{************** CONTOH PROGRAM SEDERHANA ******************
** PEMROGRAMAN NON LINIER DENGAN METODE SECANT **
** Copyright : KARINA ALMISANING DYAH @2010 **
****************************************************************}
Program Metode_Secant;
uses crt;
var x0,x1,x2,fx0,fx1,fx2,eps:real; iterasi,max,i:longint;
begin
clrscr;
writeln(‘PEMROGRAMAN NON LINIER DENGAN METODE SECANT’);
writeln(‘MENCARI AKAR DARI PERSAMAAN F(x)=x^2-(x+1)*exp(-x)’);
writeln;
writeln;
write(‘Masukkan Nilai X0 : ‘); readln(x0);
write(‘Masukkan Nilai X1 : ‘); readln(x1);
write(‘Masukkan Nilai Toleransi Error (e ) : ‘); readln(eps);
write(‘Berapa maksimum iterasi : ‘); readln(max);
writeln(‘————————————————–’);
writeln(‘Iterasi X F(x)’);
writeln(‘————————————————–’);
i := 1;
for iterasi:=1 to max do
begin
fx0 := (x0*x0)-((x0+1)*exp(-x0));
fx1 := (x1*x1)-((x1+1)*exp(-x1));
x2 := x1-(fx1*(x1-x0)/(fx1-fx0));
fx2 := (x2*x2)-((x2+1)*exp(-x2));
if(abs(fx2) <= eps) then
begin
iterasi := max;
writeln(‘ ‘,i,’ ‘,x1:9:8,’ ‘,fx1:14:13,”);
writeln;
writeln(‘—————————————————’);
writeln;
writeln;
write(‘Karena |Fx’,i,’| (‘,abs(fx1):14:13,’) <= toleransi’);
writeln(‘ (‘,eps:8:7,’), maka akar x =’,x1:8:7,”);
end
else
begin
writeln(‘ ‘,i,’ ‘,x1:9:8,’ ‘,fx1:14:13,”);
if(abs(fx0) > abs(fx1)) then x0 := x1
else x0 := x0;
x1 := x2;
inc(i);
end;
end;
if (i > iterasi) then
begin
readln;
writeln;
writeln(‘——————————————————-’);
writeln;
writeln;
writeln(‘karena maksimum iterasi adalah sebanyak ‘,max,’ iterasi’);
writeln(‘maka akar yang diambil adalah nilai x2 saat iterasi ke-’,max);
writeln(‘Jadi, akar adalah ‘,x0:14:13);
end;
readln;
end.
Contoh Soal :
1) Hitung salah satu akar dari persamaan berikut ini, dengan metode Secant.
f (x) = x3 + x2 – 3x – 3 = 0.
Penyelesaian
Iterasi pertama, diambil dua nilai awal yaitu x = 1 dan x = 2.
Untuk x1 = 1, ® f (x1 = 1) = – 4, dan
x2 = 2, ® f (x2 = 2) = 3.
Dengan menggunakan persamaan (1.2), didapat:
= = 1,57142.
Pada iterasi kedua, hitungan dilakukan berdasar nilai
x2 = 2 dan x3 = 1,57142.
Untuk x2 = 2, ® f (x2 = 2) = 3, dan
x3 = 1,57142, ® f (x3 = 1,57142) = -1,36449.
Dengan menggunakan persamaan (1.2), didapat:
= = 1,70540.
Dengan menggunakan pemrograman komputer, hasilnya diberikan pada Tabel 1.1, dan iterasi ke 5 merupakan hasil hitungan yang diperoleh yaitu x = 1,73205.
Tabel 1.1. Hasil hitungan metode Secant
I
xi – 1
xi
xi + 1
f (xi – 1)
f (xi)
f (xi + 1)
1
1.00000
2.00000
1.57143
– 4.00000
3.00000
– 1.36443
2
2.00000
1.57143
1.70541
3.00000
– 1.36443
– 0.24774
3
1.57143
1.70541
1.73514
– 1.36443
– 0.24774
0.02925
4
1.70541
1.73514
1.73200
– 0.24774
0.02925
– 0.00051
5
1.73514
1.73200
1.73205
0.02925
– 0.00051
0.00000
2) Hitung akar persamaan dari :
,dimana x1 = 1 dan x2 = 2 ?
Jawab :
f(1) = -4
f(2) = 3
Iterasi I :
X3 = x2 – (f(x2) (x2 – x1) / f(x2)-f(x1))
= 2 – (3 (2-1) / 3 – (-4)) = 1,57142
F (1.57142) = -1.36449
Iterasi 2 :
x4 = x3 – (f(x3)(x3-x2) / f(x3)-f(x2))
= 1.57142 – (-1,36449) (1.57142 – 2)
——————————–
-1.36449 – 3
= 1,70540
F (1.70540) = -0.24774
Iterasi 3 :
x5 = x4 – (f(x4)(x4-x3) / f(x4)-f(x3))
= 1.70540 – (-0.24774) (1.71 – 1.57)
——————————-
(-0.24774)-(-1.36449)
= 1.73514
F (1.73514) = 0.02925
Iterasi 4 :
x6 = x5 – (f(x5)(x5-x4) / f(x5)- f(x4))
= 1.73514 – 0.02925 (1.73514 – 1.70540)
————————————-
0.02925 – (-0.024774)
= 1.73200
F (1.73200) = -0.00051
Iterasi 5 :
x7 = x6 – (f(x6)(x6-x5) / f(x6) – f(x5))
= 1.73200 – (-0.00051)(1.73200 – 1.73514)
————————————–
– 0.00051 – 0.02925
= 1.073205
F (1.073205) = 0
.: maka akarnya adalah 1.073205
3) Terapkan dengan metode secant pada persamaan :
F(x) = x2 – x – 2 , dengan x1 = 0 dan x2 = 3 dan error = 0.05 ?
Jawab :
F(0) = -2
F(3) = 4
Iterasi I : [0,3]
x3 = x2 – (f(x2)(x2-x1)/f(x2)-f(x1))
= 3 ( 4 (3-0) / 4 – (-2) ) = 1
error = |1 – 3| =2
Iterasi 2 : [1,3]
f(1) = -2
f(3) = 4
x3 = 4 – (4(3-1)/4-(-2)) = 2
error = |2-1| =1
Iterasi 3 : [2,3]
f(2) = 0
f(3) = 4
x3 = 3 – (4(3-2)/4-0) = 2
error = |2-2| = 0
.: maka akarnya adalah 2
Latihan :
- Terapkan metode secant pada persamaan:
F(x) = x2 – 6x + 8 , dengan a = 3 dan b = 6 dan error = 0.1?
- Tentukan salah satu akar dari persamaan non linier f(x) = 3x2 – x – 2 dengan metode Secant jika diketahui nilai awal x0 = 0,5 dan x1 = 1,5 ; XTOL = 0,05 serta ketelitian hingga 3 desimal!
- Tentukan salah satu akar dari persamaan non linier f(x) = x3 – 2 dengan metode Secant jika diketahui nilai awal x0 = -2 dan x1 = 2 ; serta ketelitian hingga 2 desimal!
- Tentukan salah satu akar dari persamaan non linier f(x) = 2x3 – x2 – 1 dengan metode Secant jika diketahui nilai awal x0 = -5 dan x1 = 2 ; serta ketelitian hingga 2 desimal!
DAFTAR PUSTAKA
Basuki, Ahmad dan Nana Ramadijanti. 2005. Metode Numerik dan Algoritma Komputasi. Yogyakarta : C.V. Andi OFFSET