My Blog List

Friday, 30 December 2011

Program Metode Secant

Program metode_secant;
uses crt;
label rypro,prosker;
var
   x0,x1,x2,fx0,fx1,galat,eps:real;
   iterasi,max:longint;
   begin
   clrscr;
   writeln('metode secant');
   writeln('Mencari akar dari persamaan f(x)=exp(x)-sin(x)+(7*x)');
   writeln;
   writeln;
   write('masukan nilai x0 ! ');
   readln(x0);
   write('masukan nilai x1 ! ');
   readln(x1);
   write('masukan nilai epsilon! ');
   readln(eps);
   write('berapa maksimum iterasi ?');
   readln(max);
   iterasi:=1;
   writeln;
   writeln('----------------------------------------------------------');
   writeln('Iterasi f(x0) f(x1) x2 galat');
   writeln('----------------------------------------------------------');
   rypro:
   writeln;
   readln;
   fx0:=exp(0)-4*x0;
   fx1:=exp(x1)-4*x1;
   x2:=x1-(fx1*(x1-x0)/(fx1-fx0));
   fx0:=exp(x0)-sin (x0)+(7*x0);
    fx1:=exp(x1)-sin (x1)+(7*x1);
    x2:=x1-(fx1*(x1-x0)/(fx1-fx0));
    galat:=abs((x2-x1)/x2);
    writeln(' ',iterasi,' ',fx0:14:13,' ',fx1:14:13,' ',x2:14:13,' ',galat:14:13);
    iterasi:=iterasi+1; x0:=x1; x1:=x2;
    if (galat <= eps)
     then begin
      readln;
    writeln;
    writeln('---------------------------------------------------------');
    writeln;
    writeln('yaitu ', galat:14:13,' <= ',eps:1:13,' saat x2 =',x2:1:13);
    writeln('maka akar = ',x2:1:13);
    goto prosker; end else if (iterasi > max) 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 ',x2:14:13);
    end else goto rypro;
    prosker:
    readln end.

No comments:

Post a Comment