Текст подпрограммы и версий sf52r_p.zip |
Тексты тестовых примеров tsf52r_p.zip |
Вычисление двумерной стандартизованной (нормированной) нормальной функции распределения вероятностей.
SF52R вычисляет двумерную нормальную функцию распределения вероятностей с коэффициентом корреляции ρ , математическим ожиданием 0 и дисперсией 1 (стандартизованное, или нормированное, распределение) в точке (X, Y).
Другими словами, SF52R вычисляет интеграл:
X Y 1/2π(1 - ρ2)1/2 ∫ ∫ exp( -(t12 - 2ρ t1 t2 + t22) / 2(1 - ρ2) ) dt1 dt2 , -∞ -∞
M.Abramowitz, I.A.Stegun, Handbook of Mathematical Functions, Dover Publications, Inc., New York, 1965.
function SF52R(X :Real; Y :Real; RHO :Real; var IERR :Integer): Real;
Параметры
X, Y - | заданные значения верхних пределов интегрирования (тип: вещественный); |
RHO - | заданное значение коэффициента корреляции ρ (тип: вещественный); |
IERR - | целая переменная, служащая для сообщения об ошибках, обнаруженных в ходе работы функции; при этом: |
IERR=65 - | когда абсолютное значение коэффициента корреляции больше или pавно 1; значение функции полагается равным 3.4E38. |
Версии: нет
Вызываемые подпрограммы
SF49R - | вычисление стандартизованной (нормированной) функции нормального распределения вероятностей. |
UTSF14 - | подпрограмма выдачи диагностических сообщений в ходе работы функции SF52R. |
Замечания по использованию: нет
Unit TSF52R_p; interface uses SysUtils, Math, { Delphi } Lstruct, Lfunc, UtRes_p, SF52R_p; function TSF52R: String; implementation function TSF52R: String; var IERR :Integer; X,Y,RHO,P :Real; begin Result := ''; { результат функции } X := -2.0; Y := 0.0; RНО := 0.9; P := SF52R(X,Y,RHO,IERR); Result := Result + Format(' %20.16f %20.16f %20.16f %20.16f %5d ', [X,Y,RHO,P,IERR]) + #$0D#$0A; UtRes('TSF52R',Result); { вывод результатов в файл TSF52R.res } exit; end; end. Результаты: P = 0.0227501319478 , IERR = 0