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