|
Текст подпрограммы и версий zp45r_p.zip zp45e_p.zip zp46r_p.zip zp46e_p.zip |
Тексты тестовых примеров tzp45r_p.zip tzp45e_p.zip tzp46r_p.zip tzp46e_p.zip |
Вычисление значений ортогональных полиномов Чебышева.
Подпрограмма вычисляет значения ортогональных полиномов Чебышева для заданного аргумента Х по рекуррентной формуле:
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 )