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

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

Отже, після запуску проекту "метод Брауна" на екрані появиться форма наступного вигляду:

Інтерфейс програми, яка використовуючи метод Брауна знаходить розв'язок системи двох нелінійних рівнянь

Інтерфейс програми, яка використовуючи метод Брауна знаходить розв'язок системи двох нелінійних рівнянь

Читати повністю

Метод Зейделя. Розв'язок СНАР методом Зейделя в середовищі Delphi

Алгоритм методу Зейделя при знаходженні розв'язку системи нелінійних рівнянь практично не відрізняється від алгоритму, який ми використовували для випадку системи лінійних рівнянь. Тобто, на першому кроці здійснюється приведення систему до ітераційного вигляду. Після чого, реалізується ітераційний процес обчислення наближень до розв'язку системи, до тих пір, поки не буде досягнуто заданої точності.

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

Читати повністю

Метод Брауна. Розв'язок СНАР методом Брауна

На відміну від покрокової лінеаризації рівнянь нелінійної системи, яка здійснюється в методі Ньютона, Брауном було запропоновано проводити на кожному ітераційному кроці почергову лінеаризацию рівнянь системи, тобто лінеаризувати в системі спочатку перше рівняння, потім друге і т.д. Після чого, послідовно вирішувати одержувані таким чином рівняння. Для простоти викладу розглянемо даний процес для випадку двох нелінійних рівнянь.

Нехай потрібно знайти рішення системи:

Метод Брауна

і припустимо, що на k-й ітерації ми отримали наближення метод Брауна до розв'язку системи (1). Замінимо перше рівняння системи (1) лінійним, отриманим в результаті розкладу функції двох змінних в ряд Тейлора: метод Брауна. Далі, перетворимо дане рівняння до виду, в якому метод Брауна (позначимо через метод Брауна) виражено через метод Брауна. В результаті отримаємо:

Читати повністю

Розв'язок системи нелінійних алгебраїчних рівнянь використовуючи метод Зейделя

Нехай потрібно знайти розв'язок системи нелінійних алгебраїчних рівнянь (СНАР) виду (1), використовуючи при цьому метод Зейделя.

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

Для застосування даного методу систему (1), аналогічно, як і у методі простої ітерації, за допомогою еквівалентних перетворень необхідно привести до наступного вигляду (один із способів приведення системи (1) до виду (2) можна знайти за посиланням Розв'язок систем нелінійних рівнянь методом ітерації):

metod_zejdelja_snr2

Далі, задавши початкове наближення metod_zejdelja_snr3, реалізується ітераційний процес обчислення наближень до розв'язку системи за наступними формулами:

Читати повністю

Використання методу градієнтного спуску для розв'язку СНР в середовищі програмування Delphi

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

Читати повністю

Розв'язок СЛАР методом обертання засобами Delphi

Розглянемо програмну реалізацію, ще одного методу, який для розв'язку системи лінійних алгебраїчних рівняняь (СЛАР) використовує ідею зведення матриці коефіцієнтів до трикутного вигляду. Як і в методі Гаусса, алгоритм методу обертання складається з прямого і оберненого ходу. Основна мета прямого ходу — приведення системи до трикутного вигляду послідовним обнуленням елементів, які розташовані нижче головної діагоналі. Знаходження невідомих не відрізняється від оберненого ходу методу Гаусса. Більш детально алгоритм методу обертання розглядати не будемо. Його можна знайти за посиланням Розв'язок СЛАР методом обертання. Ми ж приступимо до розгляду delphi-проекту, який реалізує даний алгоритм.

Після запуску проекту на виконання на екрані появиться вікно наступного виду:

Читати повністю

Розв'язок системи лінійних рівнянь використовуючи метод обертань

Метод Гаусса являється не єдиним методом який для розв'язку системи лінійних рівнянь використовує ідею зведення матриці коефіцієнтів до трикутного вигляду. Існує ще два методи, які можна віднести до категорії методів виключення невідомих, а саме метод обертань та метод відображень. Обидва цих методи базуються на представленні матриці qr_rozklad_matruci51 у вигляді добутку ортогональної матриці qr_rozklad_matruci52 та верхньої трикутної матриці qr_rozklad_matruci45. Нагадаємо, що матриця qr_rozklad_matruci52 називається ортогональною, якщо для неї виконується наступна умова: QR розклад матриці або qr_rozklad_matruci2.

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

qr_rozklad_matruci3

Даний метод, як і метод Гаусса, складається з прямого і оберненого ходу.

Читати повністю