Документ взят из кэша поисковой машины. Адрес
оригинального документа
: http://num-anal.srcc.msu.ru/lib_na/cat/zp_htm_p/zp40r_p.htm
Дата изменения: Thu Jun 23 11:56:32 2011 Дата индексирования: Mon Oct 1 22:57:54 2012 Кодировка: Windows-1251 |
Текст подпрограммы и версий zp40r_p.zip zp40e_p.zip |
Тексты тестовых примеров tzp40r_p.zip tzp40e_p.zip |
Вычисление коэффициентов полинома, получающегося из данного полинома с вещественными коэффициентами линейным изменением аргумента.
ZP40R вычисляет коэффициенты полинома
B(X) = B(1) + B(2)*Y + B(3)*Y2 + ... + B(NP + 1)*YNP ,
получающегося из данного полинома с вещественными коэффициентами
A(X) = A(1) + A(2)*X + A(3)*X2 + ... + A(NP + 1)*XNP
линейным изменением аргумента Y = u * Х + v.
procedure ZP40R(NP :Integer; var A :Array of Real; var B :Array of Real; U :Real; V :Real; var RAB :Array of Real);
Параметры
NP - | заданная степень полинома (тип: целый); |
A - | вещественный вектор длины NР + 1, содержащий коэффициенты заданного полинома А (Х) в порядке возрастания степеней; |
B - | вещественный вектор длины NР + 1, содержащий вычисленные коэффициенты полинома В (Х) в порядке возрастания степеней; |
U, V - | заданные значения u и v (тип: вещественный); |
RAB - | вещественный вектор длины NР + 1, используемый в подпрограмме как рабочий. |
Версии
ZP40E - | вычисление коэффициентов полинома, получающегося из данного полинома с вещественными коэффициентами линейным изменением аргумента с расширенной (Extended) точностью. При этом векторы А, В, RАВ, а также U и V должны иметь тип Extended. |
Вызываемые подпрограммы
ZP30R - | вычисление значения полинома с вещественными коэффициентами от заданного вещественного аргумента. Используется в подпрограмме ZР40R. |
ZP30E - | вычисление значения полинома с вещественными коэффициентами от заданного вещественного аргумента с расширенной (Extended) точностью. Используется в подпрограмме ZР40E. |
Замечания по использованию: нет
Unit TZP40R_p; interface uses SysUtils, Math, { Delphi } Lstruct, Lfunc, UtRes_p, ZP40R_p; function TZP40R: String; implementation function TZP40R: String; var NP,_i :Integer; U,V :Real; B :Array [0..2] of Real; RАВ :Array [0..3] of Real; const A :Array [0..2] of Real = ( 1.0,2.0,3.0 ); begin Result := ''; { результат функции } NP := 2; U := 2.0; V := 3.0; ZP40R(NP,A,B,U,V,RAB); Result := Result + Format(' %3d %20.16f %20.16f ',[NP,U,V]) + #$0D#$0A; Result := Result + #$0D#$0A; for _i:=0 to 2 do begin Result := Result + Format('%20.16f ',[A[_i]]); if ( ((_i+1) mod 3)=0 ) then Result := Result + #$0D#$0A; end; Result := Result + #$0D#$0A; Result := Result + #$0D#$0A; for _i:=0 to 2 do begin Result := Result + Format('%20.16f ',[B[_i]]); if ( ((_i+1) mod 3)=0 ) then Result := Result + #$0D#$0A; end; Result := Result + #$0D#$0A; Result := Result + #$0D#$0A; for _i:=0 to 3 do begin Result := Result + Format('%20.16f ',[RAB[_i]]); if ( ((_i+1) mod 4)=0 ) then Result := Result + #$0D#$0A; end; Result := Result + #$0D#$0A; UtRes('TZP40R',Result); { вывод результатов в файл TZP40R.res } exit; end; end. Результаты: В(1) = 4.75 , В(2) = - 3.5 , В(3) = 0.75