Цитата:
Сообщение от vasek1
2)и еще вот это
Ссылка удалена
|
Ну, поскольку Вы не утрудили себя по части разъяснений, надо ли вычислять значения ареатангенса при одном значении Х или для всего диапазона с некоторым шагом, а также следует ли задать точность или фиксированное число членов разложения, ну и прочие подобные мелочи, я счел себя вправе решить подобные вопросы, как мне нравится. Программа считает значения тейлоровского разложения ареатангенса во всем диапазоне с шагом 0.1 с заданной точностью, выводится результат, число членов суммы а также, для сравнения, точное значение ареатангенса.
Код:
CONST
Eps=0.0001;
VAR
SUM,X:REAL;
N:WORD;
i:Integer;
FUNCTION ArTh(Xa:Extended):Extended;
BEGIN
ArTh:=(1/2)*Ln((Xa+1)/(1-Xa));
END;
PROCEDURE SUMS(Xs:REAL; Var S:REAL; Var Ns:WORD);
VAR
a:REAL;
Begin
a:=Xs;
S:=Xs;
Ns:=0;
Repeat
Inc(Ns);
a:=a*Xs*Xs*(2*(Ns-1)+1)/(2*Ns+1);
S:=S+a;
Until Abs(a)<Eps;
End;
BEGIN
X:=-1;
WriteLn(' Results of calculation:');
WriteLn(' X SUM N ArTh(X)');
WriteLn;
For i:=1 to 19 do
begin
X:=X+0.1;
SUMS(X,SUM,N);
WriteLn(X:8:5,' ',SUM:8:5,' ',N:3,' ',ArTh(X):8:5);
end;
ReadLn;
END.