Реалізація методу Ньютона для розв’язування нелінійних рівнянь за допомогою мови Plus

У випадку необхідності за допомогою мови Plus можна реалізовувати чисельні методи. Як приклад, розглянемо метод Ньютона для розв’язування нелінійних рівнянь.

Приклад. Знайти наближене значення кореня рівняння

х 3 – 3 х 2 + 2 х – 1 = 0

з початковим наближенням х 0 = 2.

Кожне наступне наближене значення кореня нелінійного рівняння можна знайти за наступними формулами:

xn+ 1 = xn – ∆xn, ∆xn = f (xn) / f ' (xn),

де f (xn), f ' (xn) – значення функції та її похідної для значення аргументу xn.

Коренем нелінійного рівняння буде таке значення xn, для якого |∆ xn | < e, де e – задана точність. Модель реалізації алгоритму задачі зображено на рис. 8.1.

Фактичні аргументи виклику процедури Metod_Njutona є простими. Однак кожен із цих аргументів може бути складним виразом, який обчислюється одночасно з викликом процедури. Результат обчислення кожного аргументу використовується замість аргументу, який заявлений у визначенні процедури. Кінцеве значення кожного аргументу визначається відповідно до його позиції.

Рис. 8.1. Модель методу Ньютона для розв’язування нелінійних рівнянь

Локальні змінні в Plus-процедурах автоматично не ініціалізуються. Тому вони визначаються до виконання дій з ними. Якщо у прикладі (рис. 8.1) не ініціалізувати, наприклад, локальну змінну e_ конкретним значенням, здійсниться зупинка через помилку “Operand B. Недопустиме значення. Елемент даних не був ініціалізованим”.

Результати моделювання наведені на рис. 8.2.

З отриманих результатів видно, що значення кореня нелінійного рівняння х3 – 3х2 + 2х – 1 = 0 дорівнює 2,324718. В цьому можна переконатися підставивши це значення у вихідне рівняння.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: