|
Текст подпрограммы и версий sf77r_c.zip |
Тексты тестовых примеров tsf77r_c.zip |
Вычисление обратной функции треугольного распределения вероятностей.
sf77r_c вычисляет значение x такое, что F (x, G1, G2_c) = P, где F (x, G1, G2) - функция треугольного распределения вероятностей:
x
F(x, G1, G2) = 2 ∫ ( ( 1/|G1 - G2| ) - ( |G1 + G2 - 2Z|/(G1 - G2)2 ) ) dz ,
min(G1, G2)
min(G1, G2) ≤ x ≤ max(G1,G2)
Справочник по специальным функциям. Под ред. M.Абрамовица, И.Стеган. M.: "Hаука", 1979.
int sf77r_c (real *p, real *g1, real *g2, real *x,
integer *ierr)
Параметры
| p - | заданное значение аргумента (тип: вещественный); |
| g1, g2 - | параметры треугольного распределения (границы интервала, на котоpом сосредоточено распределение) (тип: вещественный); |
| x - | вещественная переменная, содержащая вычисленное значение функции; |
| ierr - | целая переменная, служащая для сообщения об ошибках; при этом: |
| ierr=66 - | когда p < 0 либо p > 1; значение x полагается равным нулю. |
Версии: нет
Вызываемые подпрограммы
| utsf16_c - | подпрограмма выдачи диагностических сообщений при работе подпрограммы sf77r_c. |
Замечания по использованию
| Границы интервала g1, g2 допустимо задавать в любом порядке (т.е. g2 можно задавать как больше, так и меньше g1). |
int main(void)
{
/* Local variables */
extern int sf77r_c(float *, float *, float *, float *, int *);
static float x;
static int ierr;
static float c_b1 = .5f;
static float c_b2 = 0.f;
static float c_b3 = 2.f;
sf77r_c(&c_b1, &c_b2, &c_b3, &x, &ierr);
printf("\n %16.7e %5i \n",x,ierr);
return 0;
} /* main */
Результаты: x = 1.0 , ierr = 0