5/01/2012

Metode secant merupakan perbaikan dari metode regula-falsi dan newton raphson dimana kemiringan dua titik dinyatakan secara diskrit, dengan mengambil bentuk garis lurus yang melalui satu titik.
y – y0 = m(x x0 ) atau dimana m diperoleh dari:

Bila y = F(x), ny dan xn diketahui maka titik ke n+1 adalah :
yn+1-yn = mn(xn+1-xn)
Bila titik xn+1 dianggap akar persamaan maka : yn+1=0
sehingga diperoleh : -yn = mn(xn+1-xn)
atau


Persamaan ini yang menjadi dasar pada proses pendekatan dimana nilai pendekatannya


adalah : 
Sehingga untuk menggunakan metode secant ini diperlukan dua titik pendekatan x0 dan
x1. Kedua titik pendekatan ini diambil pada titik-titik yang dekat agar konvergensinya
dapat dijamin.
Kelebihan Metode Sekan adalah dapat digunakan untuk mencari akar- akar persamaan dari persamaan polinomial kompleks, atau persamaan yang turunan pertamanya sangat sulit didapatkan.
Algoritma Metode Secant :

  1. Definisikan fungsi F(x)
  2. Ambil range nilai x =[a,b] dengan jumlah pembagi p
  3. Masukkan torelansi error (e) dan masukkan iterasi n
  4. Gunakan algoritma tabel diperoleh titik pendekatan awal x0 dan x1 untuk setiap range yang diperkirakan terdapat akar dari :
    F(xk) * F(xk+1)<0 maka x0 = xk dan x1=x0+(b-a)/p . Sebaiknya gunakan metode tabel atau grafis untuk menjamin titik pendakatannya adalah titik pendekatan yang konvergensinya pada akar persamaan yang diharapkan.
  5. Hitung F(x0) dan F(x1) sebagai y0 dan y1
  6. Untuk iterasi I = 1 s/d n atau |F(xi)| ≥ e

    Hitung yi+1 = F(xi+1)
  7. Akar persamaan adalah nilai x yang terakhir.
Contoh Program Aplikasi pemrograman linier dengan Metode Secant dalam bahasa Pascal:
{************** CONTOH PROGRAM SEDERHANA ****************** **         PEMROGRAMAN NON LINIER DENGAN METODE SECANT       **
*****************************************************************}
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.

0 comments:

Post a Comment

Total Pageviews

Followers

Popular Posts

Recent Posts

free hit counter
Google Translator

Sample Text

EBook--Openbooknesia.com

Unordered List

Definition List