Текст подпрограммы и версий
bs01r_c.zip , bs01d_c.zip
Тексты тестовых примеров
tbs01r_c.zip , tbs01d_c.zip

Подпрограмма:  bs01r_c

Назначение

Вычисление среднего, среднего отклонения, среднеквадратического отклонения и дисперсии заданной выборки.

Математическое описание

Пусть задан выборочный вектор 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