На Горох
Информатика, 9 класс

§ 28. Численные методы

"Информатика", Поляков К.Ю., Еремин Е.А.

Объяснение темы В оглавлении: § 28. Численные методы

Кратко о теме

Численные методы помогают находить приближённые ответы, когда точное решение уравнения получить трудно или нельзя. Один из таких способов — метод половинного деления: он сужает отрезок, на котором находится корень, вдвое на каждом шаге. Чтобы результат был надёжным, проверяют знаки функции на концах отрезка и заранее задают допустимую погрешность. В программе повторяют вычисления до тех пор, пока отрезок не станет достаточно коротким.

Объяснение темы

Текст подготовлен нейронной сетью по теме параграфа и не заменяет учебник — важные факты и формулировки сверяйте с ним.

Определения и обозначения

Численный метод — способ получить приближённый результат вычисления с помощью последовательности арифметических операций. Вместо готовой формулы выполняют ряд понятных шагов, например многократно делят отрезок пополам. Такой способ нужен, когда точное решение найти трудно или не удаётся.

Численное решение уравнения — приближённое значение его корня, найденное с заданной точностью. Корень — это такое значение переменной, при котором левая часть уравнения обращается в ноль. Приближение позволяет работать с ответом, даже если корень нельзя удобно записать точной формулой.

Погрешность — отличие приближённого результата от точного. Абсолютная погрешность равна модулю разности между точным значением и приближением: |x − x₀|. Точность задаёт, насколько малой должна быть эта погрешность: например, точность 0,1 означает допустимое отклонение не больше 0,1.

Метод половинного деления — способ приближённого поиска корня на отрезке, при котором выбирают половину со сменой знака функции. На каждом шаге отрезок с корнем становится вдвое короче. Поэтому этот метод позволяет последовательно уточнять ответ и контролировать его точность.

Как это устроено

Точное решение удаётся получить не для каждого уравнения: иногда подходящей формулы нет или её применение слишком сложно. Численный метод заменяет поиск точного ответа повторяющимися вычислениями, которые можно поручить компьютеру. Результат получается приближённым, потому что процесс останавливают после достижения заданного уровня точности, а не продолжают бесконечно.

Точность задают до начала вычислений, например ε = 0,01. В методе половинного деления удобно следить за длиной отрезка: если b − a ≤ ε, то его середина уже даёт ответ с достаточной точностью. Чем короче отрезок, тем ближе любая его точка к корню, который внутри него заключён. Если оценивают погрешность именно середины, она не превышает половины длины отрезка.

Метод используют, когда значения функции на концах отрезка имеют разные знаки: f(a) · f(b) < 0. Если функция непрерывна, при переходе от отрицательного значения к положительному она должна пройти через ноль, значит, внутри есть корень. Одна только смена знака не показывает точное положение корня, но позволяет сохранить отрезок, в котором он находится. Непрерывность функции на отрезке — важное условие этого вывода.

Сначала вычисляют середину m = (a + b) / 2 и находят f(m). Если f(m) имеет тот же знак, что f(a), корень сохраняется на отрезке [m; b]; иначе оставляют [a; m]. Так выбирают половину, на концах которой по-прежнему разные знаки. После выбора границ вычисления повторяют уже для нового, более короткого отрезка.

Одинаковые действия удобно записать в цикле программы: на каждом шаге вычислить середину, проверить знак функции и обновить одну из границ. У цикла должно быть условие завершения, например b − a > ε: пока оно истинно, поиск продолжается. Когда длина отрезка станет не больше ε, цикл остановится, а программа выведет середину и число шагов. Перед циклом нужно проверить начальный отрезок: если на его концах нет смены знака, этот метод для него не подходит.

Сравнение способов получения численного результата

ХарактеристикаТочный аналитический способМетод половинного деления
Что получаютТочное выражение или точное значение корняПриближённое значение корня
Когда применимКогда уравнение удаётся решить с помощью известных формул и преобразованийКогда на отрезке есть смена знака непрерывной функции
Какие исходные данные нужныУравнение и подходящие аналитические приёмыФункция, границы отрезка и заданная точность
Как контролируют точностьПроверяют точное равенство или преобразованияСледят за длиной отрезка и заданной погрешностью
Основное ограничениеНе для всякого уравнения удаётся получить удобную точную формулуНужны непрерывность и смена знака на концах отрезка

Таблица помогает выбрать подход: если точное решение получить трудно, можно проверить, подходит ли уравнение для метода половинного деления. Для этого нужны функция и отрезок со сменой знака на концах. Затем точность численного ответа сравнивают с требованиями задачи.

Разбор задач

Задача 1. Найти с точностью до 0,1 корень уравнения x² − 2 = 0 на отрезке [1; 2] методом половинного деления.

  1. Обозначим f(x) = x² − 2. На концах отрезка f(1) = −1, f(2) = 2, значит, знаки разные и поиск можно начинать.
  2. Середина 1,5: f(1,5) = 0,25, поэтому оставляем [1; 1,5]. Следующие середины 1,25 и 1,375 дают отрицательные значения, значит, оставляем [1,25; 1,5], затем [1,375; 1,5].
  3. Середина 1,4375 даёт положительное значение, поэтому новый отрезок [1,375; 1,4375] имеет длину 0,0625, что меньше 0,1. Его середина равна 1,40625.

Ответ: корень приближённо равен 1,4 с точностью до 0,1.

Задача 2. Найти с точностью до 0,01 корень уравнения x³ − x − 1 = 0 на [1; 2] и записать приближения в таблицу. В столбце «середина» указана проверяемая точка, а в столбце «новый отрезок» — часть, где остаётся смена знака.

ШагСерединаНовый отрезок
11,5[1; 1,5]
21,25[1,25; 1,5]
31,375[1,25; 1,375]
41,3125[1,3125; 1,375]
51,34375[1,3125; 1,34375]
61,328125[1,3125; 1,328125]
71,3203125[1,3203125; 1,328125]
  1. Проверяем начало: f(1) = −1, f(2) = 5, знаки разные.
  2. На каждом шаге вычисляем f в середине и оставляем половину со сменой знака. После седьмого шага длина отрезка равна 0,0078125, то есть меньше 0,01.
  3. Берём середину оставшегося отрезка: (1,3203125 + 1,328125) / 2 = 1,32421875.

Ответ: корень приближённо равен 1,324 (или 1,32 с точностью до сотых).

Задача 3. Составить программу, которая получает границы отрезка и точность ε, ищет корень f(x) = 0 методом половинного деления и сообщает число шагов. Для примера возьмём f(x) = x³ − x − 1; в программе функцию можно заменить на нужную.

  1. Считать a, b и ε. Проверить, что ε > 0, a < b и f(a) · f(b) < 0. Если проверка не пройдена, сообщить, что начальный отрезок не подходит, и завершить программу.
  2. Задать счётчик шагов n = 0. Пока b − a > ε, вычислять m = (a + b) / 2; если f(a) · f(m) < 0, присвоить b = m, иначе a = m. После каждого такого действия увеличивать n на 1.
  3. Когда цикл завершится, вывести середину (a + b) / 2 и n. Условие b − a > ε гарантирует, что цикл остановится при достижении точности.

Ответ: алгоритм выдаёт приближённый корень и число шагов, а неподходящий начальный отрезок отклоняет до начала поиска.

Типичные ошибки

Считать, что корень есть на любом выбранном отрезке. Так думают, потому что при поиске обращают внимание только на само уравнение. Но без смены знака на концах отрезка метод не подтверждает, что внутри есть корень. Перед началом вычислений проверьте значения f(a) и f(b); для непрерывной функции их знаки должны различаться.

Выбирать половину отрезка наугад. Иногда кажется, что достаточно просто сохранить половину, которая выглядит подходящей. Однако корень можно случайно отбросить, если не сравнить знаки функции. После вычисления середины проверьте, на какой половине значения на концах имеют разные знаки, и оставьте именно её.

Путать точность с числом шагов. Число вроде 0,01 задаёт допустимую погрешность, а не количество повторений. Нужное число шагов зависит также от длины начального отрезка: длинный отрезок обычно приходится делить больше раз. Проверьте себя по условию остановки: вычисления заканчиваются, когда длина отрезка стала не больше ε.

Задать условие цикла, которое не станет ложным. Ошибка возникает, если условие не связано с уменьшением отрезка или достижением нужной точности. Тогда программа может выполнять шаги бесконечно. Проверьте, что при каждом повторении границы обновляются, длина отрезка уменьшается, а условие, например b − a > ε, в итоге становится ложным.

Связь с другими темами

Для метода нужно уметь вычислять значения функции, сравнивать числа и понимать, что такое отрезок числовой прямой. Эти знания помогают проверить знаки на границах и выбрать часть отрезка после каждого шага. При программировании метод связывается с циклами, условными операторами и счётчиками. Он пригодится для поиска приближённых решений уравнений и в моделировании процессов, где точный расчёт затруднён.

Что запомнить

  • Численный метод даёт приближённый, а не обязательно точный ответ.
  • Точность вычислений нужно задать заранее.
  • Метод половинного деления применяют на отрезке, где значения функции на концах имеют разные знаки.
  • На каждом шаге метода отрезок с корнем становится вдвое короче.
  • Остановка вычислений должна быть задана условием в программе.
  • Чем меньше требуемая погрешность, тем больше шагов может понадобиться.

Частые вопросы по теме

Почему не всегда можно найти точное решение уравнения?

Для некоторых уравнений нет удобной формулы, которая выражает корень через известные числа и действия. Даже если формула существует, её вычисление может быть слишком сложным. Тогда используют численный метод и получают ответ с заранее выбранной точностью.

Как понять, что корень находится на выбранном отрезке?

Для непрерывной функции достаточно проверить, что на концах отрезка её значения имеют разные знаки: f(a) · f(b) < 0. Тогда между концами есть хотя бы один корень. Если знаки одинаковы, метод половинного деления применять нельзя без дополнительных оснований.

Какую точность задавать в программе?

Точность выбирают по задаче: например, 0,1 означает, что допустимое отклонение результата не должно превышать одной десятой. В методе половинного деления удобно остановиться, когда длина текущего отрезка не больше заданной точности. Чем меньше это число, тем точнее ответ и тем больше шагов может потребоваться.

Почему метод называется методом половинного деления?

На каждом шаге текущий отрезок делят на две равные части и проверяют значение функции в середине. Затем оставляют половину, в которой сохраняется смена знака на концах. Поэтому длина отрезка с корнем каждый раз уменьшается вдвое.

Что произойдёт, если не задать условие остановки цикла?

Цикл может выполняться бесконечно, потому что программе не будет известно, когда достаточно точности. В результате программа не выдаст ответ и продолжит вычисления. Нужно задать условие, которое станет истинным при достижении требуемой точности.

Спросить по теме параграфа

§ 28. Численные методы

Эта же тема в других учебниках

Учебник

Оглавление →
Предмет
Информатика
Класс
9 класс
Учебник
"Информатика", Поляков К.Ю., Еремин Е.А.