Міністерство Освіти Російської Федерації p>
Рязанська державна радіотехнічна академія p>
Кафедра обчислювальної та прикладної математики. p>
ОБЧИСЛЕННЯ визначених інтегралів. p>
Пояснювальна записка до курсової роботи з дисципліни «Інформатика» p>
Виконав: студент гр. p>
Перевірив: p>
Нікітін В.І. p>
Рязань , 2001р p>
Завдання. p>
Скласти програму обчислення визначеного інтегралаз похибкою не перевищує задану величину. У програміпередбачити захист від зациклення ітераційного процесу, підрахунок тавивід на друк числа ітерацій, за яке вдається знайти значення інтегралаіз заданою похибкою. Для перевірки програми інтегрування обчислити
Метод обчислень - Формула Гаусса. P>
| № | f (x) | a | b | c | d | |
| 1 | edx/2cos2 (cx) | 0 | (| 0.9; 1; 1.05; | 2.4; 2.5; 2.6 | 10-4 |
| | | | | 1.1 | | |
| 2 | (x ln (cdx)) 2 | 1 | e | 3; 3.2; 3.4; | 0.5; 0.4; | 10-3 |
| | | | | 3.5 | 0.85 | | p>
Зміст. P>
Завдання. 1 p>
Зміст. 2 p>
Опис методу рішення. 3 p>
Блок-схема програми. 4 p>
Текст програми та результати рахунку. 5 p>
Висновок. 7 p>
Бібліографічний список. 7 p>
Опис методу рішення. P>
У формулі Гаусса на кожному інтервалі інтегрування значення функціїf (x) обчислюється не в рівномірно розподілених по інтервалу вузлах, а вабсцис, обраних з умови забезпечення мінімуму похибкиінтерполяції: p>
де n-число інтервалів інтегрування, m - число обчислюваних на кожномуінтервалі значень функції. , - Межі інтервалівінтегрування; і - коефіцієнти значення яких визначаютьсявеличиною m. Для m = 3 A1 = 5/9, A2 = 8/9, A3 = 5/9,, t2 = 0, t3 =- t1 p>
Блок-схема програми. P>
Блок-схема1: Функція обчислення інтеграла. p>
Блок-схема 2: Основна програма. p>
Текст програми та результати рахунку. p>
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: = dl; x2: = d; x3: = d + l; (обчислюємо значення абцісс вузлів, вибраних з умови забезпечення мінімуму похибки інтерполяції) p>
S: = S + A1 * (f (x1, cm, dm) + f (x3, cm , dm)) + A2 * f (x2, cm, dm); (додаємо до суми) x: = x + h; (переходимо на новий інтервал інтегрування) end; p>
S: = S * c ; (множимо отриману суму на h/2) until (abs (zS) = 14); (виходимо з циклу, якщо відносна похибка попереднього і поточного інтегралів меншезаданої точності або якщо кількість ітерацій перевищило допустимий)
Integral: = S; (повертаємо значення отриманого Інтергал)end;var i, j, n: integer;begin
(обчислюємо значення перевірочного інтеграла, передаючи у функцію Integralім'я обчислює функцію в даному випадку f_test, інтервал інтегрування a = 0 b = 3.14159 cm = 0 dm = 0 (останні два параметри в даному випадку можуть бути будь-якими, тому щоf_test від них не залежить) eps = 1e-3 (точність), в параметр n, після виходу з функції обчисленняінтеграла буде записано число ітерацій) writeln ( 'Перевірочний інтеграл від 0 до пи sin (x) dx
= ', Integral (f_test, 0,3.14159,0,0,1 e-3, n): 7:5, p>
' ', n,' ітерацій '); c [1]: = 0.9 ; c [2]: = 1; c [3]: = 1.05; c [4]: = 1.1; (введення параметрів для першогофункції) d [1]: = 2.4; d [2]: = 2.5; d [3]: = 2.6; eps: = 1e-4; a: = 0; b: = 3.14159; writeln ( 'Інтеграл від', a: 1:0, 'до', b: 5:3, 'функції f1', 'зточністю ', eps: 5,' при: '); for i: = 1 to 4 do (перебираємо параметр з) for j: = 1 to 3 do (перебираємо параметр d) begin
(обчислюємо значення першого інтеграла, передаючи у функцію Integral ім'яобчислює функцію в даному випадку f1, інтервал інтегрування a = 0 b = 3.14159 cm = c [i] dm = d [i] (останні два параметри перебираються в циклі і не рівні
0, тому що f1 від них залежить) eps = 1e-4 (точність), в параметр n, після виходу з функції обчисленняінтеграла буде записано число ітерацій) writeln ( 'з =', c [i]: 4:2, 'd =', d [j]: 4:2, 'дорівнює
', Integral (f1, a, b, c [i], d [j], eps, n): 8:5,' ', n,' ітерацій '); end; readln; (очікуємо натискання клавіші enter, інакше всі виводяться дані непомістяться на один екран) c [1]: = 3; c [2]: = 3.2; c [3]: = 3.4; c [4]: = 3.5; (введення параметрів для першогофункції) d [1]: = 0.5; d [2]: = 0.4; d [3]: = 0.85; eps: = 1e-3; a: = 1; b: = exp (1); (b = e ) writeln ( 'Інтеграл від', a: 1:0, 'до', b: 5:3, 'функції f2', 'зточністю ', eps: 5,' при: '); for i: = 1 to 4 do (перебираємо параметр з) for j: = 1 to 3 do (перебираємо параметр d) begin
(обчислюємо значення другого інтеграла, передаючи у функцію Integral ім'яобчислює функцію в даному випадку f2, інтервал інтегрування a = 1 b = e cm = c [i] dm = d [i] (останні два параметри перебираються в циклі і не рівні
0, тому що f2 від них залежить) eps = 1e-3 (точність), в параметр n, після виходу з функції обчисленняінтеграла буде записано число ітерацій) writeln ( 'з =', c [i]: 4:2, 'd =', d [j]: 4:2, 'дорівнює
', Integral (f2, a, b, c [i], d [j], eps, n): 8:5,' ', n,' ітерацій '); end;end. p>
Результати рахунку. p>
Перевірочний інтеграл від 0 до пи sin (x) dx = 2.00000 2 ітерацій p>
Інтеграл від 0 до 3.142 функції f1 з точністю 1.0E-0004 при:с = 0.90 d = 2.40 рівний 17.12437 3 ітераційс = 0.90 d = 2.50 рівний 19.52435 3 ітераційс = 0.90 d = 2.60 рівний 22.28654 3 ітераційс = 1.00 d = 2.40 рівний 22.33040 2 ітераційс = 1.00 d = 2.50 рівний 25.49172 2 ітераційс = 1.00 d = 2.60 рівний 29.12609 3 ітераційз = 1.05 d = 2.40 рівний 24.19102 3 ітераційз = 1.05 d = 2.50 рівний 27.60541 3 ітераційз = 1.05 d = 2.60 рівний 31.52694 3 ітераційз = 1.10 d = 2.40 рівний 25.37969 3 ітераційз = 1.10 d = 2.50 рівний 28.93760 3 ітераційз = 1.10 d = 2.60 рівний 33.01928 3 ітерацій p>
Інтеграл від 1 до 2.718 функції f2 з точністю 1.0E-0003 при:с = 3.00 d = 0.50 дорівнює 8.40102 2 ітераційс = 3.00 d = 0.40 дорівнює 5.52503 2 ітераційс = 3.00 d = 0.85 рівний 17.78460 2 ітераційс = 3.20 d = 0.50 дорівнює 9.35094 2 ітераційс = 3.20 d = 0.40 дорівнює 6.29171 2 ітераційс = 3.20 d = 0.85 рівний 19.17026 2 ітераційс = 3.40 d = 0.50 рівний 10.29153 2 ітераційс = 3.40 d = 0.40 дорівнює 7.06018 2 ітераційс = 3.40 d = 0.85 рівний 20.52016 2 ітераційс = 3.50 d = 0.50 рівний 10.75780 2 ітераційс = 3.50 d = 0.40 дорівнює 7.44414 2 ітераційс = 3.50 d = 0.85 рівний 21.18214 2 ітерацій p>
Висновок. p>
У цій роботі обчислювалися певні інтеграли методом
Гаусса. Як видно з отриманих результатів, програма працює правильно, тому щотеоретично = 2, що співпадає з розрахунковим, забезпечує задануточність обчислень, при малому числі ітерацій. До переваг даногометоду обчислення функцій варто віднести, те що метод Гаусса забезпечуєточне обчислення інтеграла від полінома ступеня 2m-1. До недоліків слідвіднести відносно великий час розрахунку інтеграла, при великих m. p>
Бібліографічний список. p>
1. Рішення рівнянь і чисельне інтегрування на ЕОМ: Методичні вказівки до курсової роботи з дисципліни «Інформатика». Рязань, 2000р. 32 c. p>
2. Бронштейн И.Н., Семендяев К.А. Довідник з математики для інженерів і учнів втузов. М.: 1986 544с.
3. Бахвалов Н.С. Чисельні методи. М.: 1975. P>
----------------------- p>
Вихід p>
j p>
Висновок S, n p>
Наближене обчислення другого інтеграла S p>
j = 1,3 p>
i = 1,4 p>
c [1]: = 0.9 ; c [2]: = 1; c [3]: = 1.05; c [4]: = 1.1; d [1]: = 2.4; d [2]: = 2.5; d [3]: = 2.6; eps : = 1e-4; a: = 0; b: = 3.14159; p>
c [1]: = 0.9; c [2]: = 1; c [3]: = 1.05; c [4 ]: = 1.1; d [1]: = 2.4; d [2]: = 2.5; d [3]: = 2.6; eps: = 1e-4; a: = 0; b: = 3.14159; p>
i p>
Наближене обчислення перших інтеграла S p>
Висновок S, n p>
i p>
j p>
j = 1,3 p>
i = 1,4 p>
Висновок S p>
S = p>
Вхід p>
S = S * c p>
d = x + c; x1 = dl; x2 = d; x3 = d + l; p>
S = S + A1 * (f (x1, cm, dm) + f (x3, cm, cd)) + A2 * (f (x2, cm, dm)) x = x + h p>
i = 0, n-1 p>
i p>
Вихід (S, k) p>
НІ p>
ТАК p>
| zS | <(| S | or k> = 14 p>
k = k +1; z = S; n = n * 2; h = (ba)/n; x = a; S = 0; c = h/2; l = c * t p>
n = 1; S = 0; k = 0; p>
Вхід (f, a, b, cm, dm, () p>