Текст подпрограммы и версий 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 )