"Информатика (углублённый уровень)", Калинин И.А., Самылкина Н.Н.
Численные методы позволяют находить приближённые решения задач, когда точной формулы нет или вычисления по ней слишком сложны. Компьютер выполняет конечное число арифметических действий, поэтому результат зависит от точности представления чисел и округлений. Чтобы оценить его надёжность, используют абсолютную и относительную погрешности. Для поиска корня уравнения можно последовательно уточнять отрезок, деля его пополам; остановку вычислений связывают с заданной точностью.
Текст подготовлен нейронной сетью по теме параграфа и не заменяет учебник — важные факты и формулировки сверяйте с ним.
Численный метод — способ получить приближённое решение задачи с помощью конечного числа арифметических действий. Он полезен, когда точная формула не найдена или её неудобно применять. Метод превращает задачу в понятную последовательность вычислений, которую можно поручить компьютеру.
Приближённое значение — результат вычислений, близкий к точному значению, но обычно отличающийся от него. Например, число 1,41 приближённо представляет √2. Такая запись удобна для расчётов, но по ней нельзя заключать, что точное значение равно 1,41.
Абсолютная погрешность — модуль разности между приближённым и точным значениями. Если точное значение неизвестно, вместо неё используют оценку погрешности. Она показывает, насколько результат ошибается в тех же единицах измерения, что и сама величина.
Относительная погрешность — отношение абсолютной погрешности к модулю точного или приближённого значения. Она показывает ошибку относительно масштаба результата: одна и та же абсолютная ошибка может быть небольшой для крупного числа и существенной для малого. Поэтому относительная оценка помогает сравнивать точность результатов разного размера.
Точные формулы существуют не для всех задач: например, уравнение может не иметь решения, выражаемого через знакомые функции. Даже если формула есть, вычисление может потребовать слишком много действий или быть неудобным для компьютера. Численный метод заменяет поиск точного ответа повторяющимися простыми шагами. В результате получают приближение, а не обещание точного решения.
Компьютер не хранит большинство вещественных чисел бесконечно точно: для записи выделено ограниченное количество разрядов. Поэтому число округляется уже при сохранении, а новые округления возникают в ходе вычислений. Ошибка на одном шаге может перейти в следующий и повлиять на итог, особенно если многократно выполнять операции или вычитать близкие числа. Значит, много цифр на экране само по себе не доказывает, что ответ точен.
Требуемую точность задают заранее, например числом ε: допустимая ошибка не должна превышать ε. После вычислений оценивают погрешность и сравнивают оценку с этим пределом. Если точное решение неизвестно, используют свойства метода: при делении отрезка пополам ширина отрезка, содержащего корень, даёт оценку его возможного положения. Так можно решить, достаточно ли близко приближение, не зная точного ответа.
Для поиска корня уравнения f(x) = 0 сначала выбирают отрезок [a; b], на концах которого значения функции имеют разные знаки. Если функция непрерывна, значит, при переходе от одного конца к другому она проходит через ноль. Затем находят середину m = (a + b)/2 и проверяют знак f(m). Оставляют ту половину, у которой на концах знаки различаются; корень остаётся внутри, а длина возможного поиска уменьшается вдвое.
Итерация — один повторяющийся шаг вычислительного процесса, который уточняет текущее приближение. Без условия остановки алгоритм может продолжать работу, даже когда нужная точность уже достигнута, или не завершиться вовсе. Поэтому останавливаются, например, когда ширина отрезка стала не больше заданного ε, и дополнительно ограничивают число шагов. Для других методов условие может проверять изменение приближения между итерациями, но его тоже связывают с требуемой точностью.
| Характеристика | Деление отрезка пополам | Итерационное уточнение |
|---|---|---|
| Исходные данные | Отрезок [a; b] и значения функции разных знаков на концах | Начальное приближение и правило его пересчёта |
| Как получают новое приближение | Берут середину отрезка и оставляют половину со сменой знака | Подставляют текущее значение в формулу следующего шага |
| Условие остановки | Ширина отрезка стала не больше ε | Изменение приближения или оценка ошибки не больше ε |
| Что контролирует надёжность результата | Смена знака на концах и сохранение корня внутри отрезка | Проверка условия сходимости и оценка ошибки |
| Основное ограничение | Нужна смена знака; сужение отрезка может быть медленным | Результат зависит от выбора начального приближения и правила |
Таблица помогает выбрать способ не только по скорости, но и по тому, какие исходные данные и проверки он требует. Деление пополам особенно удобно, когда удаётся найти отрезок со сменой знака. Для любого итерационного метода заранее уточняют, как оценивать ошибку и почему его шаги должны вести к решению.
Условие. Округлить число 3,14159 до сотых и указать ожидаемую точность. После сотых стоит цифра 1, поэтому цифра сотых не увеличивается. Для обычного округления максимальная ошибка результата при таком разряде не превышает половины единицы последнего оставленного разряда.
Ответ: 3,14; ожидаемая абсолютная погрешность округления не превышает 0,005.
Условие. Найти приближённое решение x² − 2 = 0 на отрезке [1; 2] с точностью 0,1. Обозначим f(x) = x² − 2. На концах f(1) = −1, f(2) = 2, значит, знаки разные и можно сохранять половину, где смена знака остаётся.
Ответ: корень находится в отрезке [1,375; 1,4375]; в качестве приближения можно взять середину 1,40625, то есть примерно 1,4 с точностью 0,1.
Условие. Составить алгоритм поиска корня на заданном отрезке с точностью ε и проверить его для уравнения x² − 2 = 0 на [1; 2]. Сначала алгоритм должен проверить, что на концах действительно есть смена знака: без неё нельзя гарантировать, что корень находится внутри. Затем он будет сужать отрезок, пока его ширина больше ε.
При проверке для f(x) = x² − 2, [1; 2] и ε = 0,1 алгоритм проходит те же шаги, что и в предыдущем примере. Полученный отрезок [1,375; 1,4375] уже удовлетворяет условию остановки, а его середина равна 1,40625. Ответ: алгоритм возвращает приближение 1,40625 и сообщает об ошибке исходных данных, если смены знака нет.
Считать приближённое значение точным — значит забыть, что вычисления выполняются с ограниченным числом разрядов. Это часто происходит, когда на экране показано много цифр и результат выглядит убедительно. Проверьте, указана ли оценка погрешности или условие достижения заданной точности. Если их нет, количество отображаемых знаков ещё не доказывает точность.
Путать абсолютную и относительную погрешности легко, потому что обе характеризуют ошибку результата. Абсолютная измеряется в единицах самой величины, а относительная сопоставляет ошибку с масштабом значения. Чтобы проверить себя, спросите: можно ли выразить полученную величину в метрах, секундах или других единицах? Если да, это абсолютная погрешность; относительная обычно безразмерна.
Применять деление отрезка пополам без смены знака на концах — значит использовать метод без его ключевой гарантии. Такая ошибка возникает, когда сразу начинают вычислять середины и забывают проверить исходные значения функции. До первого шага вычислите f(a) и f(b): при непрерывной функции разные знаки гарантируют наличие корня внутри. Если знаки одинаковы, выберите другой отрезок или метод.
Задавать остановку только числом итераций рискованно: выбранного числа может не хватить для требуемой точности или, наоборот, окажется намного больше необходимого. Так поступают, когда проще ограничить цикл, чем оценить ошибку. Проверяйте, связано ли условие остановки с ε, например с шириной текущего отрезка. Ограничение числа шагов полезно как дополнительная защита, но не заменяет проверку точности.
Чтобы применять численные методы, нужно знать, как компьютер представляет числа, как их округляют и как выполняют арифметические операции. Это помогает понимать, откуда берётся погрешность и как она меняется при вычислениях. Для записи метода в виде программы нужны условия и циклы: условие выбирает нужную часть отрезка, а цикл повторяет уточнение.
Численные методы используют при моделировании процессов и обработке экспериментальных данных, когда измерения сами по себе приближённые. Они также помогают решать уравнения, для которых нет удобного точного решения. Поэтому оценка погрешности нужна не отдельно от вычислений, а для понимания того, можно ли доверять полученному результату.
Зачем нужны численные методы, если существуют формулы?
Не для каждой задачи удаётся получить удобную точную формулу, а иногда вычислять по ней слишком сложно. Численный метод заменяет это конечной последовательностью вычислений и даёт приближённый результат с контролируемой точностью.
Чем абсолютная погрешность отличается от относительной?
Абсолютная погрешность — это величина ошибки в единицах результата. Относительная показывает, насколько велика эта ошибка по сравнению с самим результатом, поэтому помогает оценить точность при разных масштабах величин.
Как понять, с какой точностью получен результат?
Нужно оценить погрешность и сравнить её с требуемой точностью. При поиске корня методом деления пополам ширина оставшегося отрезка даёт оценку того, насколько близко находится корень к выбранному приближению.
Почему для деления отрезка пополам проверяют знаки на концах?
Если функция непрерывна и на концах отрезка имеет разные знаки, между ними есть хотя бы один корень. Тогда можно выбрать половину, на концах которой знаки по-прежнему различаются, и сохранить отрезок с корнем.
Как выбрать условие остановки вычислений?
Условие должно гарантировать, что достигнута требуемая точность: например, ширина отрезка стала не больше ε. Дополнительно задают максимальное число шагов, чтобы алгоритм завершился даже при ошибке или неподходящих исходных данных.
§ 21. Численные методы