|
Документ взят из кэша поисковой машины. Адрес
оригинального документа
: http://num-anal.srcc.msu.ru/lib_na/cat/pa_htm_p/pa06r_p.htm
Дата изменения: Mon Nov 16 14:37:16 2015 Дата индексирования: Sun Apr 10 03:18:21 2016 Кодировка: Windows-1251 |
|
Текст подпрограммы и версий pa06r_p.zip pa06e_p.zip |
Тексты тестовых примеров tpa06r_p.zip tpa06e_p.zip |
Вычисление значения непрерывной дроби.
PA06R вычисляет значение суммы N звеньев непрерывной дроби
fN = b0 + a1 / ( b1 + a2 / ( b2 + ... + aN / ( bN )...) )
function PA06R(B0 :Real; var A :Array of Real; var B :Array of Real;
N :Integer): Real;
Параметры
| B0 - | значение коэффициента b0 непрерывной дроби (тип: вещественный); |
| A, B - | вещественные векторы длины N, компонентами которых являются коэффициенты ai и bi ( i = 1, ..., N) непрерывной дроби; |
| N - | заданное число звеньев непрерывной дроби (тип: целый). |
Версии
| PA06E - | вычисление значения непрерывной дроби в режиме расширенной (Extended) точности. При этом параметры B0, A, B должны иметь тип Extended. |
Вызываемые подпрограммы: нет
Замечания по использованию
| В подпрограммах - функциях PA06R и PA06E имеется глобальная запись (структура данных) _PA06RR с элементом elm1, который полагается равным номеру звена непрерывной дроби, для которого fNReal = fNReal - 1 . |
Пусть требуется вычислить сумму 10 звеньев непрерывной дроби
arctg x = x / (1 + x2 / (3 + 4 x2 / (5 + 9 x2 / (7 + ... )...))) при x = 0.2
Unit TPA06R_p;
interface
uses
SysUtils, Math, { Delphi }
LStruct, Lfunc, UtRes_p, PA06R_p;
function TPA06R: String;
implementation
function TPA06R: String;
var
N,I :Integer;
X,B0,RES :Real;
A :Array [0..9] of Real;
B :АRRay [0..9] of Real;
label
_1;
begin
Result := '';
N := 10;
X := 0.2;
B0 := 0.0;
A[0] := X;
B[0] := 1.0;
for I:=2 to 10 do
begin
A[I-1] := IntPower(I-1,2)*X*X;
B[I-1] := 2*I-1;
_1:
end;
RES := PA06R(B0,A,B,N);
Result := Result + Format('%20.12f %5d ',[RES,_PA06RR.elm1]) + #$0D#$0A;
UtRes('TPA06R',Result); { вывод результатов в файл TPA06R.res }
exit;
end;
end.
Результаты: RES = 0.1973956 , NREAL = 6