``````````````````````````````````````````````````````Лабораторна робота № 3
Використання оператора циклу для розв’язання нелінійних скінчених (алгебричних чи трансцендентних) рівнянь методом половинного ділення
1. Порядок виконання роботи
1.1. Скласти алгоритмічною мовою Фортран програму для розв’язання нелінійного рівняння методом половинного ділення.
1.2. Відлагодити на комп’ютері складену програму.
1.3. Ввести числові дані та отримати результат.
1.4. Скласти звіт про роботу й захистити його.
2. Вказівки до виконання роботи
Необхідність розв’язання нелінійних скінчених рівнянь в електромеханіці виникає в задачах розрахунку нелінійних електричних кіл, проектування різних видів електричних машин і апаратів тощо.
Розв’язком (інакше – коренем) нелінійного рівняння
EMBED Equation.DSMT4
є значення x, яке перетворює це рівняння у тотожність.
Задачу визначення кореня, звичайно, розв’язують чисельними ітераційними методами. Суть цих методів зводиться до того, що, задавшись нульовим EMBED Equation.DSMT4 наближенням кореня, визначають його перше EMBED Equation.DSMT4 наближення, за значення EMBED Equation.DSMT4 визначають друге EMBED Equation.DSMT4 наближення і т.д. Якщо різниця EMBED Equation.DSMT4 з ростом j стає все меншою, то кажуть, що ітераційний процес збігається. Його можна припинити, коли виконається нерівність
EMBED Equation.DSMT4
де – похибка (наперед задане мале число).
Нелінійне рівняння може мати єдиний розв’язок, скінчену множину розв’язків чи нескінчену множину розв’язків. Для застосування розглянутих далі методів слід попередньо мати (чи знайти) інтервал EMBED Equation.DSMT4 , у якому знаходиться шуканий корінь рівняння. Якщо задовольняється умова
EMBED Equation.DSMT4
тобто функція EMBED Equation.DSMT4 на кінцях інтервалу має різні знаки, то це означає, що інтервал містить у собі один чи непарну кількість коренів. Якщо на інтервалі задовольняється умова
EMBED Equation.DSMT4
тобто перша похідна монотонної функції EMBED Equation.DSMT4 не змінює знаку, то це означає, що на інтервалі EMBED Equation.DSMT4 розташований лише один корінь.
Примітка. Кожне подане далі рівняння на заданому інтервалі містить один корінь.
Знаходження кореня нелінійного рівняння методом половинного ділення зводиться до того, що заданий інтервал EMBED Equation.DSMT4 із шуканим коренем ділять на дві рівні частини, як показано на рис. 8. Середину інтервалу (точку с) знаходимо за формулою
EMBED Equation.DSMT4
Ту частину інтервалу, для якої не задовольняється умова про різні знаки функції на його кінцях, у даному випадку сb, відкидають. Тим самим інтервал звужується у два рази. Новий інтервал EMBED Equation.DSMT4 знову ділять і т.д. Ділення інтервалу здійснюється доти, поки не виконається умова
EMBED Equation.DSMT4
де EMBED Equation.DSMT4 – координати інтервалу на j-тій ітерації (j=1, 2, ...). Шуканим коренем рівняння приймають значення
EMBED Equation.DSMT4
y
y(x)
y(b)
b
c
a
y(с)
x
b1
0
a1
y(a)
Рис. 8. Знаходження кореня нелінійного рівняння методом половинного ділення
Схема алгоритму розв’язання нелінійного скінченого рівняння методом половинного ділення зображена на рис. 9.
Увага! Якщо невірно буде заданий інтервал чи допущена помилка в програмі, то це може призвести до зациклення роботи програми. Щоб цього не допустити, у програмах з ітераційними циклами використовують лічильники кількості ітерацій. Для цього задаються максимально допустимим значення EMBED Equation.DSMT4 кількості ітерацій. У випадку, коли виконана програмою кількість ітерацій перевищила допустиму, видається повідомлення і виконання програми припиняється. Схема алгоритму методу половинного ділення із використанням такого лічильника зображена на рис. 10.
Приклад. Необхідно скласти програму визначення методом половинного ділення кореня рівняння
EMBED Equation.DSMT4
з точністю =0,0001 на інтервалі від а=0 до b=1,5.
Перевірка показує, що EMBED Equation.DSMT4 і EMBED Equation.DSMT4 тобто EMBED Equation.DSMT4 тому на заданому інтервалі є корінь.
Один із можливих варіантів програми:
Початок
1
10
ні
ні
так
так
12
11
9
8
Виведення х
7
6
5
4
3
2
EMBED Equation.DSMT4
Кінець
EMBED Equation.DSMT4
EMBED Equation.DSMT4
Введення а, b, ε
EMBED Equation.DSMT4
EMBED Equation.DSMT4
EMBED Equation.DSMT4
EMBED Equation.DSMT4
EMBED Equation.DSMT4
Рис. 9. Схема алгоритму розв’язання нелінійного скінченого рівняння методом половинного ділення
1
Початок
2
Введення а, b, ε, EMBED Equation.DSMT4
15
17
16
14
EMBED Equation.DSMT4
EMBED Equation.DSMT4
ні
так
ні
так
13
Кінець
12
Повідомлення
EMBED Equation.DSMT4
11
9
Кінець
Виведення х
8
7
ні
EMBED Equation.DSMT4
6
4
5
3
EMBED Equation.DSMT4
EMBED Equation.DSMT4
EMBED Equation.DSMT4
так
10
EMBED Equation.DSMT4
EMBED Equation.DSMT4
EMBED Equation.DSMT4
EMBED Equation.DSMT4
Рис. 10. Схема алгоритму розв’язання нелінійного скінченого рівняння методом половинного ділення
із використанням лічильника кількості ітерацій
Для виконання роботи за даною програмою слід виконати такі дії.
Запустити програму і після появи на екрані дисплея повідомлення
Vvid A, B, EPS, Jmax
набрати вхідну інформацію (значення лівої та правої границь інтервалу, похибки та максимально допустимого значення кількості ітерацій) у довільному форматі, наприклад,
0 1.5 0.0001 30
та натиснуту клавішу “Enter”.
Програма автоматично введе вхідну інформацію, обчислить значення кореня, надрукує це значення та виконану кількість ітерацій:
Korin= 1.147476 za 14 iteracij
і закінчить роботу.
Значення кореня х та виконаної кількість ітерацій слід переписати з екрана дисплея.
Рекомендується програму знаходження кореня запустити декілька разів, змінюючи при цьому межі інтервалу, значення похибки та допустиме значення кількості циклів, проаналізувати отримані результати і зробити висновки.
Увага! У випадку помилки у програмі знайдене значення кореня може збігатися з однією із заданих границь інтервалу або виходити за його межі.
У випадку невірно заданих вхідних даних чи помилки у програмі можливе повідомлення
J > Jmax
Вхідні дані для знаходження кореня нелінійного скінченого рівняння методом половинного ділення наведені у табл. 6. Точність = 0,0001.
Таблиця 6
Дані для знаходження кореня нелінійного скінченого рівняння