Основним недоліком методу Ньютона чи методу простої ітерації (послідовних наближень) при знаходженні розв’язку системи нелінійних рівнянь (СНР) являється процес вдалого вибору початкового наближення, при якому б ітераційний процес даних методів був збіжний. Для того, щоб уникнути даної проблеми, можна скористоатись будь-яким з оптимізаційних методів мінімізації функції багатьох змінних. Серед методів даної групи розглянемо метод найшвидшого спуску (градієнтний метод). Основна ідея даного методу полягає у зведенні задачі на знаходження розв’язку СНР до відшукання точки мінімуму функції декількох змінних, яка складається з суми квадратів функцій, які містяться в лівій частині рівнянь заданої системи.

Розглянемо даний процес більш детально. Для зручності, візьмемо систему, яка складається з двох нелінійних рівнянь з двома невідомими:

Розв'язок системи нелінійних рівнянь

Далі, як було вище сказано, з функцій gradientnuj_metod_snar2 та порн системи (1) утворюємо нову функцію, яка приймає насутпний вигляд: gradientnuj_metod_snar4. Виходячи з того, що дана функція завжди є додатною, то для неї знайдеться деяка точка Розв'язок системи нелінійних рівнянь, така що gradientnuj_metod_snar6. Отже, якщо тим чи іншим способом вдається отримати точку, яка мінінізує функцію gradientnuj_metod_snar7 і якщо при цьому виявиться, що gradientnuj_metod_snar8, то виходячи з того, що

gradientnuj_metod_snar9

точка Розв'язок системи нелінійних рівнянь – являтиметься шуканим розв’язком системи (1).

Послідосність точок gradientnuj_metod_snar101, які збігаються до точки Розв'язок системи нелінійних рівнянь (точка мінімуму функції gradientnuj_metod_snar7) за методом градієнтного спуску зазвичай отримують використовуючи наступну формулу:

gradientnuj_metod_snar15

де gradientnuj_metod_snar12, gradientnuj_metod_snar13вектор антиградієнта, який вказує напрямок найшвидшого спадання функції і gradientnuj_metod_snar17 – параметр, який характеризує довжину кроку мінімізації, тобто кроку, при якому значення функції gradientnuj_metod_snar16 буде найменшим серед усіх попередніх значень. Якщо вийявиться, що на деякому кроці значення функції не змінилось, або навіть зросло, то необхідно зменшити значення параметра gradientnuj_metod_snar141 (gradientnuj_metod_snar20) після чого, процес мінімізації функції продовжується (більш детальна інформація про методом градієнтного спуску міститься за посиланням Мінімізація функції декількох змінних використовуючи метод градієнтного спуску).

Блок-схема програмної реалізації методу градієнтного спуску для розв’язку СНР:

gradientnuj_metod_snar211

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *

*