ться величиною m. Для m = 3 A 1 = 5/9, A 2 = 8/9, A 3 = 5/9,, t 2 = 0, t 3 =-t 1
Блок-схема програми.
В
Блок-схема1: Функція обчислення інтеграла.
Блок-схема 2: Основна програма. h1> Текст програми та результати рахунку.
program Kursovoy;
const A1 = 5/9; A2 = 8/9; t = -0.77459; {константи для взяття інтеграла методом Гауса}
type func = function (x, c, d: real): real; {прототип функції від якої береться інтеграл}
var a, b, eps: real; {межі інтегрування і точність обчислення}
c: array [1 .. 4] of real; {параметри функції, від якої береться інтеграл}
d: array [1 .. 5] of real; {взяті з таблиці 2}
function f_test (x, c, d: real): real; {тестова функція sin (x)}
begin {інтеграл від 0 до пі теоретично дорівнює 2}
f_test: = sin (x);
end;
function f1 (x, c, d: real): real; {перша функція з таблиці 2}
begin
f1: = exp (d * x/2) * sqr (cos (c * x));
end;
function f2 (x, c, d: real): real; {друга функція з таблиці 2}
begin
f2: = sqr (x * ln (c * d * x));
end;
{Функція взяття інтеграла від функції f, прототип (вид) якої описаний в типі func
a, b- межі інтегрування, cm, dm-параметри c і d функції f, eps-точність обчислень
k-число ітерацій, за які вдалося знайти інтеграл}
function Integral (f: func; a, b, cm, dm, eps: real; var k: integer): real;
var S, z, h, c, d, l, x, x1, x2, x3: real; {S-поточне наближене значення інтеграла,
z-Попередні наближене значення інтеграла, h-крок інтегрування,
c, d, l, x, x1, x2, x3-допоміжні змінні см. стор.25 методички}
i, n: integer; {i-лічильник циклу, n-число інтервалів інтегрування}
begin
n: = 1; S: = 0; k: = 0;
repeat
k: = k +1; {збільшуємо кількість ітерацій}
z: = S; {попереднє значення інтеграла дорівнює поточним}
n: = n * 2; {в два рази збільшуємо число інтервалів інтегрування}
h: = (ba)/n; x: = a; S: = 0; c: = h/2; l: = c * t; {визначення кроку інтегрування,
початкового значення x, сам інтеграл спочатку дорівнює 0,
допоміжні змінні вважаємо}
for i: = 0 to n-1 do {перебираємо всі інтервали інтегрування}
begin
d: = x + c; x1: = d-l; x2: = d; x3: = d + l; {обчислюємо значення абцісс вузлів,
вибраних з умови забезпечення мінімуму похибки інтерполяції}
S: = S + A1 * (f (x1, cm, dm) + f (x3, cm, dm)) + A2 * f (x2, cm, dm); {додаємо до суми}
x: = x + h; {переходимо на новий інтервал інтегрування}
end;
S: = S * c; {множимо отриману суму на h/2}
until (abs (z-S) = 14); {в...