Лабораторна робота № 4
Використання оператора циклу для розв’язання нелінійних скінчених (алгебричних чи трансцендентних) рівнянь методом простої ітерації
1. Порядок виконання роботи
1.1. Скласти алгоритмічною мовою Фортран програму для розв’язання нелінійного рівняння методом простої ітерації.
1.2. Відлагодити на комп’ютері складену програму.
1.3. Ввести числові дані та отримати результат.
1.4. Скласти звіт про роботу й захистити його.
2. Вказівки до виконання роботи
Суть методу простої ітерації полягає у заміні шляхом тих чи інших перетворень рівняння EMBED Equation.DSMT4 рівнянням вигляду
EMBED Equation.DSMT4
Наприклад, помноживши ліву і праву частину рівняння EMBED Equation.DSMT4 на константу с, переставивши їх місцями і додавши до лівої і правої частини х, одержимо рівняння
EMBED Equation.DSMT4
звідки
EMBED Equation.DSMT4
Далі, задаємося нульовим наближенням EMBED Equation.DSMT4 кореня та знаходимо його перше наближення
EMBED Equation.DSMT4
і т.д. Ітераційний процес має вигляд
EMBED Equation.DSMT4
Щоб ітераційний процес був збіжним, на інтервалі EMBED Equation.DSMT4 повинна задовольнятися умова
EMBED Equation.DSMT4
виконання якої можна досягнути належним вибором константи с.
Схема алгоритму розв’язання нелінійного скінченого рівняння методом простої ітерації зображена на рис. 11. У цій схемі блоки з номерами 4, 5, 8 утворюють ітераційний цикл, кількість повторень якого при виконанні програми наперед невідома.
Схема алгоритму, зображена на рис. 12, досконаліша, бо містить лічильник кількості ітерацій та перевірку перевищення допустимої кількості ітерацій, що забезпечується блоками 4, 6, ..., 9. У випадку, коли у програмі допущена помилка, або константа с обчислена невірно, видається повідомлення про перевищення допустимого значення кількості ітерацій EMBED Equation.DSMT4 і виконання програми припиняється.
Початок
1
ні
так
6
2
Кінець
7
Виведення EMBED Equation.DSMT4
4
3
8
Введення EMBED Equation.DSMT4
EMBED Equation.DSMT4
EMBED Equation.DSMT4
5
EMBED Equation.DSMT4
EMBED Equation.DSMT4
Рис. 11. Схема алгоритму розв’язання нелінійного скінченого рівняння методом простої ітерації
Приклад. Необхідно скласти програму визначення методом простої ітерації кореня рівняння
EMBED Equation.DSMT4
з точністю = 0,0001 на інтервалі від а=0 до b=1,5. (Тут рівняння, точність та інтервал пошуку кореня такі ж самі, як і у лабораторній роботі №3, тому, очевидно, і знайдене методом простої ітерації значення кореня повинно збігатися із значенням, отриманим методом половинного ділення.)
Вхідні дані необхідно ввести шляхом діалогу, а вихідні дані видати на екран монітора та записати до файла вихідної інформації. У випадку перевищення допустимого значення кількості ітерацій повідомлення про це також видати на екран монітора та записати у файл вихідної інформації.
Перетворимо задане рівняння:
EMBED Equation.DSMT4
EMBED Equation.DSMT4
Умова
EMBED Equation.DSMT4
задовольняється на інтервалі [0; 1,5], якщо прийняти с = 0,5. За нульове наближення кореня можна взяти будь-яке значення із заданого інтервалу, наприклад EMBED Equation.DSMT4
Початок
1
13
12
10
9
ні
Кінець
так
8
Кінець
так
Повідомлення
EMBED Equation.DSMT4
6
5
4
3
2
Введення EMBED Equation.DSMT4
EMBED Equation.DSMT4
EMBED Equation.DSMT4
EMBED Equation.DSMT4
EMBED Equation.DSMT4
7
ні
EMBED Equation.DSMT4
11
Виведення EMBED Equation.DSMT4
EMBED Equation.DSMT4
Рис. 12. Схема алгоритму розв’язання нелінійного скінченого рівняння методом простої ітерації
із використанням лічильника кількості ітерацій
Один із можливих варіантів програми:
Для виконання роботи за даною програмою слід виконати такі дії.
Запустити програму і після появи на екрані дисплея повідомлення
X0=
ввести нульове наближення кореня, тобто 1 у довільному форматі, та натиснуту клавішу “Enter”;
після появи на екрані дисплея повідомлення
С=
ввести значення константи с, тобто 0.5, та натиснуту клавішу “Enter”;
після появи на екрані дисплея повідомлення
EPS=
ввести значення похибки 0.0001 та натиснуту клавішу “Enter”;
після появи на екрані дисплея повідомлення
Jmax=
ввести допустиме значення кількості ітерацій, наприклад, 100, та натиснуту клавішу “Enter”.
Програма автоматично введе вхідну інформацію, обчислить значення кореня, надрукує це значення та виконану кількість ітерацій на екран монітора
Korin= 1.147396 za 11 iteracij
та у файл вихідної інформації REZULTATY.DAT:
Korin= 1.147 za 11 iteracij
і закінчить роботу.
Значення кореня х та виконаної кількість ітерацій слід переписати з екрана дисплея.
Увага! У даному випадку, обчислене значення кореня, видане на екран монітора, дещо відрізняється від знайденого у лабораторній роботі №3, однак знаходиться у межах заданої похибки. Це результат заокруглень при обчисленнях. Виведене до файла вихідної інформації значення кореня записане у фіксованому форматі.
Рекомендується програму знаходження кореня запустити декілька разів, змінюючи при цьому нульове наближення кореня, значення похибки та допустиме значення кількості циклів, проаналізувати отримані результати і зробити висновки.
У випадку невірно заданих вхідних даних чи помилки у програмі можливе повідомлення
J > Jmax
Вхідні дані для знаходження кореня нелінійного скінченого рівняння методом половинного ділення наведені у табл. 6 лабораторної роботи №3. Точність = 0,0001.