PDF / INTEGRATION
.pdf1: program INTEGRATION; 2:
3: |
const |
|
4: |
a = |
3; |
5:b = -63;
6:c = 416;
7:d = -837;
9:range_start = 4;
10:range_end = 7;
11:step_count = 10;
12: step = (range_end - range_start)/step_count; 13:
14:
15:function f(x: real): real; // вычисление значений функции
16:begin
17:f:=x*x*x*a + x*x*b + x*c + d;
18:end;
19:
20:procedure rectangles_forward; // метод прямоугольников "вперед"
21:var
22:i: integer;
23:S: real;
24:begin
25:S:=0;
26:for i:=0 to step_count-1 do
27:S:=S + f(range_start + step*i);
28:S:=S*step;
29: WriteLn(' метод прямоугольников вперед : ', S:12:6); 30: end;
31:
32:procedure rectangles_rearward; // метод прямоугольников "назад"
33:var
34:i: integer;
35:S: real;
36:begin
37:S:=0;
38:for I:=1 to step_count do
39:S:=S + f(range_start + step*i);
40:S:=S*step;
41: WriteLn(' метод прямоугольников назад : ', S:12:6); 42: end;
43:
44:procedure rectangles_average; // метод прямоугольников "в середине"
45:var
46:i: integer;
47:S: real;
48:begin
49:S:=0;
50:for i:=0 to step_count-1 do
51:S:=S + f(range_start + step*i + step/2);
52:S:=S*step;
53:WriteLn(' метод прямоугольников "посередине" : ', S:12:6);
54:end;
55:
56:procedure trapezium; // метод трапеций
57:var
58:i: integer;
59:S: real;
60:begin
61:S:=0;
62:for i:=0 to step_count-1 do
63:S:=S + (f(range_start + step*i) + f(range_start + step*(i+1)));
64:S:=S*(step/2);
65: WriteLn(' метод трапеций : ', S:12:6); 66: end;
67:
68:procedure simpson; // метод Сипмсона
69:var
70:i: integer;
71:S: real;
72:mult: byte;
73:begin
74:S:=0;
75:mult:=1;
76:for i:=0 to step_count do
77:begin
78:if i mod 2 = 0 then mult:=4 else mult:=2;
79:if (i = step_count) or (i=0) then mult:=1;
80:S:=S + mult*f(range_start + step*i);
81:end;
82:S:=S*(step/3);
83: WriteLn(' метод Симпсона : ', S:12:6); 84: end;
85:
86:begin
87:WriteLn('-- Вычисление определенного интеграла --');
88:rectangles_forward;
89:rectangles_rearward;
90:rectangles_average;
91:trapezium;
92:simpson;
93:ReadLn;
94:end.