"Информатика (базовый уровень)", Гейн А.Г., Юнерман Н.А.
Метод половинного деления позволяет приближённо находить корень уравнения f(x) = 0. Для этого выбирают отрезок, на концах которого функция имеет разные знаки, и последовательно делят его пополам. После каждой проверки оставляют половину, где сохраняется смена знака. Так отрезок с корнем становится всё короче, пока полученная точность не окажется достаточной.
Текст подготовлен нейронной сетью по теме параграфа и не заменяет учебник — важные факты и формулировки сверяйте с ним.
Метод половинного деления — способ приближённо найти корень уравнения, последовательно деля пополам отрезок, на котором он заключён. Корнем называют такое значение x, при котором f(x) = 0. Метод нужен, когда точную формулу корня получить трудно или невозможно.
Отрезок изоляции корня — отрезок [a, b], на концах которого функция принимает значения разных знаков. При непрерывности функции это означает, что внутри отрезка есть хотя бы один корень. Такой отрезок задаёт безопасное начало вычислений.
Середина отрезка — точка c = (a + b) / 2, то есть полусумма его концов. Её используют как новое пробное приближение к корню. Проверка знака f(c) показывает, какую половину можно оставить.
Точность приближения — допустимая погрешность ε, которую заранее задают в условии. Когда рабочий отрезок становится достаточно коротким, вычисления прекращают. Чем меньше ε, тем больше делений обычно требуется.
Уравнение f(x) = 0 рассматривают как задачу поиска нуля функции, потому что для функции удобно проверять значения в выбранных точках. Сначала берут отрезок [a, b] и вычисляют f(a), f(b). Разные знаки нужны для того, чтобы применить свойство непрерывной функции и не искать корень вслепую.
Если функция непрерывна на отрезке, она не может перейти от положительного значения к отрицательному, не приняв между ними нулевое значение. Поэтому из условия f(a) · f(b) < 0 следует существование корня внутри отрезка. Непрерывность здесь обязательна: без неё функция может изменить знак скачком, не проходя через ноль.
После этого находят середину c = (a + b) / 2 и вычисляют f(c). Если f(c) = 0, корень найден точно; обычно получается ненулевое значение. Тогда сравнивают знаки f(c) с f(a) и f(b), чтобы выбрать половину, где снова есть смена знака.
На каждом повторении корень остаётся внутри выбранного отрезка, поскольку новый отрезок также имеет на концах значения разных знаков. Его длина уменьшается вдвое, поэтому границы корня быстро сближаются. Это делает метод надёжным, хотя для очень высокой точности может потребоваться много шагов.
Вычисления прекращают, когда длина текущего отрезка не превосходит заданную точность или когда оценка ошибки стала достаточно малой. Если приближением считают середину отрезка, её ошибка не больше половины длины этого отрезка. В ответе нужно указать найденное значение с округлением, соответствующим условию.
| Этап | Действие | Что проверяют или получают |
|---|---|---|
| Выбор начального отрезка | Задают a и b | Есть ли подходящий отрезок изоляции |
| Вычисление значений на концах | Находят f(a) и f(b) | Различаются ли их знаки |
| Нахождение середины | Вычисляют c = (a + b) / 2 и f(c) | Новое приближение и знак функции |
| Выбор новой половины | Оставляют половину со сменой знака | Корень сохраняется внутри отрезка |
| Проверка условия остановки | Сравнивают длину отрезка с ε | Можно ли завершить вычисления |
Таблицу удобно читать сверху вниз: каждый следующий этап использует результат предыдущего. Если условие остановки ещё не выполнено, переходят от выбора новой половины к нахождению следующей середины. При выполнении условия за ответ берут середину последнего отрезка и, при необходимости, сам отрезок.
Задача 1. Найдём корень уравнения x² − 2 = 0 на отрезке [1, 2] с точностью 0,1. Функция f(x) = x² − 2 непрерывна, а f(1) = −1 и f(2) = 2, поэтому корень действительно заключён внутри отрезка.
Ответ: x ≈ 1,4 с точностью 0,1. Настоящий корень √2 ≈ 1,414, и найденное приближение согласуется с этим значением.
Задача 2. Решим x³ − x − 2 = 0 на [1, 2] с точностью 0,01. Здесь f(1) = −2, f(2) = 4, а функция непрерывна, значит, на отрезке есть корень. Будем каждый раз оставлять половину со сменой знака.
Ответ: x ≈ 1,52. На каждом шаге выбиралась именно та половина, где знаки на концах различаются, поэтому корень не был потерян.
Задача 3. Составим алгоритм для заданных f, a, b и ε. Сначала нужно убедиться, что f(a) и f(b) имеют разные знаки, иначе метод нельзя начинать с гарантией корня. Затем цикл будет уменьшать отрезок, пока его длина не станет достаточно малой.
Ответ: алгоритм состоит из проверки начального отрезка, цикла деления пополам и вывода середины. Условный оператор выбирает нужную половину, а цикл обеспечивает повторение до достижения точности.
Пропуск проверки знаков. Иногда сразу начинают делить удобный отрезок, не вычисляя f(a) и f(b). Тогда корень на нём не гарантирован. Перед началом проверьте условие f(a) · f(b) < 0.
Выбор половины только по f(c). Одного знака середины недостаточно: его нужно сравнить со знаком одного из концов. Иначе можно случайно отбросить часть с корнем. Проверяйте смену знаков на новых концах.
Уверенность в единственности корня. Смена знаков гарантирует хотя бы один корень, но не запрещает функции пересекать ось несколько раз. Единственность нужно обосновывать отдельно, например свойствами функции на данном отрезке.
Неверная оценка точности. Длина последнего отрезка показывает ширину области поиска, но середина имеет возможную ошибку не больше половины этой длины. Поэтому сопоставляйте заявленную точность именно с выбранным критерием остановки.
Для метода нужны понятия функции, её нуля и непрерывности, а также умение вычислять значения и сравнивать их знаки. Поэтому он опирается на алгебру и начала математического анализа.
С точки зрения информатики метод связан с алгоритмами, циклами и условными операторами. Повторяющиеся вычисления можно поручить компьютеру, передав ему функцию, концы отрезка и точность.
Идея последовательного уточнения приближения встречается и в других численных методах решения уравнений. Она помогает переходить от грубой оценки к результату, пригодному для практической задачи.
Почему для метода нужен отрезок, на концах которого функция имеет разные знаки?
Если функция непрерывна и её значения на концах отрезка имеют разные знаки, то при переходе от одного конца к другому она обязана принять значение 0. Поэтому внутри отрезка гарантированно есть хотя бы один корень.
Всегда ли на выбранном отрезке находится только один корень?
Нет, смена знаков гарантирует только наличие хотя бы одного корня. На отрезке может быть несколько корней, если функция пересекает ось несколько раз.
Как определить, какую половину отрезка оставить?
Вычисляют значение функции в середине и сравнивают его знак со знаком одного из концов. Оставляют ту половину, на концах которой значения функции имеют разные знаки.
Сколько шагов нужно выполнить для заданной точности?
Если начальная длина отрезка равна b − a, то после n шагов она станет равной (b − a) / 2ⁿ. Число шагов выбирают так, чтобы длина отрезка или половина этой длины не превышала заданную точность.
Что считать ответом: середину последнего отрезка или сам отрезок?
Обычно ответом считают середину последнего отрезка как приближённое значение корня. Сам последний отрезок тоже полезно указать: он показывает, в каких пределах находится настоящий корень.
§ 17. Решение уравнений методом половинного деления