home *** CD-ROM | disk | FTP | other *** search
- program newdr; { -> 245 }
-
- var x,x2 : real;
- alldone : boolean;
- error : boolean;
-
- 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 }
- alldone:=false;
- repeat
- writeln;
- write('First guess: '); { first guess }
- readln(x);
- if x<-19.0 then alldone:=true
- else
- begin
- newton(x);
- writeln;
- writeln('The solution is ',x);
- writeln
- end
- until alldone
- end.