Міністерство освіти і науки України
Національний університет
«Львівська політехніка»
кафедра САПР
Лабораторна робота №5
з курсу "Чисельні методи в інформатиці"
на тему:
ЧИСЕЛЬНІ МЕТОДИ РОЗВ'ЯЗУВАННЯ
ТРАНСЦЕНДЕНТНИХ РІВНЯНЬ
1. МЕТА РОБОТИ
Мета роботи - ознайомлення з чисельними методами розв'язку трансцендентних рівнянь та їх практичним застосуванням.
2. ТЕОРЕТИЧНА ЧАСТИНА
2.1. Методи розв'язування нелінійних рівнянь
Розв'язування нелінійних рівнянь і систем є не тільки важливою самостійною задачею, але і частиною інших задач обчислювальної математики, наприклад, розв'язування нелінійних диференціальних рівнянь або знаходження власних значень матриць. З ними пов'язана побудова різноманітних моделей пристроїв і систем автоматики та інформаційно-вимірювальної техніки.
2.2. Методи бісекції розв'язку трансцендентних рівнянь.
2.2.1. Метод половинного ділення.
В цьому методі спочатку обчислюються значення функції в точках, розміщених через рівні інтервали на осі x. Коли і мають протилежні знаки, то знаходять
та
Якщо знак співпадає із знаком , то в дальшому замість використовується . Якщо ж має знак, протилежний знаку , тобто співпадає зі знаком , то на заміняється це значення.
Якщо достатньо близьке до 0, то процес обчислення закінчується.
Як умову припинення ітераційного процесу часто найбільш доцільно використовувати умову:
(1)
де - задана похибка знаходження кореня.
Даний метод має малу швидкість збіжності. У порівнянні з початково знайденим інтервалом, в якому знаходиться корінь, його ширина після N ітерацій зменшується в 2N раз:
(2)
Похибка знайденого рішення знаходиться в межах
(3)
Ефективність даного методу:
(4)
де n - кількість обчислень функції.
2.2.2. Метод золотого перерізу
Алгоритм даного методу подібний до методу половинного ділен-ня, тільки поділ відрізка здійснюється виходячи із співвідношення золотого січення:
(5)
Ефективність даного методу є більшою, ніж методу половинного ділення і оцінюється співвідношенням:
(6)
2.3. Метод хорд
В основі цього методу лежить лінійна інтерполяція по двох значеннях функції, які мають протилежні знаки. При пошуку кореня метод забезпечує більшу збіжність, ніж попередні. Структура алгоритму представлена на рис.2. Визначаються значення функції в точках, розміщених на осі x через рівні інтервали. Це здійснюється до цього часу, поки і не будуть мати різних знаків.
Пряма, проведена через ці дві точки, перетинає вісь x при значенні:
(7)
Далі визначають і порівнюють його з і . В подальшому користуються замість того значення, з яким воно співпадає по знаку. Якщо дуже відрізняється від 0, то вся процедура повторюється спочатку.
При можна вважати, що . Це справедливо при вузькому інтервалі і коли похідна змінюється плавно (менше ніж у два рази).
Похибка розв'язку оцінюється по формулі:
(8)
де M1 і m1 - відповідно найбільше і найменше значення модуля похідної на відрізку .
2.4. Метод Ньютона (дотичних)
Метод Ньютона дуже широко використовується при побудові ітераційних алгоритмів. Його популярність пояснюється тим, що, на відміну від двох попередніх методів, для визначення інтервалу, в якому знаходиться корінь, не потрібно знаходити значення функції з протилежними знаками. Замість інтерполяції (наближення) по двох значеннях функції в методі Ньютона здійснюється екстраполяція (передбачення) за допомогою дотичної до кривої в даній точці.
Структура алгоритму представлена на рис. 3.
В основі методу лежить розклад функції в ряд Тейлора:
(9)
члени, які містять h у другій і більших степенях відкидаються.
Використовується співвідношення: . Допускається, що перехід від xn до xn+1 наближує значення функції до нуля.
Тоді:
(10)
Це значення відповідає точці, в якій дотична до кривої перетинає вісь x. Після чого процедура повторюється, причому замість xn використовується xn+1. Обчислення припиняється при досягненні достатньо малого значення .
Швидкість збіжності у великій мірі залежить від вдалого вибору початкової точки.
Початкове наближення x0 вибирається із умови:
(11)
Похибка методу визначається порядком відкинутих членів при розкладі в ряд Тейлора і оцінюється як
(12)
де M2 - найбільше значення модуля другої похідної на відрізку .
2.5. Метод січних
Один із недоліків методу Ньютона - необхідність знаходження похідної . Якщо знаходження утруднене, то можна використати деяке наближення, що складає основу методу січних. Замінивши в методі Ньютона в рівнянні (10) на:
(13)
Одержимо
(14)
Структура алгоритму має цей же самий вигляд, що і для методу Ньютона (при іншій ітераційній формулі). Метод січних представляє собою комбінацію методів інтерполяції і екстраполяції. В інтерполяцій-ній частині він еквівалентний методу хорд, а в екстраполяційній - методу Ньютона. Як і в методі Ньютона, обчислення закінчуються при досягненні необхідної точності послідовних значень x або коли близьке до 0.
2.6. Метод простої ітерації
Для використання даного методу рівняння представляється у вигляді:
(15)
Відповідна ітераційна формула має вигляд:
(16)
Структура алгоритму даного методу має також такий же вигляд, що і для методу Ньютона (при іншій ітераційній формулі).
Цей метод простий, але не завжди забезпечує збіжність. Тому для програми, яка використовує цей алгоритм необхідний контроль збіжності і припинення обчислень, якщо збіжність не забезпечується.
Похибка методу:
(17)
де q - максимальне значення першої похідної функції на відрізку ,
якщо q<1, то ітераційний процес збігається незалежно від вибору початкового значення .
Лабораторне завдання (Варіант №11).
Графік функції:
Точні значення х при у=0:
Х1= -0.30656
Х2= 0.45880
Х3= 1.5412
Х4= 2.3066;
Функція приймає значення 0 на проміжках [-0.5 , 0], [0.2 , 0.6], [1.3 , 1.6] та [2 , 2.5]
1.Проміжок [-0.5 , 0]
Метод половинного ділення:
EPS= .10000
X= -0.31250
Кількість ітерацій - 3 0.01937
EPS= .10000E-01
X= -0.30469
Кількість ітерацій - 6 0.00609
Метод золотого перерізу:
EPS= .10000
X= -0.23609
Кількість ітерацій - 3 0.22967
EPS= .10000E-01
X= -0.30246
Кількість ітерацій - 8 0.01337
Метод Нютона:
X0= -1.0000
EPS= .10000
X= -0.33123
Кількість ітерацій - 3 0.93816
EPS= .10000E-1
X=-0.30657
Кількість ітерацій - 5 0.00003
Метод хорд:
EPS= .10000
X= -0.29992
Кількість ітерацій - 4 0.02165
EPS= .10000E-01
X= -0.30584
Кількість ітерацій - 6 0.00234
2.Проміжок [0.2 , 0.6]
Метод половинного ділення:
EPS= .10000
X= 0.50000
Кількість ітерацій - 2 0.08980
EPS= .10000E-01
X= .45625
Кількість ітерацій - 6 0.00555
Метод золотого перерізу:
EPS= .10000
X= 0 .54163
Кількість ітерацій - 2 0.18053
EPS= .10000E-01
X= 0.45571
Кількість ітерацій - 7 0.00673
Метод Нютона:
Х0=0.3
EPS= .10000
X= .45879
Кількість ітерацій - 2 0.00002
EPS= .10000E-01
X= .45879
Кількість ітерацій - 2 0.00002
Метод хорд:
EPS= .10000
X= .45722
Кількість ітерацій - 1 0.00344
EPS= .10000E-01
X= .45722
Кількість ітерацій - 1 0.00344
3.Проміжок [1.3 , 1.6]
Метод половинного ділення:
EPS= .10000
X= 1.5250
Кількість ітерацій - 2 0.01051
EPS= .10000E-01
Кількість ітерацій - 5 0.00441
X= 1.5344
Метод золотого перерізу:
EPS= .10000
X= 1.5562
Кількість ітерацій - 2 0.00973
EPS= .10000E-01
X= 1.5395
Кількість ітерацій - 5 0.00110
Метод Нютона:
X0=1.2
EPS= .10000
X= 1.5414
Кількість ітерацій - 3 0.00013
EPS= .10000E-01
X= 1.5412
Кількість ітерацій - 4 0.00000
Метод хорд:
EPS= .10000
X= 1.5352
Кількість ітерацій - 1 0.00389
EPS= .10000E-01
X= 1.5412
Кількість ітерацій - 2 0.00000
4. Проміжок [2 , 2.5]
Метод половинного ділення:
EPS= .10000
X= 2.3125
Кількість ітерацій - 3 0.00255
EPS= .10000E-01
X= 2.3047
Кількість ітерацій - 6 0.00082
Метод золотого перерізу:
EPS= .10000
X= 2.2639
Кількість ітерацій - 3 0.01851
EPS= .10000E-01
X= 2.3024
Кількість ітерацій - 5 0.00182
Метод Нютона:
X0= 2.1000
EPS= .10000
X= 2.3224
Кількість ітерацій - 3 0.00685
EPS= .10000E-01
X= 2.3066
Кількість ітерацій - 5 0.00000
Метод хорд:
EPS= .10000
X= 2.2999
Кількість ітерацій - 4 0.00290
EPS= .10000E-01
X= 2.3058
Кількість ітерацій - 6 0.00034
Висновок
На даній лабораторній роботі, ми ознайомились з чисельними методами розв'язку трансцендентних рівнянь та їх практичним застосуванням.