Текст подпрограммы и версий
zp45r_p.zip  zp45e_p.zip  zp46r_p.zip  zp46e_p.zip 
Тексты тестовых примеров
tzp45r_p.zip  tzp45e_p.zip  tzp46r_p.zip  tzp46e_p.zip 

Подпрограмма:  ZP45R (модуль ZP45R_p) (версия: ZP46R)

Назначение

Вычисление значений ортогональных полиномов Чебышева.

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

Подпрограмма вычисляет значения ортогональных полиномов Чебышева для заданного аргумента Х по рекуррентной формуле:

          T(K)  =  2*X*T(K-1) - T(K-2)  ,   T(1) = 1  ,   T(2) = X  , 

где  Т (К) - значение полинома порядка  К в точке  Х.

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

procedure ZP45R(X :Real; N :Integer; var T :Array of Real);

Параметры

X - заданное значение аргумента (тип: вещественный);
N - длина вектора  Т (тип: целый);
T - вещественный вектор длины  N, в котором содержатся значения полиномов в порядке возрастания степеней, начиная с полинома степени ноль.

Версии

ZP45E - вычисление значений ортогональных полиномов Чебышева для данных расширенной (Extended) точности.
ZP46R -
ZP46E  
вычисление значений смещенных ортогональных полиномов Чебышева. для данных одинарной и расширенной (Extended) точности.

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

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

  Смещенные ортогональные многочлены Чебышева ТS (К, Х) определяются по формуле ТS (К, X) = Т (К, 2 * Х - 1), где  К - порядок полинома,  Х - аргумент и  Т (К, Х) - значение обычного полинома Чебышева порядка  К в точке  Х: Т (К, Х) = cos (К * АRССОS (Х)).

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

Unit tzp45r_p;
interface
uses
SysUtils, Math, { Delphi }
Lstruct, Lfunc, UtRes_p, ZP45R_p;

function tzp45r: String;

implementation

function tzp45r: String;
var
N,_i :Integer;
X :Real;
T :Array [0..2] of Real;
begin
Result := '';  { результат функции }
X := 0.5;
N := 3;
ZP45R(X,N,T);
Result := Result + Format(' %20.16f ',[X]) + #$0D#$0A;
Result := Result + Format(' %3d ',[N]) + #$0D#$0A;
Result := Result + #$0D#$0A;
for _i:=0 to 2 do
 begin
  Result := Result + Format('%20.16f ',[T[_i]]);
  if ( ((_i+1) mod 3)=0 )
   then Result := Result + #$0D#$0A;
 end;
Result := Result + #$0D#$0A;
UtRes('tzp45r',Result);  { вывод результатов в файл tzp45r.res }
exit;
end;

end.


Результаты:     T = ( 1., 0.5, - 0.5 )