home *** CD-ROM | disk | FTP | other *** search
/ Power-Programmierung / CD1.mdf / pascal / library / dos / nrpas / medfit.dem < prev    next >
Text File  |  1994-04-11  |  1KB  |  64 lines

  1. PROGRAM d14r11(input,output);
  2. (* driver for routine MEDFIT *)
  3. CONST
  4.    npt=100;
  5.    spread=0.1;
  6.    ndata=npt;
  7. TYPE
  8.    glndata = ARRAY [1..ndata] OF real;
  9.    glsarray = glndata;
  10. VAR
  11.    glinext,glinextp : integer;
  12.    glma : ARRAY [1..55] OF real;
  13.    gliset : integer;
  14.    glgset : real;
  15.    a,aa,abdev,abdevt,b,chi2,q,siga,sigb : real;
  16.    i,idum,mwt : integer;
  17.    sig,x,y,arr : glndata;
  18.  
  19. (*$I MODFILE.PAS *)
  20. (*$I RAN3.PAS *)
  21.  
  22. (*$I GASDEV.PAS *)
  23.  
  24. (*$I GAMMLN.PAS *)
  25.  
  26. (*$I GSER.PAS *)
  27.  
  28. (*$I GCF.PAS *)
  29.  
  30. (*$I GAMMQ.PAS *)
  31.  
  32. (*$I SORT.PAS *)
  33.  
  34. (*$I FIT.PAS *)
  35.  
  36. (*$I ROFUNC.PAS *)
  37.  
  38. (*$I MEDFIT.PAS *)
  39.  
  40. BEGIN
  41.    gliset := 0;
  42.    idum := -1984;
  43.    FOR i := 1 to npt DO BEGIN
  44.       x[i] := 0.1*i;
  45.       y[i] := -2.0*x[i]+1.0+spread*gasdev(idum);
  46.       sig[i] := spread
  47.    END;
  48.    mwt := 1;
  49.    writeln;
  50.    fit(x,y,npt,sig,mwt,a,b,siga,sigb,chi2,q);
  51.    writeln('According to routine FIT the result is:');
  52.    writeln('a = ':7,a:8:4,'  uncertainty: ':13,siga:8:4);
  53.    writeln('b = ':7,b:8:4,'  uncertainty: ':13,sigb:8:4);
  54.    writeln('chi-squared: ':16,chi2:8:4,' for ',npt:4,' points');
  55.    writeln('goodness-of-fit: ':20,q:8:4);
  56.    writeln;
  57.    writeln('According to routine MEDFIT the result is:');
  58.    medfit(x,y,npt,a,b,abdev);
  59.    writeln('a = ':7,a:8:4);
  60.    writeln('b = ':7,b:8:4);
  61.    writeln(' ':3,'absolute deviation (per data point): ',abdev:8:4);
  62.    writeln(' ':3,'note: gaussian spread is',spread:8:4,')')
  63. END.
  64.