Розв'язок системи нелінійних рівнянь за методом градієнтного спуску

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

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

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

Далі, як було вище сказано, з функцій 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

Матеріал був корисним, поділись в соціальних мережах:

Якщо тобі сподобалась дана тема, залиш свій коментар