home *** CD-ROM | disk | FTP | other *** search
/ Frostbyte's 1980s DOS Shareware Collection / floppyshareware.zip / floppyshareware / USCX / ROFFREAD.ZIP / TSTINTEG.PAS < prev    next >
Pascal/Delphi Source File  |  1984-05-08  |  1KB  |  39 lines

  1. program tstinteg (input, output);
  2. {
  3.    This is a test case for the adaptive, recursive numerical integration
  4.    routine integral.  Note that the integrand is singular at x = 0, but
  5.    that the integrator indeed finds the Riemann integral, although the  
  6.    integrator itself is not told of the location of the singularity.  
  7.  
  8.    Compared to most practical problems, this test case is very severe.
  9. }
  10.  
  11. var
  12.    low,        { lower limit of integration }
  13.    high,       { upper limit of integration }
  14.    eps,        { fractional tolerance on integration }
  15.    ans         { answer }
  16.       : real;
  17.    int_fail    { number of times integration failed to converge }
  18.       : integer;
  19.   
  20. function f(x : real) : real;
  21.  
  22.    begin {---------------------     f      ------------------------}
  23.       f := 1 / sqrt (abs (x));
  24.    end { f } ;
  25.  
  26. {$include:'integral.pas'}
  27.  
  28. begin {-------------------   tstinteg  ------------------------}
  29.    low := -9;
  30.    high := 10000;
  31.    eps := 0.1;
  32.    while eps >= 0.9e-5 do
  33.    begin
  34.       ans := integral (f, low, high, eps, int_fail);
  35.       writeln ('eps=', eps:6, ' int_fail=', int_fail:3, ' ans=', ans:10:5);
  36.       eps := eps * 0.1;
  37.    end;
  38. end { tstinteg } .
  39.