Текст подпрограммы и версий
sf38r_c.zip 
Тексты тестовых примеров
tsf38r_c.zip 

Функция:  sf38r_c

Назначение

Вычисление обратной бета - функции распределения вероятностей.

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

sf38r_c вычисляет значение  x такое, что

     Ix (A, B) = P ,

где  P      - заданное значение вероятностей (0 < P < 1) ,
       A, B - заданные параметры бета - функции  распределения
                 вероятностей (A > 0, B > 0) . 

Используется метод бисекции.

Использование

    real sf38r_c (real *p, real *a, real *b, integer *ierr)

Параметры

p - заданное значение вероятности (тип: вещественный);
a, b - заданные значения параметров бета - функции pаспределения вероятностей (тип: вещественный);
ierr - целая переменная, служащая для сообщения об ошибках, обнаруженных в ходе работы функции; при этом:
ierr=65 - когда один или оба параметра бета - распределения меньше или равны 0; значение функции полагается равным 3.4e38;
ierr=66 - когда значение функции не может быть найдено в пределах 30 итераций; значение функции полагается равным 3.4e38;
ierr=67 - когда заданная вероятность находится вне интервала (0, 1); значение функции полагается равным 3.4e38.

Версии: нет

Вызываемые подпрограммы

sf36r_c - вычисление бета - функции распределения вероятностей  Ix (a, b).
utsf12_c - подпрограмма выдачи диагностических сообщений при работе функции sf38r_c.

Замечания по использованию: нет

Пример использования

int main(void)
{
    /* Local variables */
    static int ierr;
    extern float sf38r_c(float *, float *, float *, int *);
    static float a, b, p, y;

    p = .745149908f;
    a = 5.5f;
    b = .5f;
    y = (float)sf38r_c(&p, &a, &b, &ierr);

    printf("\n %16.7e %16.7e %16.7e \n",p,a,b);
    printf("\n %5i %16.7e \n",ierr,y);
    return 0;
} /* main */


Результаты:

       y  =  0.9900000002
       ierr  =  0