МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ «ЛЬВІВСЬКА ПОЛІТЕХНІКА»
ІКТА
Кафедра БІТ
/
Звіт
до лабораторної роботи №4
з курсу: «Комп’ютерні методи дослідження інформаційних процесів та систем»
на тему: «Числове інтегрування функції однієї змінної»
Варіант №4
Мета роботи – ознайомлення з методами наближеного обчислення означених інтегралів.
Чисельне інтегрування функцій однієї змінної
Метод Гаусса
Формулу Гаусса називають формулою найвищої алгебраїчної точності, абсциси xi при інтерполяції (наближенні) функції вибираються з умови забезпечення мінімальної похибки інтерполяції. В методі Гауссса інтеграл
(23)
зводиться до вигляду
(24)
тобто точне значення заміняється на наближену квадратурну формулу.
Це зведення відбувається у наступній послідовності. У формулі (23) змінна x заміняється на
(25)
Тоді
(26)
І з врахуванням (24) можна записати, що:
. (27)
В формулі (24) коефіцієнти та абсциси (вузли) вибираються в залежності від числа вузлів. Значення невідомих є коренями поліномів Лежандра. Вузли розташовані на інтервалі (-1,1), завжди симетрично відносно нуля. Всі вагові коефіцієнти додатні, а їх сума дорівнює 2.
N
i
ti
Ai
1
1
0
2
2
1 ; 2
0,57735027
1
3
1 ; 3
2
0,77459667
0
5/9
8/9
4
1 ; 4
2 ; 3
0,86113631
0,33998104
0,34785484
0,65214516
5
1 ; 5
2 ; 4
3
0,906179846
0,538469310
0
0,236926885
0,478628670
0,568888889
Для достатньо гладкої підінтегральної функції формула Гаусса (27) забезпечує високу точність вже при невеликому числі вузлів . Для оцінки похибки обчислень за формулою Гаусса з вузлами користуються формулою:
,
Наприклад, при
;
.
ЗАВДАННЯ ДО ЛАБОРАТОРНОЇ РОБОТИ
№ вар.
Підінтегральна функція
Інтервал інтегрування
Метод
Абсолютна похибка
4
[1; 4]
Гаусса (n=4)
5
Блок-схема алгоритму програми
Текст програми
package lab_4_gauss;import java.util.Arrays;public class main { public static void main(String[] args) { final double[] t = { -0.86113631, -0.33998104, 0.86113631, 0.33998104, }; System.out.println(">>> t = " + Arrays.toString(t)); final double[] A = { 0.34785484, 0.65214516, 0.34785484, 0.65214516, }; final int n = 4; int a = 1; int b = 4; System.out.println(">>> A = " + Arrays.toString(A)); String integrand = "log(x)^2 / x"; System.out.println("\n\t>>> a = " + a + "\n\t>>> b = " + b + "\n\t>>> integrand = " + integrand + "\n"); System.out.println("\n\t>>> I = " + defineIntegral(A, t, a, b, n) + "\n"); } static double f(double x) { return (Math.pow((Math.log(x)), 2.0) / x); } static double defineIntegral(double[] A, double[] t, int a, int b, int n) { double sum = 0; for (int i = 0; i < n; i++) { sum += A[i] * f((b - a) / 2.0 * t[i] + (b + a) / 2.0); } return (b - a) / 2.0 * sum; }}
Результат роботи програми
/
Перевірка результату виконання програми
/
Висновок: в даній лабораторній роботі я ознайомилась з методами наближеного обчислення означених інтегралів.