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

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

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

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

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

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

Міністерство освіти і науки України Національний університет „Львівська політехніка” ІКТА, кафедра «Захисту інформації» Звіт З ЛАБОРАТОРНОЇ РОБОТИ № 5 З КУРСУ “ КОМП’ЮТЕРНІ МЕТОДИ ДОСЛІДЖЕННЯ ІНФОРМАЦІЙНИХ ПРОЦЕСІВ ТА СИСТЕМ ” НА ТЕМУ: “ МЕТОД НЬЮТОНА ДЛЯ РОЗВ’ЯЗУВАННЯ СИСТЕМ НЕЛІНІЙНИХ РІВНЯНЬ“ Варіант 2 Львів-2007 Мета роботи-ознайомлення з найпоширенішим ітераційним методом розв’язування систем нелінійних рівнянь – методом Ньютона КОРОТКІ ТЕОРЕТИЧНІ ВІДОМОСТІ Стандартний метод Ньютона Метод Ньютона базується на лінеаризації задачі і заміні розв'язування нелінійної системи (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) ЗАВДАННЯ ДО ЛАБОРАТОРНОЇ РОБОТИ Розв’яжіть систему нелінійних рівнянь одним із методів, вказаних викладачем, вибираючи за початкові наближення . Ітерації проводити до збігу двох послідовних наближень з похибкою .   ТАБЛИЦЯ ІДЕНТИФІКАТОРІВ КОНСТАНТ, ЗМІННИХ, ФУНКЦІЙ, ВИКОРИСТАНИХ У ПРОГРАМІ, ТА ЇХ ПОЯСНЕННЯ: Xo Початкове значення інтегралу  Yo Кінцеве значення інтегралу  h Коефіцієнти, які використовуються за методом Гауса  delX Коефіцієнти, які використовуються за методом Гауса  delY Змінна, для обчислення суми за методом Гауса  poh Змінна, для обчислення інтегралу  f1() Функція яка задає перше рівняння  f1() Функція яка задає друге рівняння  df1dx Функція яка задає   df1dy Функція яка задає   df2dx Функція яка задає   df2dy Функція яка задає   main() Основна функція  clrscr() Функція очищення екрану  scanf() Функція вводу елементів  printf() Функція виводу елементів   Текст програми мовою С #include<stdio.h> #include<math.h> #include<conio.h> double f1(double x, double y) // persha funkcia { return x-cos(y)-1; } double f2(double x, double y) // druga funkcia { return y-sin(y)-1; } ///Znachenia chastkovyh pohydnyh//// double df1dx(double x, double y) { return 1; } double df1dy(double x, double y) { return sin(y); } double df2dx(double x, double y) { return 0; } double df2dy(double x, double y) { return 1-cos(y); } double Xo,Yo,h,delX,delY,poh; ////////Osnovna programa///////// void main(void) { clrscr(); printf("pochatkove nablyghennya Xo="); scanf("%lf",&Xo); printf("pochatkove nablyghennya Yo="); scanf("%lf",&Yo); printf("h="); scanf("%lf",&h); if ((df1dx(Xo,Yo)*df2dy(Xo,Yo)-df1dy(Xo,Yo)*df2dx(Xo,Yo))!=0) { do { delX=df1dy(Xo,Yo)*f2(Xo,Yo)-df2dy(Xo,Yo)*f1(Xo,Yo); delY=df2dx(Xo,Yo)*f1(Xo,Yo)-df1dx(Xo,Yo)*f2(Xo,Yo); poh=delX/Xo; Xo+=delX; Yo+=delY; } while (fabs(poh)>h); } else printf("Vyznachnyk Jakobiana = 0"); printf("X=%4.4lf\nY=%4.4lf",Xo,Yo); getch(); } Результат роботи програми: pochatkove nablyghennya Xo=-0.9 pochatkove nablyghennya Yo=-1.4 h=0.00001 X=0.6442 Y=1.9346 Висновок: Виконавши дану лабораторну роботі я ознайомилась з найпоширенішим ітераційним методом розв’язування систем нелінійних рівнянь – методом Ньютона
Антиботан аватар за замовчуванням

01.01.1970 03:01-

Коментарі

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

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

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

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

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

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

Admin

26.02.2023 12:38

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