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