Задача: Вычисление эксцесса и коэффициентов асимметрии заданной выборки
Исходник: Вычисление коэффициентов асимметрии и эксцесса заданной выборки, #2, язык: C [code #107, hits: 7699]
автор: - [добавлен: 27.04.2006]
  1. /* bs02d.f -- translated by f2c (version 20000817).
  2. You must link the resulting object file with the libraries:
  3. -lf2c -lm (in that order)
  4. */
  5.  
  6. #include "f2c.h"
  7.  
  8. /* Subroutine */ int bs02d_c(doublereal *data, integer *n, doublereal *skew,
  9. doublereal *curt)
  10. {
  11. /* System generated locals */
  12. integer i__1;
  13. doublereal d__1;
  14.  
  15. /* Builtin functions */
  16. double sqrt(doublereal);
  17.  
  18. /* Local variables */
  19. static doublereal adev, sdev;
  20. static integer j;
  21. static doublereal p, s, ave, var;
  22.  
  23. /* IF(N.LE.1)PAUSE 'N must be at least 2' */
  24. /* Parameter adjustments */
  25. --data;
  26.  
  27. /* Function Body */
  28. s = 0.;
  29. i__1 = *n;
  30. for (j = 1; j <= i__1; ++j) {
  31. s += data[j];
  32. /* L11: */
  33. }
  34. ave = s / *n;
  35. adev = 0.;
  36. var = 0.;
  37. *skew = 0.;
  38. *curt = 0.;
  39. i__1 = *n;
  40. for (j = 1; j <= i__1; ++j) {
  41. s = data[j] - ave;
  42. adev += abs(s);
  43. p = s * s;
  44. var += p;
  45. p *= s;
  46. *skew += p;
  47. p *= s;
  48. *curt += p;
  49. /* L12: */
  50. }
  51. adev /= *n;
  52. var /= *n - 1;
  53. sdev = sqrt(var);
  54. if (var == 0.) {
  55. return 0;
  56. }
  57. /* Computing 3rd power */
  58. d__1 = sdev;
  59. *skew /= *n * (d__1 * (d__1 * d__1));
  60. /* Computing 2nd power */
  61. d__1 = var;
  62. *curt = *curt / (*n * (d__1 * d__1)) - 3.;
  63. return 0;
  64. } /* bs02d_c */
  65.  
Найдено на http://www.srcc.msu.su/

+добавить реализацию