Вычислить приближенные значения интегралов функций f(x) на интервале [a;b] с точностью 0,001 методом Симпсона - Free Pascal

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

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

Ребятки, помогите пожалуйста с курсачом, задание во вложении

Решение задачи: «Вычислить приближенные значения интегралов функций f(x) на интервале [a;b] с точностью 0,001 методом Симпсона»

textual
Листинг программы
  1. uses Graph,wincrt;
  2. function f(x:real):real;
  3. begin
  4. f:=x*arctan(x)/sqrt(1+x*x);
  5. end;
  6. var a, b, x, y, mx, my, dx: real;
  7.     cX, cY, i, px, py: integer;
  8.     s: string;
  9.     gd, gm : integer;
  10. begin
  11. gd := detect;
  12. initgraph(gd, gm, '');
  13. cX:=getmaxx div 2;
  14. cY:=getmaxy-50;
  15. a:=-5;
  16. b:=5;
  17. mx:=(cX-30)/b;
  18. my:=(cY-50)/f(b);
  19. line(0, cY, getmaxx, cY);
  20. line(getmaxX,cY,getmaxX-10,cY-5);
  21. line(getmaxX,cY,getmaxX-10,cY+5);
  22. line(cX, 0, cX, getmaxy);
  23. line(cX, 0, cX-5, 10);
  24. line(cX, 0, cX+5, 10);
  25. for i:=1 to 15 do
  26.  begin
  27.   line(cX+round(i*mx),cY-3,cX+round(i*mx),cY+3);
  28.   line(cX-round(i*mx),cY-3,cX-round(i*mx),cY+3);
  29.   str(i,s);
  30.   outtextxy(cX+round(i*mx)-3,cY+10,s);
  31.   outtextxy(cX-round(i*mx)-5,cY+10,'-'+s);
  32.   line(cX-3,cY-round(i*my/10),cX+3,cY-round(i*my/10));
  33.   str(i/10:0:1,s);
  34.   outtextxy(cX-30,cY-round(i*my/10),s);
  35.  end;
  36. outtextxy(cX-12,cY+10,'0');
  37. outtextxy(getmaxx-10,cY-20,'X');
  38. outtextxy(cX+90,25, 'Y=x*arctg(x)/sqrt(1+x^2)');
  39. outtextxy(cX+15,5, 'Y');
  40. x:=a;
  41. dx:=0.001;
  42. while x<=b do
  43.  begin
  44.   x:=x+dx;
  45.   px:=cX+round(x*mx);
  46.   y:=f(x);
  47.   py:=cY-round(y*my);
  48.   putpixel(px,py, 8);
  49.  end;
  50. readkey;
  51. end.

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

  1. Объявлены переменные a, b, x, y, mx, my, dx, cX, cY, i, px, py, s, gd, gm.
  2. Инициализируются графические режимы и координаты для отрисовки графических примитивов.
  3. Задаются значения переменных a и b для интервала интегрирования.
  4. Вычисляются коэффициенты mx и my для масштабирования осей x и y соответственно.
  5. Строятся оси координат и деления на интервале [a;b] с шагом 1.
  6. В цикле вычисляются значения функции f(x) для каждого деления на интервале [a;b] и ставится точка на соответствующей координате (px,py).
  7. После цикла выводится значение 0 в точку с координатами (cX-12,cY+10).
  8. Строятся оси координат и подписываются их значения.
  9. Вычисляется приближенное значение интеграла функции f(x) на интервале [a;b] с точностью 0,001 и записывается в переменную dx.
  10. В цикле с шагом dx перебираются все значения x на интервале [a;b] и для каждого значения вычисляется соответствующее значение y.
  11. Для каждого значения x и y ставится точка на графике в соответствующей точке с координатами (px,py).
  12. После цикла выводится ключ, который позволяет прервать выполнение программы.

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


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

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

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

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

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

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