Вычислить 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.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д