Файл: ДОСЛІДЖЕННЯ ЧИСЕЛЬНИХ МЕТОДІВ ВИРІШЕННЯ НЕЛІНІЙНИХ РІВНЯНЬ МЕТОДАМИ НЬЮТОНА, СІЧНИХ ТА ПРОСТОЇ ІТЕРАЦІЇ.docx
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 30.03.2019
Просмотров: 1232
Скачиваний: 1
Початкове наближення слід вибирати з умови:
(1.6)
Грубо оцінити похибку для методу можна так:
,
(1.7)
де М2 – найбільше за модулем значення другої похідної на інтервалі
[xn, xn+1].
Рисунок 1.2 - Метод Ньютона
1.4 Метод січних
Однією з головних проблем при застосуванні методу Ньютона є необхідність аналітичного опису похідної. Якщо це складно чи неможливо, то можна застосувати її наближену оцінку. Тоді замість методу дотичних застосовується метод січних, за яким
(1.8)
де
-
наближена оцінка похідної, що розглядається
як січна, а не як доти-
чна, і може бути оцінена за формулою
,
(1.9)
чи
(1.10)
де h — деякий невеликий крок.
Алгоритм цього методу подібний методу Ньютона, але з іншою ітераційною формулою.
Рисунок 1.3 - Метод січних
1.5 Метод простої ітерації
Цей метод можна використовувати лише якщо доведена збіжність ітераційного алгоритму. В цьому методі процес розв’язання потрібно починати з пошуку інтервалу збіжності. Умовою збіжності є те що максимальне значення І-ї похідної правої частини рівняння Х=g(x) (1) (до такого вигляду потрібно привести вихідне рівняння f(x)=0 ) повинна бути менша за 1. Якщо умова не виконується, то алгоритм не збіжний. Коли в інтервалі збіжності немає коренів, треба застосовувати інші методи або приходити до рівняння (1) через інші способи.
Похибка ж методу на n – ій ітерації обчислюється так:
Δ<
(1.11)
Рисунок 1.4 - Метод простої ітерації
2 АЛГОРИТМИ МЕТОДІВ
У цьому розділі розглянуто схеми алгоритмів таких методів: Ньютона, січних та простої ітерації.
Рисунок
2.1 – Схема алгоритму методу Ньютона
Рисунок 2.2 – Схема алгоритму методу січних
Рисунок 2.3 – Схема алгоритму методу простої ітерації
3 РОЗРОБКА ПРОГРАМНОГО ЗАБЕЗПЕЧЕННЯ
3.1 Вибір мови програмування
Для вирішення цієї задачі було обрано середовище програмування С++, так як воно має ряд вагомих переваг перед іншими середовищами і мовами програмування. Зокрема такими перевагами є те, що:
- не вимагає великих затрат як апаратної частини комп’ютера так і програмної;
- дозволяє досить просто реалізовувати поставлені задачі;
- є дуже візуальним і наглядним що робить його зручним інструментом в користуванні;
- ця мова є досить гнучка і дозволяє використовувати технології об’єктно-орієнтованого програмування.
Обрана мова програмування цілком підходить для розв’язання поставленого завдання.
3.2 Вхідні та вихідні дані
Вхідні
дані: нелінійне рівняння:
,
похідна від нього, початкове наближення,
де х0
(-1.68;
-0,067; 2.31), допустима похибка Δ,
вхідне рівняння для методу ітерації.
Вихідні дані: знайдені корені х, які задовольняють умову:
<
Δ,
кількість кроків для отримання розв’язку
із заданою похибкою, кількість ітерацій.
3.3 Структура програмного забезпечення
Програмний продукт складається з наступних функцій:
- int main() - головна функція програми
- double findNewton(double x, double eps) - функція обрахунку методом Ньютона.
- double findSecant(double x, double eps) - функція обрахунку методом січних
- double findSimpleIteration(double x, double eps) - функція обрахунку методом простої ітерації
Схему програми наведено у додатку А, лістинг у додатку Б.
3.4 Інструкція користувачеві
У користуванні програмне забезпечення методів дуже просте та зручне.
Для завантаження програми необхідно лише запустити програмний файл, який має назву відповідного методу і формат exe, а саме: «Solution of a equation.EXE». При цьому з’явиться відповідне вікно з результатами розрахунків. Програма видасть результат значень х та кількість ітерацій методами одразу, без зайвих введень. Для виходу з програм необхідно натиснути будь-яку клавішу. Як виглядає вікно програми, можна побачити, глянувши на «Рисунок 3.4».
Для вирішення іншого нелінійного рівняння методами Ньютона, січних та простої ітерації або змінити умови вхідних даних необхідно внести відповідні зміни в коді програми.
Рисунок 3.4 – Вікно роботи програми
4 ТЕСТУВАННЯ ПРОГРАМНОГО ЗАБЕЗПЕЧЕННЯ
Для тестування програми, яка призначена для вирішення нелінійних рівнянь методами Ньютона, січних і простої ітерації розглянемо 2 приклади випадкових нелінійних рівнянь і, перевіримо чи співпадатимуть результати розрахунків вручну з результатами розрахунків за допомогою програми.
//У таблицях тесту№1 не всі розв’язання є правдивими, деякі з них є лише правдоподібними.(зробіть стрічки цього кометару пустими, вони не для друку!)//
4.1 Тестування програми. Тест №1
Нехай дано нелінійне рівняння ex2+x-4 = 0, яке необхідно розв’язати в інтервалі [-1;1]. Для його розв’язання побудовано графік (Рисунок 4.1).
Рисунок 4.1 – Графік рівняння ex2+x-4 = 0
Із графіку видно, що наше рівняння має один корінь .
Обчислимо нелінійне рівняння, яке дано, вручну і представимо результати обчислень в таблицях.
Таблиця 4.1 – Обчислення нелінійного рівняння вручну методом Ньютона
|
N |
x |
F(x) |
dF(x) |
h = f(x) / f'(x) |
|
0 |
1 |
4.3891 |
15.7781 |
0.2782 |
Продовження таблиці 4.1
|
1 |
0.7218 |
0.958 |
9.4723 |
0.1011 |
|
2 |
0.6207 |
0.0811 |
7.9208 |
0.01024 |
|
3 |
0.6105 |
0.000721 |
7.7805 |
9.3E-5 |
Таблиця 4.2 – Обчислення нелінійного рівняння вручну методом січних
|
N |
x |
F(x) |
h' = (x-xn-1) / (f(x) - f(xn-1)) |
h = f(x)*h' |
|
0 |
1 |
4.3891 |
0.2913 |
1.2787 |
|
1 |
-0.2787 |
- 3.7061 |
0.1291 |
- 0.4785 |
|
2 |
0.1998 |
- 2.309 |
0.1144 |
- 0.264 |
|
3 |
0.4638 |
- 1.0075 |
0.1026 |
- 0.1034 |
|
4 |
0.5672 |
- 0.3233 |
0.09307 |
- 0.03009 |
|
5 |
0.5973 |
- 0.1003 |
0.08515 |
- 0.00854 |
|
6 |
0.6059 |
- 0.03488 |
0.07846 |
- 0.00274 |
|
7 |
0.6086 |
- 0.01371 |
0.07276 |
- 0.000997 |
Таблиця 4.3 – Обчислення нелінійного рівняння вручну методом простої ітерації
|
N |
x |
φ (x) |
|
0 |
-1 |
- 4.8647 |
|
1 |
- 0.6917 |
- 4.4409 |
|
2 |
- 0.4102 |
- 3.97 |
|
3 |
- 0.1586 |
- 3.4304 |
|
4 |
0.05882 |
- 2.8163 |
|
5 |
0.2373 |
- 2.1552 |
|
6 |
0.3739 |
- 1.5136 |
|
7 |
0.4699 |
- 0.9709 |
|
8 |
0.5314 |
- 0.5742 |
Продовження таблиці 4.3
|
9 |
0.5678 |
- 0.3193 |
|
10 |
0.588 |
- 0.1705 |
|
11 |
0.5988 |
- 0.08886 |
|
12 |
0.6045 |
- 0.04571 |
|
13 |
0.6074 |
- 0.02335 |
|
14 |
0.6088 |
- 0.01188 |
Далі представлено результати розв’язку нелінійного рівняння методами Ньютона, січних та простої ітерації у програмі (Рисунок 4.1).
Рисунок 4.1 – Обчислення програмою
4.2 Тестування програми. Тест №2
Нехай дано нелінійне рівняння ex2+3x-4 = 0. Для його розв’язання побудовано графік (Рисунок 4.2).
Із графіку видно, що наше рівняння має один корінь, який знайдемо в інтервалі [0.4;0.6].
Рисунок 4.2 – Графік рівняння ex2+3x-4 = 0
Обчислимо нелінійне рівняння, яке дано, вручну і представимо результати обчислень в таблицях.
Таблиця 4.1 – Обчислення нелінійного рівняння вручну методом Ньютона
|
N |
x |
F(x) |
dF(x) |
h = f(x) / f'(x) |
|
0 |
0.6000 |
1.1201 |
9.6402 |
-0.1162 |
|
1 |
0.4838 |
0.0831 |
8.2633 |
-0.0101 |
|
2 |
0.4738 |
0.0005 |
8.1585 |
--0.0001 |
|
3 |
[0.4737] |
|
|
|
Таблиця 4.2 – Обчислення нелінійного рівняння вручну методом січних
|
N |
X |
F(x) |
|
0 |
0.6000 |
1.1201 |
|
1 |
0.5900 |
1.0244 |
|
2 |
0.4830 |
0.0765 |
|
3 |
0.4744 |
0.0056 |
|
4 |
[0.4737] |
|
Таблиця 4.3 – Обчислення нелінійного рівняння вручну методом простої ітерації
|
N |
x |
φ(x) |
|
0 |
0.4750 |
0.4729 |
|
1 |
0.4729 |
0.4741 |
|
2 |
0.4741 |
0.4734 |
|
3 |
0.4734 |
0.4738 |
|
4 |
[0.4738] |
|
Далі представлено результати розв’язку нелінійного рівняння методами Ньютона, січних та простої ітерації у програмі (Рисунок 4.2).
Рисунок 4.2 – Обчислення програмою
З обрахунків видно, що результати роботи програми та обчислені власноруч збігаються, тому можна зробити висновок, що програма справна та правильно обчислює нелінійні рівняння.