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

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

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

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

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

textual
Листинг программы
uses Graph,wincrt;
function f(x:real):real;
begin
f:=x*arctan(x)/sqrt(1+x*x);
end;
var a, b, x, y, mx, my, dx: real;
    cX, cY, i, px, py: integer;
    s: string;
    gd, gm : integer;
begin
gd := detect;
initgraph(gd, gm, '');
cX:=getmaxx div 2;
cY:=getmaxy-50;
a:=-5;
b:=5;
mx:=(cX-30)/b;
my:=(cY-50)/f(b);
line(0, cY, getmaxx, cY);
line(getmaxX,cY,getmaxX-10,cY-5);
line(getmaxX,cY,getmaxX-10,cY+5);
line(cX, 0, cX, getmaxy);
line(cX, 0, cX-5, 10);
line(cX, 0, cX+5, 10);
for i:=1 to 15 do
 begin
  line(cX+round(i*mx),cY-3,cX+round(i*mx),cY+3);
  line(cX-round(i*mx),cY-3,cX-round(i*mx),cY+3);
  str(i,s);
  outtextxy(cX+round(i*mx)-3,cY+10,s);
  outtextxy(cX-round(i*mx)-5,cY+10,'-'+s);
  line(cX-3,cY-round(i*my/10),cX+3,cY-round(i*my/10));
  str(i/10:0:1,s);
  outtextxy(cX-30,cY-round(i*my/10),s);
 end;
outtextxy(cX-12,cY+10,'0');
outtextxy(getmaxx-10,cY-20,'X');
outtextxy(cX+90,25, 'Y=x*arctg(x)/sqrt(1+x^2)');
outtextxy(cX+15,5, 'Y');
x:=a;
dx:=0.001;
while x<=b do
 begin
  x:=x+dx;
  px:=cX+round(x*mx);
  y:=f(x);
  py:=cY-round(y*my);
  putpixel(px,py, 8);
 end;
readkey;
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
Похожие ответы