|
Текст подпрограммы и версий zp53r_p.zip zp53e_p.zip |
Тексты тестовых примеров tzp53r_p.zip tzp53e_p.zip |
Вычисление значений полинома с вещественными коэффициентами и его производных от заданного вещественного аргумента.
Пусть задан полином степени NP с вещественными коэффициентами
A(1) + A(2)*X + A(3)*X2 + ... + A(NP + 1)*XNP
Подпрограмма ZP53R вычисляет значения полинома и его ND - 1 производных от заданного вещественного переменного и помещает эти значения в элементах массива PD (1), PD (2), ..., PD (ND) соответственно.
procedure ZP53R(NP :Integer; var A :Array of Real; X :Real;
ND :Integer; var PD :Array of Real);
Параметры
| NP - | заданная степень полинома (тип: целый); |
| A - | вещественный вектор длины NP + 1, содержащий коэффициенты исходного полинома в порядке возрастания степеней; |
| X - | заданное значение аргумента (тип: вещественный); |
| ND - | длина вектора PD, ND > 1 (тип: целый); |
| PD - | вещественный вектор длины ND, содержащий в PD (1) вычисленное значение полинома в точке X, а в PD (2), ..., PD (ND) - вычисленные значения его производных порядков от 1 до ND - 1 в точке X. |
Версии
| ZP53E - | вычисление значений полинома с вещественными коэффициентами и его производных от заданного вещественного аргумента в режиме расширенной (Extended) точности; при этом параметры A, X и PD должны иметь тип Extended. |
Вызываемые подпрограммы: нет
Замечания по использованию: нет
Unit TZP53R_p;
interface
uses
SysUtils, Math, { Delphi }
Lstruct, Lfunc, UtRes_p, ZP53R_p;
function TZP53R: String;
implementation
function TZP53R: String;
var
NP,ND,_i :Integer;
X :Real;
A :Array [0..4] of Real;
PD :Array [0..5] of Real;
begin
Result := ''; { результат функции }
{ прототип оператора DАТА на FORTRANе }
A[0] := 1.0;
A[1] := 2.0;
A[2] := 3.0;
A[3] := 4.0;
A[4] := 5.0;
NP := 4;
ND := 6;
X := 1.0;
ZP53R(NP,A,X,ND,PD);
Result := Result + #$0D#$0A;
for _i:=0 to 5 do
begin
Result := Result + Format('%20.16f ',[PD[_i]]);
if ( ((_i+1) mod 4)=0 )
then Result := Result + #$0D#$0A;
end;
Result := Result + #$0D#$0A;
UtRes('TZP53R',Result); { вывод результатов в файл TZP53R.res }
exit;
end;
end.
Результаты: PD = ( 15, 40, 90, 144, 120, 0 )