Текст подпрограммы и версий
sfa6r_p.zip  sfa6e_p.zip 
Тексты тестовых примеров
tsfa6r_p.zip  tsfa6e_p.zip 

Подпрограмма:  SFA6R (модуль SFA6R_p)

Назначение

Вычисление функции Бесселя третьего рода (функции Ханкеля) Hn (x) целых порядков от вещественных аргументов.

Математическое описание

Подпрограмма SFA6R вычисляет комплексно - значную функцию Бесселя третьего рода (функцию Ханкеля)

             Hn(x)     =     Jn(x)   ±   i Nn(x)     =     H1   ±   i H2

для  n ≥ 0 и вещественных значений  x . Здесь Jn (x) и Nn (x) - функции Бесселя первого и второго родов соответственно. Для вычисления Hn (x) используется разложение этой функции в ряд.

Абрамовиц М., Стиган И. Справочник по специальным функциям. М.: Наука, 1979.

Использование

procedure SFA6R(N :Integer; X :Real; var H1 :Real; var H2 :Real);

Параметры

N - заданный порядок функции Hn (x), N ≥ 0 (тип: целый);
X - заданное значение аргумента  x  (тип: вещественный);
H1, H2 - вещественные переменные, значения которых на выходе полагаются равными вещественной и мнимой части функции Hn (x) соответственно.

Версии

SFA6E - вычисление функции Бесселя третьего рода (функции Ханкеля) Hn (x) целых порядков от вещественных аргументов в режиме расширенной (Extended) точности; при этом параметры X, H1 и H2 должны иметь тип Extended.

Вызываемые подпрограммы: нет

Замечания по использованию: нет

Пример использования

Unit tsfa6r_p;
interface
uses
SysUtils, Math, { Delphi }
Lstruct, Lfunc, UtRes_p, SFA6R_p;

function tsfa6r: String;

implementation

function tsfa6r: String;
var
N :Integer;
X,H1,H2 :Real;
begin
Result := '';  { результат функции }
N := 3;
X := 4.0;
SFA6R(N,X,H1,H2);
Result := Result + Format(' %15.8f %15.8f ',[H1,H2]) + #$0D#$0A;
UtRes('tsfa6r',Result);  { вывод результатов в файл tsfa6r.res }
exit;
end;

end.


Результаты:      H1   =   0.4301715,       H2   =   -0.1820221