Текст подпрограммы и версий sf22r_p.zip , sf22e_p.zip |
Тексты тестовых примеров tsf22r_p.zip , tsf22e_p.zip |
Вычисление значений бета-функции.
Функция SF22R вычисляет значение интегралов вида:
1 B (x, y) = ∫ t x - 1(1 - t)y - 1 dt 0
Бета-функция может быть представлена с помощью гама-функции
B (x, y) = Г(x)Г(y) / Г(x + y).
J.F.Hart, E.W.Cheney, C.L.Lawson et al, Computer Approximations, Wiley, New York, 1968.
function SF22R(X :Real; Y :Real; var IERR :Integer): Real;
Параметры
X, Y - | заданные значения аргументов x и y соответственно (тип: вещественный); |
IERR - | целая переменная, служащая для сообщения об ошибках, обнаруженных в ходе работы функции; при этом: |
IERR=65 - | когда значение одного из аргументов (X, Y, X + Y) pавно нулю или целому отрицательному числу; значение функции полагается равным 3.4E38; |
IERR=66 - | когда значение одного из аргументов (X, Y или X + Y) меньше чем - 20.4; значение функции полагается равным 3.4E38. |
Версии
SF22E - | вычисление значений бета - функции с расширенной (Extended) точностью. |
Вызываемые подпрограммы
UTSF10 - | подпрограмма выдачи диагностических сообщений при работе функции SF22R. |
UTSF11 - | подпрограмма выдачи диагностических сообщений при работе функции SF22E. |
Замечания по использованию
Областью допустимых значений аргументов для значений аргументов SF22R является луч z ≥ - 20.4, z ≠ 0, - 1, - 2, ..., - 20, а для функции SF22E - z ≥ - 961.199, z ≠ 0, - 1, - 2, ..., - 961. Kpоме того, для функции SF22E аргументы X и Y имеют тип Extended и при нарушении области допустимых значений функция полагается равной 1.7E308. |
Unit tsf22r_p; interface uses SysUtils, Math, { Delphi } Lstruct, Lfunc, UtRes_p, SF22R_p; function tsf22r: String; implementation function tsf22r: String; var IERR :Integer; X,Y,Y1 :Real; begin Result := ''; { результат функции } X := 1.5; Y := 2.9; Y1 := SF22R(X,Y,IERR); Result := Result + Format(' %20.16f %5d ',[Y1,IERR]) + #$0D#$0A; UtRes('tsf22r',Result); { вывод результатов в файл tsf22r.res } exit; end; end. Результаты: Y1 = 0.159770619769 , IERR = 0