Вычислить Ln(x+1) разложением в ряд - Pascal ABC

Узнай цену своей работы

Формулировка задачи:

Для ln(x+1) 1) Вычислить значение функции, заданной с помощью ряда Тейлора, для некоторого х с точностью e. Проверить правильность алгоритма, вычислив значение функции по формуле. 2)Вычислить и вывести на экран в виде таблицы значения функции, заданной с помощью ряда Тейлора, на интервале от хнач до хкон с шагом dx с точностью e. Таблицу снабдить заголовком и шапкой. Каждая строка таблицы должна содержать значение аргумента, значение функции, вычисленной по формуле и количество просуммированных членов ряда. Вот

Решение задачи: «Вычислить Ln(x+1) разложением в ряд»

textual
Листинг программы
const e=0.0001;
function f(x:real;var n:integer):real;
var t,s:real;
begin
n:=1;
t:=x;
s:=t;
while abs(t)/n >e do
 begin
  n:=n+1;
  t:=-t*x;
  s:=s+t/n;
 end;
f:=s;
end;
var xn,xk,x,s,dx:real;
    n:integer;
begin
repeat
write('Введите начало интервала (-1..1) xn=');
readln(xn);
until abs(xn)<1;
repeat
write('Введите конец интервала, больше ',xn:0:1,' <=1 xk=');
readln(xk);
until (xk>xn)and(xk<=1);
repeat
write('Введите шаг табуляции, меньше ',xk-xn:0:1,' dx=');
readln(dx);
until dx<xk-xn;
x:=xn;
writeln('   Табулирование функции F(x)=ln((1+x)');
writeln('представленной разложением в степенной ряд');
writeln('   на интервале ',xn:0:1,'..',xk:0:1,' с шагом ',dx:0:1);
writeln;
writeln('        -------------------------');
writeln('        |   X   |    S    |  n  | ');
writeln('        -------------------------');
while x<=xk+dx/2 do
 begin
  s:=f(x,n);
  writeln('        |',x:6:2,' |',s:8:4,' |',n:5,'|');
  x:=x+dx;
 end;
writeln('        -------------------------');
//проверка последнего члена по аналитической формуле
writeln('x-dx=',x-dx:0:2);
writeln('ln((1+x))=',ln(1+x-dx):0:4);
end.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 4.071 из 5