|
Текст подпрограммы и версий bs01r_c.zip , bs01d_c.zip |
Тексты тестовых примеров tbs01r_c.zip , tbs01d_c.zip |
Вычисление среднего, среднего отклонения, среднеквадратического отклонения и дисперсии заданной выборки.
Пусть задан выборочный вектор X = (x1, x2, ..., xN). Подпрограмма вычисляет следующие его характеристики:
среднее значение X = (x1 + x2 + ... + xN)/N
среднее отклонение XD = ( | x1-XM | + | x2-XM | + ... + | xN-XM | ) / N
дисперсию D = { (x1-XM)2 + (x2-XM)2 + ... + (xN-XM)2 } / (N-1)
среднеквадратическое отклонение S = ( D )1/2
С.А.Айвазян, И.С.Енюков, Л.Д.Мешалкин. Прикладная статистика: основы моделирования и первичная обработка данных. М.,"Финансы и статистика", 1983 г.
int bs01r_c (real *x, integer *n, real *xm, real *xd,
real *d, real *s)
Параметры
| x - | заданный вещественный выборочный вектор длины n; |
| n - | длина вектора X (тип: целый); |
| xm - | вещественная переменная, содержащая выборочное среднее; |
| xd - | вещественная переменная, содержащая выборочное среднее отклонение; |
| d - | вещественная переменная, содержащая выборочную дисперсию; |
| s - | вещественная переменная, содержащая выборочное среднеквадратическое отклонение. |
Версии
| bs01d_c - | вычисление среднего, среднего отклонения, среднеквадратического отклонения и дисперсии выборки в режиме удвоенной точности. |
Вызываемые подпрограммы: нет
Замечания по использованию: нет
int main(void)
{
/* Initialized data */
static float x[4] = { 1.f,2.f,3.f,4.f };
/* Local variables */
extern int bs01r_c(float *, int *, float *, float *, float *, float *);
static float d__;
static int n;
static float s, xd, xm;
n = 4;
bs01r_c(x, &n, &xm, &xd, &d__, &s);
printf("\n tbs01r: xm,xd,d,s = %16.7e %16.7e %16.7e %16.7e \n",
xm, xd, d__, s);
return ;
} /* main */
Результаты: xm = 2.5 xd = 1.0
d__ = 1.666667 s = 1.290994