Нужно найти значение функции используя ряд Тэйлора - Turbo Pascal (29366)

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

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

Помогите решитьзадачу в Турбо паскале или АВС. Вычислить и вывести на экран в виде таблицы значения функции, заданной с помощью ряда Тейлора, на интервале от значения х нач до х кон с шагом дх с точностью Экспоненты. Таблицу снабдить заголовком и шапкой. Каждая строка таблицы должна содержать значение аргумента, значение функции и количество просуммированных членов ряда. вот код есть но работает не правильно

Решение задачи: «Нужно найти значение функции используя ряд Тэйлора»

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

Объяснение кода листинга программы

  1. В начале кода используется библиотека crt, которая обеспечивает функциональность стандартного ввода и вывода.
  2. Константа e равна 0.0001, что представляет собой очень маленькое значение, используемое для представления очень малых чисел в виде десятичной дроби.
  3. Переменные xn, xk, eps, x, s, dx, t и ex являются реальными числами.
  4. Переменная n является целым числом, которое будет использоваться для определения шага табуляции.
  5. Цикл repeat используется для получения от пользователя начала и конца интервала, а также шага табуляции.
  6. Цикл while используется для вычисления значений функции на интервале от xn до xk+dx/2 с шагом dx/2.
  7. Внутри цикла while переменные n, t и s инициализируются нулевыми значениями.
  8. Затем выполняется итерация цикла while, пока abs(t) не станет больше или равно e.
  9. Когда это происходит, переменная n увеличивается на единицу, и значение t изменяется на -txx/n.
  10. Значение s обновляется как сумма предыдущих значений t.
  11. После окончания итерации цикла while, переменная ex инициализируется как exp(-x*x).
  12. Затем выводится значение функции на интервале от xn до xk+dx/2 с шагом dx/2.
  13. Выводится значение n.
  14. После этого цикл repeat завершается, и программа продолжает работу со следующим вводом пользователя.

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


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

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

13   голосов , оценка 3.692 из 5
Похожие ответы