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

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

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

Помогите решитьзадачу в Турбо паскале или АВС. Вычислить и вывести на экран в виде таблицы значения функции, заданной с помощью ряда Тейлора, на интервале от значения х нач до х кон с шагом дх с точностью Экспоненты. Таблицу снабдить заголовком и шапкой. Каждая строка таблицы должна содержать значение аргумента, значение функции и количество просуммированных членов ряда. вот код есть но работает не правильно
Листинг программы
  1. Program lab33;
  2. const
  3. te1=('Введите X нач= ');
  4. te2=('Введите X кон= ');
  5. te3=('Введите шаг dx= ');
  6. te4=('Введите точность e= ');
  7. var f,x,eps,s,a: real;
  8. x2,dx:real;
  9. i,n: integer;
  10. begin
  11. Write(te1); readln(x);
  12. Write(te2); readln(x2);
  13. Write(te3); readln(dx);
  14. Write(te4); readln(eps);
  15. writeln('*******************************************');
  16. writeln('* n * f * s * a * x *');
  17. writeln('*******************************************');
  18. while x<=x2 do
  19. begin
  20. n:=0; a:=1; s:=a;
  21. while (abs(a)>eps) do
  22. begin
  23. a:=-(x*x/(n+1))*a;
  24. s:=s+a;
  25. n:=n+1;
  26. end;
  27. writeln('* ',n:3,' * ',exp(-(x*x)):7:4,' * ',s:7:4,' * ',a:7:4,' *',x:5:1,'*');
  28. x:=x+dx;
  29. end;
  30. writeln('*******************************************');
  31. end.

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

textual
Листинг программы
  1. uses crt;
  2. const e=0.0001;
  3. var xn,xk,eps,x,s,dx,t,ex:real;
  4.     n:integer;
  5. begin
  6. clrscr;
  7. write('Введите начало интервала xn=');
  8. readln(xn);
  9. repeat
  10. write('Введите конец интервала, больше ',xn:0:1,' xk=');
  11. readln(xk);
  12. until xk>xn;
  13. repeat
  14. write('Введите шаг табуляции, больше 0, меньше ',xk-xn:0:1,' dx=');
  15. readln(dx);
  16. until (dx>0)and(dx<xk-xn);
  17. repeat
  18. write('Введите точность 0<eps<1 eps=');
  19. readln(eps);
  20. until (eps>0)and(eps<1);
  21. clrscr;
  22. x:=xn;
  23. writeln('       Табулирование функции F(x)=e^(-x^2),');
  24. writeln('     представленной разложением в степенной ряд');
  25. writeln('        на интервале ',xn:0:1,'..',xk:0:1,' с шагом ',dx:0:1);
  26. writeln;
  27. writeln('        -----------------------------------');
  28. writeln('        |   X   |    S    |e^(-x^2) |  n  | ');
  29. writeln('        -----------------------------------');
  30. while x<=xk+dx/2 do
  31.  begin
  32.   n:=0;
  33.   t:=1;
  34.   s:=t;
  35.   while abs(t)>=e do
  36.    begin
  37.     n:=n+1;
  38.     t:=-t*x*x/n;
  39.     s:=s+t;
  40.    end;
  41.   ex:=exp(-x*x);
  42.   writeln('        |',x:6:1,' |',s:8:4,' |',ex:8:4,' | ',n:4,'|');
  43.   x:=x+dx;
  44.  end;
  45. writeln('        -----------------------------------');
  46. readln
  47. 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

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы