Цитата:
Сообщение от Wardler
Вычислить и вывести на экран в виде таблицы значения функции, заданной с помощью ряда Тейлора, на интервале от значения х_нач до х_кон с шагом dx с точностью Эбсилан. Таблицу снабдить заголовком и шапкой. Каждая строка таблицы должна содержать значение аргумента, значение функции и количество просуммированных членов ряда.
Помогите решить.. Пожалуйста
|
Будем считать, что утаённый от нас язык программирования - Паскаль. Но прежде всего - одна ремарка. В бытность мою студентом, наш преподаватель математики предупредил сразу, что за незнание латинского и греческого алфавитов будет гнать с экзамена без пощады и жалости. И был, с моей точки зрения, абсолютно прав. Это я к тому, что греческая буква называется "эпсилон", а вовсе никакой не "Эбсилан". А теперь - программа:
Код:
CONST
Eps=0.0001;
VAR
Xbeg,Xfin,DX,SUM,X:REAL;
N:WORD;
Nx,i:INTEGER;
PROCEDURE SUMS(Xs:REAL; Var S:REAL; Var Ns:WORD);
VAR
a:REAL;
Begin
a:=1;
S:=1;
Ns:=0;
Repeat
Inc(Ns);
a:=-a*SQR(Xs)/Ns;
S:=S+a;
Until Abs(a)<Eps;
End;
BEGIN
Write('Xbeg= ');
ReadLn(Xbeg);
Write('Xfin= ');
ReadLn(Xfin);
Write('DX= ');
ReadLn(DX);
WriteLn;
WriteLn(' Results of calculation:');
WriteLn(' X SUM N Exp(-Sqr(X))');
WriteLn;
Nx:=ROUND((Xfin-Xbeg)/DX);
X:=Xbeg;
For i:=0 to Nx do
begin
X:=DX*i;
SUMS(X,SUM,N);
WriteLn(X:8:5,' ',SUM:7:5,' ',N:3,' ',Exp(-SQR(X)):7:5);
end;
ReadLn;
END.
Несколько пояснений:
1. Точность, она же пресловутый эпсилон, она же (в программе) Eps задана в виде константы.
2. Вводится сначала МЕНЬШАЯ граница диапазона Х, затем - бОльшая.
3. Последняя колонка дана для сравнения: в ней вычислено точное значение разлагаемой в ряд функции.