Анализ ошибок вычисления плоских вращений с плавающей запятой
20. Хотя существует значительное число методов, основанных на унитарных преобразованиях, имеется несколько основных вычислительных этапов, которые встречаются неоднократно, и в следующих небольших параграфах мы дадим анализ ошибок таких вычислений. Начнем с плоских вращений в стандартной арифметике с плавающей запятой, так как они, вероятно, самые простые. Мы ограничимся вещественным случаем; при этом рассматриваемые матрицы ортогональны.
В большинстве алгорифмов преобразование одного шага определяется следующим образом.
Имеем вектор х (обычно столбец или строка соответствующей преобразуемой матрицы) и хотим определить вращение
в плоскости
так, чтобы
Если мы напишем
то компоненты
являются стандартными числами с плавающей запятой. Ссылаясь на гл. 1, § 43, мы видим, что точное вращение, определенное алгорифмом для вектора таково, что
где
Если
мы берем
независимо от того, равно ли
нулю или нет.
Назовем матрицу, определенную уравнениями (20.2),
хотя в точном соответствии с предыдущими параграфами ее следовало бы назвать
так как это точная матрица, определенная алгорифмом для текущих значений вычисленных элементов. Но так как матрица, которая должна
была бы быть получена точным вычислением, никогда не входит в наше рассмотрение, мы опустим штрих в интересах более простого обозначения.
На практике мы получаем матрицу
с элементами с и
на месте с и
где
Вычисление с и
осуществляется по шагам:
Если
мы берем
так что в этом случае
Для того чтобы проиллюстрировать применение нашего метода анализа плавающей запятой, рассмотрим (20.4) подробно. В дальнейших примерах, которые так же просты, как этот, дадим лишь окончательный результат. Для того чтобы получить как можно более точную оценку, вернемся к оценке вида
вместо того чтобы использовать более простую оценку вида
Имеем
где
где
из (10.2).
где
Комбинируя} (i), (ii) и (iii), получаем
Простейшие вычисления показывают, что
где множитель 3,003 максимально возможный. Вычисленные с и
следовательно, имеют небольшую относительную ошибку. Должно быть подчеркнуто однако, что использование вычислений с плавающей запятой не всегда гарантирует результаты, имеющие малую относительную ошибку, даже когда вычисления так же просты, как те, которые мы только что анализировали (гл. 5, § 12). Мы можем написать