program newdr; { -> 243 }
var
x,x2 : real;
alldone : boolean;
error : boolean;
external procedure cls;
procedure func(x: real;
var fx,dfx: real);
begin
fx:=x*x-2.0;
dfx:=2.0*x
end; { func }
procedure newton(var x: real);
const tol = 1.0E-6;
var fx,dfx,dx,x1: real;
begin { newton }
repeat
x1:=x;
func(x,fx,dfx);
dx:=fx/dfx;
x:=x1-dx;
writeln('x=',x1,' fx=',fx,' dfx=',dfx);
until abs(dx)<=abs(tol*x)
end; { newton }
begin { main program }
cls;
writeln;
x:=2.0; { first guess }
newton(x);
writeln;
writeln(chr(7),'The solution is ',x);
writeln
end.
|