Чувствительность численного решения к погрешности исходных данных
Рассмотрим примеры чрезмерной чувствительности.
Пример 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 в правой части одного уравнения, получим возмущенную систему:
с единственным решением ,
.