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

Delphi-програма знаходить всі корені нелінійного алгебраїчного рівняння на заданому інтервалі з заданою точністю і використовує для цього алгоритм, який полягає у видалені вже знайдених коренів (теоретична частина по даному методі міститься за посиланням Відшукання всіх дійсних коренів алгебраїчного рівняння шляхом видалення вже знайдених коренів). Візуально, головна форма розглядуваного delphi-проекту не відрізняється від проектів, які реалізують інші чисельні методи рішення даної проблеми, тобто ділиться на дві частини:

  1. Панель інструментів: містить чотири поля типу TEdit, два з яких відповідають за значення кінців проміжоку на якому відшукуються корені рівняння і два що залишилось, відповідають за точність обчислювального процесу та функцію, що міститься в лівій частині розв'язуваного рівняння; дві кнопки типу TButton одна з яких безпосередньо реалізує алгоритми знаходження коренів та друга — видаляє всі введені користувачем значення і готує проект до нового прикладу; один компонент типу TMemo, головним призначенням якого є вивід результату роботи програми.
  2. Область графічного представлення: містить компонент типу TChart, який відображає графік розв'язуваного рівняння і з допомогою якого можна провірити правельність роботи програми.

Після того, як призначення кожного з елементів форми проекту відомо, провіримо його роботу на конкретному прикладі, а саме знайдемо всі корені рівняння на проміжку і в якості критерію закінчення ітераційного процесу, візьмемо число .

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

Знаходження всіх дійсних коренів алгебраїчного рівняння шляхом видалення вже знайдених коренів

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

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

Далі, припустимо, що на другому кроці ми знайшли деякий корінь функції . Цей корінь теж мжна видалити, ввівши нову допоміжну функцію . Відзначимо, що таким чином можна послідовно знайти всі корені заданого рівняння (1).

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