Метод поділу проміжку пополам
Н ехай на проміжку [а; b] функція f(х) неперервна і набуває на кінцях проміжку значень різних знаків, тобто f(а)•f(b) < 0. Це означає, що на [а; b] рівняння (1) має принаймні один корінь. Цей корінь можна визначити з наперед заданою точністю методом поділу проміжку пополам.
Суть методу полягає в тому, що проміжок, на якому міститься корінь, поступово звужують, зменшуючи його щоразу вдвоє, поки не досягнуть потрібної точності визначення кореня.
Позначимо лівий кінець проміжку, на якому міститься корінь, буквою u, правий – буквою v і знайдемо середину цього проміжку: х = (u+v)/2. Оскільки (за умовою) f(u)f(v)<0, то f(x)f(a)>0, або f (х) f (а)< 0
Якщо f(x) = 0, то корінь х* = х.
Зрозуміло, що у випадку f(х)f(а)>0 корінь міститься на проміжку [x; v].
У випадку f(х)f(а)<0 корінь міститься на проміжку [u; х]. Якщо довжина проміжку, на якому міститься корінь, не перевищує заданої величини , то це означає, що х* знайдено з точністю до , бо |х - х*| x-u. Якщо заданої точності ще не досягнуто, то, позначивши х через u у випадку f(х) f(а) > 0 або через v у випадку f(х)f(а)<0, знову знаходимо середину проміжку [u; v] і повторюємо обчислення.
Переконатися в тому, що потрібна точність при обчисленні кореня х* уже досягнута, можна й іншим способом. Якщо на деякому проміжку [u; v] функція f(х) диференційовна і 0 < m |f(х)| (у цьому випадку на [u; v] міститься єдиний корінь рівняння f(х) = 0) і якщо
то можна вважати, що х — наближене значення кореня х* з точністю до .
Приклад.
Методом поділу проміжку пополам знайти з точністю до 0,005 корінь рівняння x3+1,76439x2+2,21584x – 3,31344 = 0, що лежить на проміжку [0;1].
Розв’язання.
Як бачимо, проміжок локалізації кореня рівняння нам задано: [0;1], тобто залишилось скласти програму для даної задачі. Оскільки точність наближеного визначення кореня буде визначати момент закінчення циклу, то, очевидно, доцільно скористатись в даному випадку циклом з умовою. Той факт, що проміжок локалізації кореня значно перевищує точність, то наперед можна сказати, що як мінімум один раз тіло циклу буде виконуватись, а отже ми можемо використовувати як цикл з передумовою, так і цикл з післяумовою без будь-яких обмежень. Один з варіантів програми реалізації поставленої задачі може виглядати так:
program Podil;
const e = 0.005;
var a, b, c, d, y1, у2: real;
begin
writeln (’ввести значення кінців проміжка локалізації кореня’);
readln (a, b);
repeat
c:=(a+b)/2;
y1:=a*a*a+1.76439*a*a+2.21584*a – 3.31344;
y2:=c*c*c+1.76439*c*c+2.21584*c – 3.31344;
if y1*y2<0 then b:=c else a:=c;
d:=b-a;
until d >= e;
writeln (‘x*=’,c,’+-e’);
end.
Результатом розв’язку даної задачі буде х*=0,785 0,005;
- Інформація та інформаційні процеси Поняття інформації.
- Одиниці вимірювання інформації.
- Подання інформації та типи комп'ютерів.
- Способи пересилання інформації.
- Будова комп'ютера
- Пристрої введення-виведення інформації.
- Процесор
- Принципи функціонування комп'ютера Фізичні принципи
- Програмний принцип
- Поняття про середовища програмування
- Загальна характеристика мови паскаль
- Поняття інтегрованого середовища
- Команда New
- Команда Open
- Основи алгоритмізації Алгоритми та їх властивості
- Блок-схеми
- Загальна характеристика Паскаль-програми
- Структура Паскаль-програми
- Елементи мови Паскаль
- Прості типи даних
- Стандартні типи даних
- Дійсний тип
- Логічний тип
- Символьний тип
- Конструйовані типи
- Перелічуваний тип
- Оператори надання значень змінним Оператор присвоєння
- Уведення-виведення
- Порядок виконання операцій
- Складений оператор
- Стиль запису програми
- Структури керування
- Структура послідовного виконання
- Структура розгалуження
- Умовний оператор
- Оператор варіанта
- Оператор безумовного переходу
- Структура повторення
- Цикл з параметром
- Цикл з передумовою
- Цикл з післяумовою
- Ітераційні цикли
- Обчислення суми знакозмінного ряду із заданою точністю
- Процедури і функції
- Процедури з параметрами. Параметри-значення
- Одномірні масиви
- Поняття масиву. Одномірний масив та його опис в програмі
- Обчислення скалярного добутку двох векторів
- Знаходження найбільшого (найменшого) значень серед елементів масиву
- Обчислення суми та добутку елементів масиву
- Перетворення масиву по заданому закону
- Впорядкування одномірних масивів
- Впорядкування шляхом вибору
- Впорядкування обмінами
- Впорядкування вставками
- Зливання впорядкованих масивів
- Двомірні масиви Поняття двомірного масиву та його опис у програмі
- Ввід та вивід значень елементів двомірного масиву Ввід значень елементів двомірного масиву
- Вивід значень елементів двомірного масиву a[m,n]
- Рядковий тип (string)
- Комбіновані типи Організація комбінованих типів у Паскалі
- Оператор приєднання
- Множинні типи Організація множин
- Файлові типи Організація файлів
- Підготовчі та завершальні операції
- Операції уведення-виведення
- Стандартні файли input і output
- Модулі Модуль і його структура
- Стандартні модулі
- Наближене знаходження коренів рівнянь Дослідження рівняння. Відокремлення коренів
- Метод поділу проміжку пополам
- Метод хорд
- Метод дотичних
- Чисельне інтегрування
- Квадратурні формули прямокутників
- Загальні формули прямокутників
- Квадратурна формула трапецій
- Практичні оцінки точності квадратурних формул. Вибір кроку інтегрування
- Список літератури