Jumat, 03 Mei 2013

Metode Newton Raphson pada pascal


uses crt;
label
ulang;
var x,x1,y,y1,z,f,f1,f2:real;
i : integer;
ab:char;
begin
ulang:
clrscr;
repeat
begin
writeln('Tentukan akar dari f(x)= x^2-5x+6 dengan Metode Newton Raphson');
writeln;
write('Masukan nilai x1 = ');
readln(x1);
y1 := x1 * x1 - 5 * x1 + 6;
f1 := 2 * x1 - 5;
f2 := 2;
z := (y1 * f2) /  (f1 * f1);
writeln('nilai f(x1)   = ',y1:0:3);
writeln('nilai f`(x1)  = ',f1:0:3);
writeln('nilai f``(x1) = ',f2:0:3);
if abs (z) < 0.02 then
writeln('Nilai x1 OK memenuhi syarat yaitu (' ,z:0:3,') < 0.02');
end;
until abs (z) < 0.02;
readln;
i := 1;
writeln('Penyelesaian Pers. Karakteristik Dengan Metode Newton Raphson');
writeln('-------------------------------------------');
writeln(' n         x                   f(x)                error    ');
writeln('-------------------------------------------');
repeat
begin
i := i+1;
x := x1 - (y1 / f1);
y := x * x - 5 * x + 6;
f := 2 * x - 5;
if i < 10 then
writeln(':',i,'::',x,'::',y,'::',abs(y),':')
else
writeln(':',i,'::',x,'::',y,'::',abs(y),':');
x1 := x;
y1 := y;
f1 := f;
end;
until abs(y) < 1e-08;
writeln('------------------------------');
writeln('Akar persamaannya x=',x);
writeln('Errornya=',abs(y));
write('Apakah anda ingin mengulang (y / t):');
readln (ab);
if (ab = 'y') or (ab = 'Y') then
begin
goto ulang;
end
end.

Tidak ada komentar:

Posting Komentar