DevioLab CRYPTO TRADING AUTOMATION
LIVE
AUTOMATED CRYPTO TRADING • BINANCE
Автоматизуйте свій криптопортфель
Торгові боти DevioLab аналізують крипторинок, автоматично відкривають і закривають позиції та керують вашим портфелем на Binance 24/7.
CRYPTO 80 Bots
BINANCE Spot Trading
TRADING 24 / 7
Спробувати DevioLab
deviolab.com

МЕТОД НЬЮТОНА ДЛЯ РОЗВ’ЯЗУВАННЯ СИСТЕМ НЕЛІНІЙНИХ РІВНЯНЬ

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
ІКТА
Факультет:
Не вказано
Кафедра:
Не вказано

Інформація про роботу

Рік:
2013
Тип роботи:
Звіт до лабораторної роботи
Предмет:
Комп’ютерні методи дослідження інформаційних процесів та систем

Частина тексту файла (без зображень, графіків і формул):

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ «ЛЬВІВСЬКА ПОЛІТЕХНІКА» ІКТА кафедра БІТ З В І Т до лабораторної роботи №5 з курсу: «Комп’ютерні методи дослідження інформаційних процесів та систем» на тему: «МЕТОД НЬЮТОНА ДЛЯ РОЗВ’ЯЗУВАННЯ СИСТЕМ НЕЛІНІЙНИХ РІВНЯНЬ» Мета роботи - ознайомлення з найпоширенішим ітераційним методом розв’язування систем нелінійних рівнянь – методом Ньютона. 1.Короткі теоретичні відомості Стандартний метод Ньютона Метод Ньютона базується на лінеаризації задачі і заміні розв'язування нелінійної системи (2) на послідовність розв'язувань лінійних систем (найчастіше прямими методами). Будемо вважати, що система рівнянь (2) має розв'язок; позначимо його через вектор  і розкладемо кожну функцію в ряд Тейлора в околі розв'язку  (2) де  - члени другого і вищих порядків. Вважаючи, що  дуже близьке до , знехтуємо членами вищих порядків і запишемо систему рівнянь в лінеаризованій формі:  (3) або в іншому вигляді  (4) де  – матриця Якобі (якобіан) системи (1) Враховуючи, що  є розв'язком системи, згідно з (2) можемо записати:  Звідси випливає, що і праву частину (4) також можна прирівняти до нуля:  (5) Розв'язком системи (5) є нове значення вектора X, яке не точно дорівнює значенню вектора  (оскільки знехтували членами другого і вищих порядків). Використовуючи верхні індекси для позначення послідовності ітерацій, можна записати  (6) Звідси  (7) де  - обернена матриця Якобі; . У достатньо широкому околі розв'язку  ітераційний процес (7) збігається, якщо . Ітераційний процес закінчується при виконанні умови  (8) де Σ - задана гранична похибка уточнень коренів системи (1). Таким чином, алгоритм стандартного методу Ньютона можна розбити на декілька кроків. Крок 1. Вибір вектора початкових уточнень . Крок 2. Обчислення елементів матриці Якобі. Крок 3. Обчислення елементів оберненої матриці Якобі. Крок 4. Перемноження значень функції (див. формулу (7))  Крок 5. Одержаний на кроці 4 вектор віднімається від вектора , у результаті чого одержується покращений вектор розв'язку . Крок 6. Перевірка умови закінчення ітерацій (8). Якщо вона не виконується, то за вектор початкових уточнень приймається вектор  і проводиться наступна ітерація, починаючи з кроку 2. При використанні стандартного методу Ньютона слід мати на увазі наступне. 1. Стандартний метод Ньютона надзвичайно ефективний. 2. Збіжність на початку ітераційного процесу, як правило, лінійна. 3. Починаючи з деякого кроку ( уточнити його попередньо неможливо), збіжність різко прискорюється і стає квадратичною. 4. Бувають випадки, коли метод розбігається або спостерігається зациклювання ітерацій. Тому необхідно обмежувати максимальну кількість ітерацій деяким попередньо заданим числом. Основний недолік методу полягає в повторних обчисленнях на кожному кроці вектора , матриці Якобі , оберненої матриці Якобі . Тому на практиці досить часто з метою зменшення витрат машинного часу використовують стандартний метод Ньютона без обертання матриці Якобі. Позначаючи  (9) перепишемо (6) у вигляді  (10) Таким чином, задача зводиться до пошуку вектора поправок (приростів)  із системи лінійних алгебраїчних рівнянь (10), у якій матрицею коефіцієнтів при невідомих  є матриця Якобі , а вектором-стовпцем вільних членів служить вектор значень функції – . Розв'язуючи цю систему одним із відомих методів (як правило, це представники групи прямих методів – метод Гаусса з вибором головних елементів, метод LU – факторизації та ін.) , знаходимо . Значення  визначаємо із виразу  (11) Завдання до лабораторної роботи Розв’яжіть систему нелінійних рівнянь одним із методів, вказаних викладачем, вибираючи за початкові наближення . Ітерації проводити до збігу двох послідовних наближень з похибкою . 13)   3.Блок-схема алгоритму програми 4. Текст програми using System; namespace tarasko { class Program { static void Main() { Metod M = new Metod(); M.Obrach(); } } class Metod { public double f1(double x10, double x20) { return x10-x10/(x10*x10+x20*x20)-0.4; } public double f2(double x10, double x20) { return x20 - ( x20) / (x10 * x10 + x20 * x20)+1; } public double df1dx1(double x10, double x20) { return 1 - ((x20 * x20 - x10 * x10)/Math.Pow((x10*x10+x20*x20),2.0)); } public double df1dx2(double x10, double x20) { return x10 * 2 * x20 / Math.Pow((x10 * x10 + x20 * x20), 2.0); } public double df2dx1(double x10, double x20) { return(x20*2*x10)/Math.Pow((x10*x10+x20*x20),2.0); } public double df2dx2(double x10, double x20) { return 1 - (x20 * x20 - x10 * x10) / Math.Pow((x10 * x10 + x20 * x20), 2.0); } public void Obrach() { double x10 = -1, x20 = 1, h = 0.00001; double delX1, delX2, poh; Console.WriteLine("Початковi наближення \n x10= " + x10 + "\n x20= " + x20 + " \nПохибка= " + h); if ((df1dx1(x10, x20) * df2dx2(x10, x20) - df1dx2(x10, x20) * df2dx1(x10, x20)) != 0) do { delX1 = df1dx2(x10, x20) * f2(x10, x20) - df2dx2(x10, x20) * f1(x10, x20); delX2 = df2dx1(x10, x20) * f1(x10, x20) - df1dx1(x10, x20) * f2(x10, x20); poh = delX1 / x10; x10 += delX1; x20 += delX2; } while (Math.Abs(poh) > h); else Console.WriteLine("Визначник Якобiана=0"); Console.WriteLine("Результат :\n x1=" + x10 + "\n x2=" + x20); Console.ReadKey(); } } } 5. Результати роботи програми / Висновок:У даній лабораторній роботі я навчився розв’язувати системи нелінійних алгебраїчних рівнянь за допомогою за допомогою методу Ньютона. Використовуючи цей алгоритм ми суттєво скорочуєм час на обчислення нелінійних алгебраїчних рівнянь.
Антиботан аватар за замовчуванням

17.03.2013 13:11

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Ділись своїми роботами та отримуй миттєві бонуси!

Нічого не вибрано
0%

Оголошення від адміністратора

Антиботан аватар за замовчуванням

Подякувати Студентському архіву довільною сумою

Admin

26.02.2023 12:38

Дякуємо, що користуєтесь нашим архівом!