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

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

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

Рік:
2013
Тип роботи:
Звіт до лабораторної роботи
Предмет:
Інші

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

МІНІСТЕРСТВО ОСВІТИ І НАУКИ, МОЛОДІ ТА СПОРТУ УКРАЇНИ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ "ЛЬВІВСЬКА ПОЛІТЕХНІКА" Кафедра ЗІ ЗВІТ До лабораторної роботи №5 Мета роботи - ознайомлення з найпоширенішим ітераційним методом розв’язування систем нелінійних рівнянь – методом Ньютона. ТЕОРНТИЧНІ ВІДОМОСТІ Метод Ньютона базується на лінеаризації задачі і заміні розв'язування нелінійної системи (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 – факторизації та ін.) , знаходимо . Значення  визначаємо із виразу  Метод Ньютона базується на лінеаризації задачі і заміні розв'язування нелінійної системи (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 – факторизації та ін.) , знаходимо . Значення  визначаємо із виразу  ЗАВДАННЯ ДО ЛАБОРАТОРНОЇ РОБОТИ Розв’язати систему нелінійних рівнянь методом Ньютона з якобіаном із кінцевих різниць, вибираючи за початкові наближення . Ітерації проводити до збігу двох послідовних наближень з похибкою . ТЕКСТ ПРОГРАМИ using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ConsoleApplication1 { class Program { public static void Main() { Nuton nt = new Nuton(1, 1); nt.solve(); } } class Nuton { public double x1, x2; public double dx1, dx2, d, x, y, del, f1, f2; double h = 0.00001; int n = 4; public Nuton(double x, double y) { x1 = x; x2 = y; } double f(double x1, double x2, int i) { if (i == 0 || i == 1) return x1 - x1 * x1 - x2 * x2 - 0.1; return x2 - 2 * x1 * x2 - 0.1; } double[] Poxidna() { double[] df = new double[n]; for (int i = 0; i < n; i++) { if (i % 2 == 0) df[i] = (f(x1 + h, x2, i) - f(x1, x2, i)) / h; else df[i] = (f(x1, x2 + h, i) - f(x1, x2, i)) / h; } return df; } public void solve() { do { double[] a; a = Poxidna(); d = a[0] * a[3] - a[1] * a[2]; dx1 = (-f(x1, x2, 1) * a[3] - (-f(x1, x2, 2) * a[1])) / d; dx2 = (-f(x1, x2, 2) * a[0] - (-f(x1, x2, 1) * a[2])) / d; x = x1; y = x2; x1 += dx1; x2 += dx2; del = (x1 - x) / x; } while (Math.Abs(del) > h); Console.WriteLine("Коренi системи:\nx1=" + x + "\nx2=" + y); f1 = x - (Math.Pow(Math.Pow(x, 2) - Math.Pow(y, 2), 2)) / 4 - Math.Pow(x, 2) * Math.Pow(y, 2) + 0.5; f2 = y - x * y * (Math.Pow(x, 2) - Math.Pow(y, 2)) + 0.5; Console.WriteLine("\nf1=" + f1); Console.WriteLine("f2=" + f2); Console.WriteLine("\nPress any key to exit..."); Console.Read(); } } } РЕЗУЛЬТАТ ВИКОНАННЯ ПРОГРАМИ 
Антиботан аватар за замовчуванням

29.05.2013 23:05-

Коментарі

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

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

Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!
Нічого не вибрано
0%

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

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

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

Admin

26.02.2023 12:38

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