Текст подпрограммы и версий bs03r_p.zip , bs03e_p.zip |
Тексты тестовых примеров tbs03r_p.zip , tbs03e_p.zip |
Вычисление медианы заданной выборки.
Пусть задан выборочный вектор X = (x1, x2,..., xN). Подпрограмма упорядочивает его компоненты по возрастанию и вычисляет выборочное значение медианы XMED:
XMED = x(N + 1)/2 для нечетных N, XMED = 0.5(xN/2 + x(N/2)+1) для четных N .
С.А.Айвазян, И.С.Енюков, Л.Д.Мешалкин. Прикладная статистика: основы моделирования и первичная обработка данных. М.,"Финансы и статистика", 1983 г.
procedure BS03R(var X :Array of Real; var N :Integer; var XMED :Real);
Параметры
X - | заданный вещественный выборочный вектор длины N; |
N - | длина вектора X (тип: целый); |
XMED - | вещественная переменная, содержащая выборочное значение медианы. |
Версии
BS03E - | вычисление медианы выборки в режиме расширенной (Extended) точности. |
Вызываемые подпрограммы
AVZ5R - | упорядочивание вектора по возрастанию значений его компонент; используется в подпрограмме BS03R. |
AVZ5E - | упорядочивание вектора заданного с расширенной (Extended) точностью, по возрастанию его компонент; используется в подпрограмме BS03E. |
Замечания по использованию
По окончании работы подпрограммы массив X содержит компоненты исходного вектора X в возрастающем порядке. |
Unit tbs03r_p; interface uses SysUtils, Math, { Delphi } LStruct, Lfunc, UtRes_p, BS03R_p; function tbs03r: String; implementation function tbs03r: String; var N :Integer; XMED :Real; const X :Array [0..3] of Real = ( 1.0,2.0,3.0,4.0 ); begin Result := ''; N := 4; BS03R(X,N,XMED); Result := Result + Format('%s',[' TBS03R: XMED =']); Result := Result + Format('%20.16f',[XMED]) + #$0D#$0A; UtRes('tbs03r',Result); { вывод результатов в файл tbs03r.res } end; end. Результаты: XMED = 2.5