Частина тексту файла (без зображень, графіків і формул):
МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ “ЛЬВІВСЬКА ПОЛІТЕХНІКА”
/
Лабораторна робота №5
Тема:
«НАБЛИЖЕНЕ ОБЧИСЛЕННЯ ІНТЕГРАЛІВ ЗА ДОПОМОГОЮ КВАДРАТУРНИХ ФОРМУЛ
НЬЮТОНА-КОТЕСА»
Завдання:
1. Одержати варіант завдання.
2. Вивчити теоретичну частину.
3. Використовуючи будь-яку з відомих Вам мов програмування, написати та відлагодити програму наближеного обчислення означеного інтеграла за допомогою квадратурних формул НьютонаКотеса з заданою точностю .
4. Для відлагодження програми потрібно вибрати таку підінтегральну функцію і межі інтегрування, щоб інтеграл обчислювався точно, наприклад . Якщо точність досягнута, то вивести на друк величину похибки .
Варіант №15. Метод Сімпсона.
№ варіанта
15.
Короткі теоретичні відомості
Нехай потрібно обчислити інтеграл (1)
де — задана інтегровна на вагова функція, — задана достатньо гладка на функція. Для наближеного обчислення (1) будемо розглядати формули вигляду (2)
які називаються квадратурними формулами. Числа називають вузлами квадратурної формули, а числа — коефіцієнтами, або ваговими коефіцієнтами. Величина
називається залишковим членом, або похибкою квадратурної формули.
Якщо функцію на замінити інтерполяційним поліномом Лагранжа то одержимо квадратурну формулу інтерполяційного типу. У цьому випадку . (3)
Якщо у квадратурній формулі (2) з ваговими коефіцієнтами (3) для інтегралів (1) з вузли рівновіддалені, тобто то така формула називається квадратурною формулою Ньютона–Котеса. У формулах Ньютона–Котеса крок . Тоді квадратурна формула (2), (3) буде мати вигляд де Поклавши , маємо складену формулу Сімпсона (парабол)
,
для формули Сімпсона маємо оцінку похибки
.
Алгоритм наближеного обчислення інтеграла для квадратурної формули Сімпсона.
1. Ввожу значення .
2. .
3. Обчислюю величину кроку =(b-a)/2N та вузли квадратурної формули =a+2ih.
4. Обчислюю наближене значення інтеграла:,
5. Приймаю.
6. Обчислюю наближене значення за тією ж формулою.
7. Якщо то присвоююі перехожу до пункту 5.
8. Уточнюю наближене значення інтеграла за формулою
.
9. Вивожу .
Результати отримані за допомогою пакету програм Maple 12.
> /
/
/
/
/
/
/
///
Код програми:
#include <iostream.h>
#include <math.h>
//using namespace std;
int N = 8;
double a = 0,
b = 1,
e = 0.0000001,
h = (b - a) / (2 * N),
X[100],
Ics, Ics2;
double F(double);
void Simpson();
void main()
{
Simpson();
cout<<"Iteraciji zakin4eno... Velu4uba pohubku = "<<fabs(Ics - Ics2)<<endl;
Ics = Ics2 + (Ics2 - Ics)/15;
cout<<"N = "<<N<<"\nh = "<<h<<"\nIh = "<<2 * Ics<<endl;
}
double F(double x)
{
double func = pow(x, 3) / (pow(x, 8) + 1);
return func;
}
void Simpson()
{
for(int i = 0; i < N + 1; i++)
X[i] = a + 2 * i * h;
double S = F(X[0]);
for(i = 1; i < N; i++)
if(i % 2 == 1)
S += 4 * F(X[i]);
else
S += 2 * F(X[i]);
S += F(X[N]);
Ics = S * h / 3;
Ics2 = Ics;
do
{
Ics = Ics2;
N = 2 * N;
h = h / 2;
for(int i = 0; i < N + 1; i++)
X[i] = a + 2 * i * h;
S = F(X[0]);
for(i = 1; i < N; i++)
if(i % 2 == 1)
S += 4 * F(X[i]);
else
S += 2 * F(X[i]);
S += F(X[N]);
Ics2 = S * (h / 3);
}
while(fabs(Ics - Ics2)/15 > e);
}
Результат виконання програми:
/
Висновок:
В процесі виконання даної лабораторної роботи я наближено обчислив інтеграл за допомогою квадратурних формул Ньютона-Котеса, а саме формули Сімпсона. Значення обчислене за допомогою цієї формули майже співпало із значенням отриманим за допомогою пакету програм Maple 12.