Підготовча частина завершена, тепер можна запускати основну програму обчислення кореня рівняння. Для цього натискаємо на кнопку В«ВирішитиВ». p align="justify"> Над графіком з'являється компонент TLabel, який відображає поточний стан обчислювального процесу. Перший етап обчислення - малювання графіка вихідної функції (Малюнок 4). br/>В
Рисунок 4 - Малювання графіка вихідної функції
Другим етапом є знаходження наближеного значення кореня рівняння (Малюнок 5).
В
Рисунок 5 - Пошук наближеного значення кореня
Далі слід малювання графіків бісектриси і допоміжної функції, перетин яких і буде коренем рівняння (Малюнок 6, 7).
В
Малюнок 6 - Побудова бісектриси
В
Малюнок 7 - Побудова графіка допоміжної функції
Заключним і найголовнішим етапом обчислення є ітеративний процес знаходження перетину графіків бісектриси і допоміжної функції (Малюнок 8).
В
Рисунок 8 - Пошук перетину графіків
Коли точність знайденого кореня досягне необхідної точності програма завершить свою роботу і виведе результат в компонент TLabel, розташований вгорі вікна програми (Малюнок 9).
В
Рисунок 9 - Завершення обчислювального процесу
Як можна помітити, наближене значення кореня підтвердилося програмно і корінь був знайдений з досить великим ступенем точності. Це говорить про успішну роботу програми і, відповідно, правильної реалізації алгоритму обчислення нелінійного рівняння методом простої ітерації. p align="justify"> 6. Застосування програми
Розроблене мною додаток можна використовувати в якості навчального посібника для демонстрації обчислення коренів нелінійних рівнянь ітераційним методом, тому що весь процес обчислення покроково демонструється в програмі з відповідними поясненнями у вигляді опису поточного етапу обчислення.
Додаток
програма послідовний наближення
// Модуль UnitEquation.pasUnitEquation; Chart, Series, Forms, Windows, StdCtrls, SysUtils, Graphics; = class: extended;: extended;: boolean;: TLabel;: TLineSeries;: TLineSeries;: TPointSeries; Func (x: extended): extended; Phi (x: extended): extended; DrawMainFunc; FindApproxTrunc: extended; DrawBisector; DrawFuncPhi; FindCrossing (approxTrunc: extended): extended; DrawVertical (x0: extended): extended; DrawHorizontal ( x0: extended): extended; DrawTrunc; ChangeAxes (leftMin, leftMax, bottomMin, bottomMax: extended); Create (Chart: TChart; labelPodskazka: TLabel); FindResult: extended; Accuracy: extended read fAccuracy write fAccuracy; ToAnimate: boolean read fToAnimate write fToAnimate; Result: extended read fResult;; TEquation.Create (Chart: TChart; l...