home *** CD-ROM | disk | FTP | other *** search
/ Simtel MSDOS 1992 December / simtel1292_SIMTEL_1292_Walnut_Creek.iso / msdos / turbopas / pas_sci.arc / NEWDR.PAS < prev    next >
Pascal/Delphi Source File  |  1985-08-24  |  619b  |  37 lines

  1. program newdr;    { -> 243 }
  2. var    x,x2    : real;
  3.     alldone    : boolean;
  4.     error    : boolean;
  5.  
  6. procedure func(x: real;
  7.         var fx,dfx: real);
  8. begin
  9.   fx:=x*x-2.0;
  10.   dfx:=2.0*x
  11. end;    { func }
  12.  
  13. procedure newton(var x: real);
  14. const     tol    = 1.0E-6;
  15.  
  16. var    fx,dfx,dx,x1:    real;
  17.  
  18. begin    { newton }
  19.   repeat
  20.     x1:=x;
  21.     func(x,fx,dfx);
  22.     dx:=fx/dfx;
  23.     x:=x1-dx;
  24.     writeln('x=',x1,'  fx=',fx,'  dfx=',dfx);
  25.   until abs(dx)<=abs(tol*x)
  26. end;    { newton }
  27.  
  28. begin        { main program }
  29.   ClrScr;
  30.   writeln;
  31.   x:=2.0;    { first guess }
  32.   newton(x);
  33.   writeln;
  34.   writeln(chr(7),'The solution is ',x);
  35.   writeln
  36. end.
  37.