You are on page 1of 17

Міністерство освіти і науки України

Національний технічний університет України


«Київський політехнічний інститут імені Ігоря Сікорського»
Факультет електроенерготехніки та автоматики
Кафедра автоматизації енергосистем

Домашня контрольна робота


з дисципліни
«ОБЧИСЛЮВАЛЬНА ТЕХНІКА ТА ПРОГРАМУВАННЯ»

Перевірив: Виконав:
Шполянський. О. Г. Студент групи ЕМ-31
Маснюк Андрій

Київ – 2023
ЗМІСТ

1. Завдання 3
2. Стислі теоретичні відомості 4
3. Математичні розрахунки 8
4. Блок-схема алгоритму розв’язку задачі 10
5. Текст програми 13
6. Результати роботи програми 15
7. Висновки 16
8. Список літератури 17
ЗАВДАННЯ
Знайти площу фігури з заданою точністю, яка обмежена графіками функцій:
1. Розрахувати точки перетину заданих функцій.
2. Зобразити на координатній площині фігуру, площу якої потрібно
обчислити.
3. Скласти блок-схему алгоритму для знаходження площі заданої фігури
для кожного методу обчислення визначеного інтегралу, що вказані у варіанті
завдання, та скласти її опис.
4. Написати програму на мові C# для обчислення площі заданої фігури
методами відповідно до варіанту завдання.
5. Зробити висновки щодо переваг та недоліків використаних методів
обчислення визначених інтегралів з обґрунтуванням.
Варіант 16

y = −𝑥 2 + 2𝑥
𝑦 = 𝑥 2 − 2𝑥 + 1
1
𝑥 ∈ [0; 1 − ]
√2

Точність, з якою потрібно знайти площу заданої фігури, задається з


клавіатури.
Для усіх варіантів потрібно використати методи трапецій та Сімпсона,
необхідно порівняти результати.

3
СТИСЛІ ТЕОРЕТИЧНІ ВІДОМОСТІ
Під час обчислення визначених інтегралів є точні й наближені методи. На
практиці здебільшого доводиться користуватися наближеними методами через те
що знайти аналітичні вирази для обчислення визначених інтегралів не завжди
можливо. Завдання наближеного обчислення визначених інтегралів базується на
знаходженні ряду значень підінтегральної функції. При цьому будуються потрібні
формули, що можуть обчислювати визначений інтеграл і називаються вони
квадратурними. Виглядають вони так:
𝑏 𝑛

∫ 𝑓(𝑥 )𝑑𝑥 = ∑ 𝐴𝑖 𝑓(𝑥𝑖 )


𝑎 𝑖

Ці формули будуються різноманітними методами. Для прикладу, задля


знаходження невідомих Ai та хi використовуються додатково задані умови:

1. Коефіцієнти Ai при вибраному розташуванні вузлів хi не залежать від


виду підінтегральної функції f(x);
2. Для многочлену Pn (x) степені n отриманий квадратичний вираз є
точним, тому що у цьому випадку f(x)≡Pn (x), або, інакше, він точний для усіх
многочленів виду:
𝑓(𝑥 ) = 𝑥 𝑘 , (𝑘 = 0,1,2, . . , 𝑛)
Квадратурна формула може бути побудована з використанням
геометричних уявлень. Покажемо це на прикладі квадратурної формули метода
трапецій.
Нехай потрібно обчислити інтеграл:
𝑏
∫ 𝑓(𝑥 )𝑑𝑥
𝑎

При умові, що a, b – скінчені й підінтегральна функція f(x) є неперервною


функцією від x на всьому інтервалі [𝑎, 𝑏]. З геометричних уявлень визначений
інтеграл – це площа фігури, яка окреслена кривою y=f(x), віссю X й прямими x0=a
та xn=b (рис. 1).

4
Рисунок 1 – Визначення елементарних стрічок площі підінтегральної функції
Обчислити цю площу можна так: розіб'ємо інтервал інтегрування [a , b] на n
стрічок з малим кроком h=(b-a)\n, на кожному інтервалі довжиною h замінюємо
функцію f(x) відрізком прямої (рис.2) й визначаємо площу елементарної стрічки
як площу трапеції Si. При цьому похибка кожної обчисленої елементарної площі
визначається заштрихованої не врахованою площею (рис. 2).

Рисунок 2 – Обчислення площі елементарної стрічки


Наближене значення інтеграла є сума усіх елементарних площ 𝑆𝑖 , тобто:

5
𝑛−1 𝑛−1

𝐼 ≅ ∑ 𝑆𝑖 = ∑(𝑓(𝑥𝑖 ) + 𝑓(𝑥𝑖+1 ))
2
𝑖=0 𝑖=0

Після нескладних перетворень маємо квадратурну формулу методу трапецій


у вигляді:
𝑓(𝑎)+𝑓(𝑏)
𝐼 ≅ ℎ[ + ∑𝑛−1
𝑖=1 𝑓 (𝑥𝑖 )], де h=(b-a)\n
2

Похибка цієї формули може бути визначена як Et≈kh2 , тобто величина


похибки пропорційна квадрату кроку інтегрування.
Похибку обчислення інтегралу можна зменшити за рахунок ускладнення
алгоритму метода. Наприклад, замінюючи підінтегральну функцію для двох
сусідніх стрічок відрізком параболи, можливо побудувати більш точну
квадратурну формулу, формулу Сімпсона, яка має вигляд:
𝑛
𝑛/2 −1
𝑏 2

∫ 𝑓(𝑥 )𝑑𝑥 = [𝑓 (𝑎) + 𝑓(𝑏) + 4 ∑ 𝑓 (𝑥2𝑖−1 ) + 2 ∑ 𝑓(𝑥2𝑖 )]
𝑎 3
𝑖=1 𝑖=1

де n – обов’язково парна кількість стрічок.


Похибка формули Сімпсона визначається виразом Et≈kh4 тобто пропорційна
вже четвертій степені кроку інтегрування.
Із наведених формул зрозуміло, що точність обчислення значень інтегралів
буде тим вища, чим меншим буде крок розбивання інтервалу інтегрування [a , b].
Ця обставина використовується для забезпечення потрібної точності реалізації
квадратурних формул, при цьому задаються абсолютною похибкою 𝜀, обчислення
інтегралу.
Використовуючи свободу вибору кроку інтегрування h=(b-a)\n, будують
наступну процедуру забезпечення точності:
1. Визначають початкову кількість кроків n.
2. За допомогою визначеної квадратурної формули обчислюють значення
інтеграла Іn.
3. Подвоюють кількість кроків n’=2n.
4. Розраховують нове значення інтеграла для n кроків.
6
5. Перевіряють умову:
|𝐼𝑛 − 𝐼𝑛̅ | ≤ 𝜀
Якщо ця умова не виконується, то знову виконують п.3, 4, 5.

7
МАТЕМАТИЧНІ РОЗРАХУНКИ

Рисунок 3 – Шукана площа


Графіки заданих функцій на проміжку від -0.1 до 1.6. Синім кольором
позначено функцію (𝑥 2 − 2 ∗ 𝑥 + 1), а зеленим – (−𝑥 2 + 2 ∗ 𝑥).
Розрахуємо точки перетину функцій: 𝑥 2 − 2 ∗ 𝑥 + 1 = −𝑥 2 + 2 ∗ 𝑥,
𝑥 2 − 2 ∗ 𝑥 + 1 + 𝑥 2 − 2 ∗ 𝑥 = 0,
2𝑥 2 − 4 ∗ 𝑥 + 1 = 0,
D = b2 – 4 * a * c,
D = 16 − 8 = 8 = (2 ∗ √2)2 ,
−𝑏±√𝐷
𝑥= ,
2∗𝑎
2±2∗√2 √2
𝑥1,2 = =1± ,
2 2

𝑦 = 𝑥 2 − 2 ∗ 𝑥 + 1 = (𝑥 − 1)2 ,
√2 √2 √2 2 2 1
𝑦1,2 (1 ± ) = (1 ± − 1)2 = (± ) = = .
2 2 2 4 2

√2 1 √2 1
Отже, точками перетину графіків функцій є (1 − ; )і (1 + ; ).
2 2 2 2

Обчислимо шукано площу за допомогою формули Ньютона-Лейбніца:

8
1 1
1− 1−
√2 √2
𝑆=∫ (𝑥 2 − 2𝑥 + 1 − (−𝑥 2 + 2𝑥 ))𝑑𝑥 = ∫ (2𝑥 2 − 4𝑥 + 1)𝑑𝑥 =
0 0
1
2𝑥 3 2 1− 2 √2 3 √2 2 √2
=( − 2𝑥 + 𝑥) | √ 2 = (1 − ) − 2(1 − ) + (1 − )=
3 3 2 2 2
0
√2 2 2√2 1 √2 2√2
= (1 − )( − + − 2 + √2 + 1) = (1 − ) (− + √2)
2 3 3 3 2 3

√2 √2 √2 1 √2 − 1
= (1 − )( ) = − = ≈ 0.138071
2 3 3 3 3

9
БЛОК-СХЕМА АЛГОРИТМУ РОЗВ’ЯЗКУ ЗАДАЧІ

10
11
12
ТЕКСТ ПРОГРАМИ
//y1=-x^2+2x
//y2=x^2-2x+1
//(0; 1-1/2^0.5
//f(x) =(x^2-2*x+1)-(-x^2+2*x)

Console.Write("Задайте точнiсть вимiрювання: ");


double e = double.Parse(Console.ReadLine());//accuracy
double a = 0;//start
double b = 1 - 1 / Math.Sqrt(2);//finish
int n = 2; //tape 1.0
double h = (b - a) / n;//step
double x = a;//for iterations
double s11 = 0;
double s21 = 0;
int i; //iteration
do
{
for (i = 1, s11 = 0, x = a; i <= n - 1; i++)
{
x += h;
s11 += (x * x - 2 * x + 1) - (-x * x + 2 * x);

}
s11 = h * (s11 + (a * a - 2 * a + 1) - (-a * a + 2 * a) + (b * b - 2 * b + 1) - (-b * b + 2 * b) / 2);
n *= 2;
h = (b - a) / n;
for (i = 1, x = a, s21 = 0; i <= n - 1; i++)
{
x += h;
s21 += (x * x - 2 * x + 1) - (-x * x + 2 * x);

}
s21 = h * (s21 + (a * a - 2 * a + 1) - (-a * a + 2 * a) + (b * b - 2 * b + 1) - (-b * b + 2 * b) / 2);
}
while (Math.Abs(s11 - s21) > e);

int m = 2;//tape 2.0


double s12;
double s22;
double fa;
double fb;
double sum1;
double sum2;
do
{
for (i = 1, x = a, fa = 0; i <= m / 2; i++)
{
x += h;
fa += (x * x - 2 * x + 1) - (-x * x + 2 * x);
x += h;
13
}
for (i = 1, x = a, fb = 0; i <= m / 2 - 1; i++)
{
x += h + h;
fb += (x * x - 2 * x + 1) - (-x * x + 2 * x);
}
s12 = (h / 3) * ((a * a - 2 * a + 1) - (-a * a + 2 * a) + (b * b - 2 * b + 1) - (-b * b + 2 * b) +
4 * fa + 2 * fb);
m *= 2;
h = (b - a) / m;
for (i = 1, x = a, sum1 = 0; i <= m / 2; i++)
{
x += h;
sum1 += (x * x - 2 * x + 1) - (-x * x + 2 * x);
x += h;
}
for (i = 1, x = a, sum2 = 0; i <= m / 2 - 1; i++)
{
x += h + h;
sum2 += (x * x - 2 * x + 1) - (-x * x + 2 * x);
}
s22 = (h / 3) * ((a * a - 2 * a + 1) - (-a * a + 2 * a) + (b * b - 2 * b + 1) - (-b * b + 2 * b) +
4 * sum1 + 2 * sum2);
}
while (Math.Abs(s22 - s12) > e);
Console.WriteLine("Площа за допомогою метода трапецій: S =" + s21);
Console.WriteLine("Задiяна для цього кiлькiсть елементарних стрiчок: " + n);
Console.WriteLine("Площа за допомогою метода Сiмпсона: S =" + s22);
Console.WriteLine("Задiяна для цього кiлькiсть елементарних стрiчок: " + m);

14
РЕЗУЛЬТАТ РОБОТИ ПРОГРАМИ

Рисунок 4 - Результат роботи програми

15
ВИСНОВКИ
З метою виконати дане мені завдання в домашній контрольній роботі я
написав програму, що обчислює площу фігури, яка обмежена двома графіками
функцій. Вона обчислює площу за допомогою вказаних мною квадратурних
формул двома методами, а саме методом трапецій та методом Сімпсона.
Можна сказати, що метод Сімпсона обчислює точніше за використання
меншої кількості елементарних стрічок, так як за методом трапецій результат
становив приблизно 0,138077 з 32768 стрічками, а метод Сімпсона показав
результат 0,138071, використавши всього 8. Задля перевірки правильності
результатів були здійснені ручні розрахунки за допомогою формули Ньютона-
Лейбніца і вони становили 0,138071, що збігається з методом Сімпсона і
приблизно рівне методу трапецій.

16
СПИСОК ЛІТЕРАТУРИ
1. Бахвалов Н.С. Численые методы. – М.: Наука, 1975 – 631 с.
2. Фихтенгольц Г. М. Курс дифференциального и интегрального исчисления. —
Москва : Наука, 1964. — Т. 2. — 800 с.
3. Демидович Б. П. Марон И.А. Основы вычислительной математики. – М.:
Наука, 1966 – 664 с.
4. Волков Е.А. Численые методы. – М.: Наука, 1982 – 254 с

17

You might also like