Текст подпрограммы и версий 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