program Newton_Raphson;
uses wincrt;
var
i, max : integer;
er, tolmax, tolmin, xbaru, xlama : real;
label 1, 2;
function f(a:real):real;
begin
f:= 3*a*a - 12;
end;
function g(b:real):real;
begin
g:= 6*b;
end;
begin
1:
write('Tebakan awal = ');readln(xlama);
write('Toleransi maksimum = ');readln(tolmax);
write('Toleransi minimum = ');readln(tolmin);
write('Iterasi maksimum = ');readln(max);
writeln;
writeln(' i = ',i,' X',i,' = ',xlama:0:6);
i:= 1;
repeat
if g(xlama) = 0 then
begin
writeln('');
writeln('Akar gagal ditemukan karena nilai turunan = 0.');
goto 2;
end;
xbaru:= xlama - (f(xlama)/g(xlama));
er:= abs(xbaru-xlama);
writeln(' i = ',i,' X',i,' = ',xbaru:0:6);
if er > tolmax then
begin
writeln('');
writeln('Fungsi divergen.');
goto 2;
end;
if i > max then
begin
writeln('');
writeln('Fungsi belum konvergen.');
goto 2;
end;
xlama:= xbaru;
i:= i + 1;
until er < tolmin;
writeln('');
writeln('Akar ditemukan!');
writeln('Pada iterasi ke-',i-1,' dengan akarnya adalah ',xlama:0:6);
writeln('Maka fungsi anda konvergen ke ',xlama:0:6);
2:
writeln('');
writeln('Ingin mencoba lagi? 1. Ya 2. Tidak');readln(i);
if i = 1 then
begin
clrscr;i:= 0;goto 1;
end
else
begin
writeln('');
writeln('Terima kasih sudah menggunakan program ini.');
end;
Tidak ada komentar:
Posting Komentar