Значения стандартных функций (например, ex) вычисляются путем аппроксимации бесконечного ряда Тейлора конечной суммой его первых элементов:
ex≈1+x+x22!+...+xnn!.
Ошибка, которое дает такое приближение, называется ошибкой усечения (ошибкой метода). Одной из важных задач в численных методах является оценка величины ошибки усечения, для этого разработан соответствующей математический инструментарий. Например, для приближения ex имеем:
|ex-(1+x+x22!+...+xnn!)|≤maxt∈[0,x]et(n+1)!|x|n+1.
Например, если мы хотим вычислить e1/2 и гарантировать ошибку усечения не выше 10-4:
maxt∈[0,1/2]et(n+1)!|12|n+1≤e1/2(n+1)!2n+1≤2-n(n+1)!≤10-4,
Откуда получаем n=5.
Второй тип ошибки, именуемой ошибкой округления, вызван ограниченной точностью, с которой действительные числа могут быть представлены в компьютере. Действительные числа представляются как ±0.b1b2...bp⋅2N, где bi∈{0,1} – разряд числа.
Точность представления числа с плавающей точкой зависит от количества значащих цифр p в представлении. Большинство компьютеров позволяют использовать два или три уровня точности: одинарную точность (6-7 значащих десятичных цифр), двойную точность (14-15 значащих десятичных цифр) и расширенную точность (18-19 значащих десятичных цифр).
Как и в случае любого типа приближений, важно различать абсолютную
ошибку и относительную ошибку представления
числа α∗ его приближением α:
Абсолютная ошибка=|α-α∗|
Относительная ошибка=|α-α∗||α∗|
Относительная ошибка не определена при α∗=0.
Очень большие и очень маленькие числа не могут быть представлены в арифметике с плавающей точкой из-за явлений, называющихся соответственно переполнением (overflow) и исчезновение порядка (underflow).
Иногда таких проблем можно избежать, просто внеся небольшие изменения в порядок вычисления выражения, заменяя выражение эквивалентным или вычисляя логарифм выражения вместо его значения.
Кроме неточностей представления чисел арифметические операции, выполняемые компьютером, также не всегда точны. В частности, вычитание двух близких чисел с плавающей точкой может привести к резкому росту относительной ошибки. Это явление носит название потери значащих разрядов. Если разность с пониженной точностью будет использована в качестве делителя, то эта ошибка будет распространяться и будет получен неверный ответ.
Рассмотрим уравнение x2-105х+1=0.
Его истинными корнями до одиннадцатой значащей цифры являются
x∗1=99999.999990 и x∗2=0.000010000000001.
Если мы выполним все вычисления с
использованием одинарной точности (7 значащих цифр), то получим
D=0.1000000⋅1011,
√D=0.1000000⋅106,
x1=0.1000000⋅106, x2=0.0000000.
В то время как относительная ошибка приближения x1 к x∗1 очень мала (<10-10), для второго корня она составляет 100%.
Многие численные алгоритмы выполняют для типичных входных данных тысячи или даже миллионы арифметических операций, и распространение ошибок округления в них становится основным вопросом как с теоретической, так и с практической точек зрения. Для некоторых алгоритмов распространение ошибок округления идет с нарастанием. Это крайне нежелательное свойство численного алгоритма называется нестабильностью.
Некоторые задачи демонстрируют настолько высокую степень чувствительности к изменениям входных данных, что невозможно разработать стабильный алгоритм для их решения. Такие задачи называются плохо обусловленными.