Цитата:
Сообщение от ДенисКО
Как я сам понимаю эпсилон применяется в формуле |x-1|<ε (х-последовательность). Получается так |(0.999^n)-1|<ε. Подставляя ε=0,1;0,001;0,0001 находим n. Это все надо добавить в программу и выводить результат n при данном ε.
|
Не пойдет! Как Вам объясняли на основании простого анализа, да и программа показывает, что (0.999^n)→0, таким образом |(0.999^n)-1|→1. Если подразумевается выполнение условия ||x(n-1)|-|x(n)||<ε, то тогда можно так:
VAR
N:LongInt;
Epsilon:REAL;
i:INTEGER;
FUNCTION X2np(X:Extended; n:LongInt):Extended;
Var i:LongInt;
Y:Extended;
BEGIN
IF n=0 THEN X2np:=1 ELSE
IF n=1 THEN X2np:=X ELSE
BEGIN
Y:=X;
FOR i:=2 TO n DO Y:=Y*X;
X2np:=Y;
END;
END;
BEGIN
Epsilon:=1;
N:=1;
FOR i:=1 TO 4 DO
BEGIN
Epsilon:=Epsilon/10;
REPEAT
INC(N);
UNTIL ABS(ABS(X2np(-0.999,N-1))-ABS(X2np(-0.999,N)))<Epsilon;
Writeln('Epsilon= ',Epsilon:10:8);
Writeln('N= ',N);
WriteLn('Value= ',ABS(X2np(-0.999,N)));
WriteLn;
END;
Readln;
END.