Текст подпрограммы и версий
zp54r_p.zip  zp54e_p.zip 
Тексты тестовых примеров
tzp54r_p.zip  tzp54e_p.zip 

Функция:  ZP54R (модуль ZP54R_p)

Назначение

Вычисление присоединенного полинома Лежандра первого рода.

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

Подпрограмма - функция ZP54R вычисляет значение в точке  X присоединенного полинома Лежандра первого рода

                PLM(X)  =  (- 1)M (1 - X2)M/2   dM( PL(X) )/dXM  , 

где PL (X) = ( 1/( 2L L!) ) dL( (X2 - 1)L )/dXL
является полиномом Лежандра первого рода  L - й степени.

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

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

function ZP54R(L :Integer; M :Integer; X :Real;
                var IERR :Integer): Real;

Параметры

L, M - заданные значения  L и  M (тип: целый);
X - заданное значение агрумента (тип: вещественный);
IERR - целая переменная, служащая для сообщения об ошибках, обнаруженных в ходе работы подпрограммы - функции; при этом:
IERR=65 - когда значения  L и  M не удовлетворяют соотношению 0 ≤ M ≤ L;
IERR=66 - когда значение  X лежит вне отрезка [- 1, 1]

Версии

ZP54E - вычисление присоединенного полинома Лежандра первого рода в режиме расширенной (Extended) точности; при этом параметр  X должен иметь тип Extended, и функция ZP54E также должна быть типа Extended.

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

 UTZP12 -
 UTZP13  
подпрограммы выдачи диагностических сообщений при работе функций ZP54R и ZP54E соответственно.

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

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

Unit tzp54r_p;
interface
uses
SysUtils, Math, { Delphi }
Lstruct, Lfunc, UtRes_p, ZP54R_p;

function tzp54r: String;

implementation

function tzp54r: String;
var
IERR :Integer;
X,R1,R2 :Real;
begin
Result := '';  { результат функции }
X := 0.5;
R1 := ZP54R(2,1,X,IERR);
R2 := -3*Sqrt(1-X*X)*X;
Result := Result + Format(' %20.16f %20.16f ',[R1,R2]) + #$0D#$0A;
UtRes('tzp54r',Result);  { вывод результатов в файл tzp54r.res }
exit;
end;

end.


Результаты:

          R1     = - 1.29904 
          IERR =   0