Чувствительность численного решения к погрешности исходных данных
Рассмотрим примеры чрезмерной чувствительности.
Пример 1.1 Вещественный корень уравнения
где очень малое положительное число, а натуральное достаточно велико. Тогда естественно заменит нулем и положить . В данном случае абсолютная погрешность составит величину . Много это или мало – судить об этом можно придавая и численные значения. Например, взяв , =10, получим абсолютную погрешность корня , равную 0.1. Относительная погрешность при этом может оказаться сколь угодно большой, если взять сколь угодно малым.
Пример 1.2 Пример Уилкиксона. Определение корней многочлена.
Многочлен имеет 20 хорошо отделимых корней: . Предположим, что только в одном его коэффициенте, а именно при сделана ошибка: вместо в развернутый вид многочлена поставлено число . Полученный при этом так называемый возмущенный многочлен будет иметь следующие корни: , , , , , , , , .
Как видим, весьма малое возмущение (сопоставимое с одинарной машинной точностью проводимых расчетов) всего лишь в одном коэффициенте даже качественно изменило набор корней данного многочлена: половина из них перестали быть действительными.
Пример 1.3 Вычисление определенного интеграла.
Для вычисления интегралов вида
,
где , с помощью метода интегрирования “по частям” легко вывести рекуррентную формулу
; ; . (1.5)
Вычисление значений данного интеграла по рекуррентной формуле (1.5) на различных ЭВМ (несмотря на то, что на некоторых из них велись вычисления с мантиссами более 10 десятичных разрядов) не дал ни одного верного результата, точнее результат не имел ни одной верной цифры! Например, при спектр вычислений значения интеграла лежал в границах . Причина подобного явления – в числовой неустойчивости схемы (1.5). Безупречная в теоретическом плане, она совершенно непригодна с позиции вычислительной математики, поскольку неизбежная погрешность стартового значения при подсчете увеличивается в раз, т.е. катастрофически возрастает.
Если примеры 1,2 указывали на существование неустойчивых задач, то в третьем примере видно проявление неустойчивого метода вычислений. Последним, как правило, есть альтернативы.
Например, можно воспользоваться равенством (1.5), переписав его в виде
. (1.6)
Учитывая, что и , для некоторого фиксированного можно вести счет по формуле (1.6) при , задавшись значением . Так как начальная погрешность на каждом шаге теперь уменьшается в раз, то такой алгоритм будет численно устойчив. Значение при этом может быть определено экспериментально путем подбора.
Пример 1.4 Решение линейной системы.
В данном случае имеем единственное решение , . Допустив абсолютную погрешность в 0.01 в правой части одного уравнения, получим возмущенную систему:
с единственным решением , .