home *** CD-ROM | disk | FTP | other *** search
- {MEAN AND STANDARD DEVIATION GARY CURTIS NEWPORT
-
- PURPOSE: This procedure reads a set of (real or integer) values from
- an array and calculates the mean and (unbiased) standard
- deviation of that set.
-
- ALGORITHM: See Alan R. Miller, Pascal Programs for Scientists and
- Engineers, SYBEX, 1981,. pp. 21-29.
-
- USE : The following declarations are used:
-
- CONST max = (some integer);
- TYPE XarrayType = array[1..max] of integer; (or real)
- VAR Xarray : XarrayType;
- Mean, Std_Dev, Sample_Std_Dev : real;
- N : integer;
-
-
- Include MEANSTD
- after declarations. Fill Xarray with N values,
- and call
- MEANSTD(Xarray, N, Mean, Std_Dev, Sample_Std_Dev);
-
-
- }
-
- procedure MEANSTD
- (VAR x : XarrayType;
- N : integer;
- VAR Mean : real;
- VAR Sigma : real;
- VAR SampleSigma : real );
-
- VAR
- i : integer;
- denom,
- sum_x,
- sum_sq : real;
-
- BEGIN {MEANSTD}
-
- sum_x := 0;
- sum_sq := 0;
- for i := 1 to N do
- begin
- sum_x := sum_x + x[i];
- sum_sq := sum_sq + (x[i] * x[i]);
- end; {for}
- Mean := sum_x/N;
- if N = 1 then
- denom := N {Only 1 value}
- else
- denom := N - 1;
- SampleSigma := Sqrt((sum_sq - ((Sqr(sum_x))/N))/(denom));
- Sigma := Sqrt(( sum_sq - (( Sqr(sum_x))/N )) / N)
-
- END; {MEANSTD}
-