Анализ ошибок вычисления матрицы отражения
39. Предположим теперь, что х имеет компоненты с плавающей запятой и используем
вычисление, чтобы получить матрицу
Мы хотим найти оценку для
где
-точная матрица, соответствующая данному х. Так как для целей данного вычисления можно рассматривать х как точный вектор, то мы опустим черточки над его компонентами.
В уравнениях § 38 есть свобода в выборе знака. Мы найдем, что для численной устойчивости правильный выбор таков, что
так что никакое уничтожение знаков при вычислении
не имеет места. Итак, если
положительно, берем
В предположении, что
должно быть положительно, не потеряно никакой общности; при условии, что мы берем устойчивый выбор знака, оценки ошибки не зависят от знака х.
Этапы вычисления состоят в следующем.
(i) Вычисляем величину а, определенную равенством
причем сохраняем в а
-разрядную мантиссу, так как она требуется на этапах (ii) и (iii). Итак,
и заведомо из (9.4) и (9.5) имеем
Поэтому
(ii) По а вычисляем
где
с учетом (10.2). Следовательно,
где
(iii) Вычисляем
где
причем заведомо из (9.4) и (9.5)
В этом вычислении
большая часть накопления скалярного произведения была сделана в
Объединяя эти результаты и помня, что
положительно, имеем
Теперь, если мы запишем
то будем иметь
Так как
положительны и
то это дает
Опять важен выбор знака; если
отрицательно, то мы должны взять
чтобы быть уверенными в малой относительной ошибке. Поэтому окончательно
(iv) Наконец, вычисляем
. Лишь один первый элемент нуждается в вычислении, и мы имеем
Наш выбор знака также гарантирует здесь малую относительную ошибку поэтому
Мы можем написать
где
и, следовательно,
40. Матрицу
выгодно оставить в факторизованной форме
так как часто такое представление будет самым удобным для работы. Никакие дальнейшие ошибки округления не появляются до тех пор, пока мы не попытаемся использовать
как множитель, а это требует отдельного анализа. Из (40.1)
Так как
то простое вычисление, использующее (39.17), (39.23) и (39.24), показывает, что
Отметим, что оценка не зависит от
так как
эквивалентна
плоским вращениям, весьма хороша.
Для некоторых приложений удобно преобразовать
и вычислить вектор
определенный равенством
так что
Из
и, следовательно,
где
Для
вычисленной таким образом, мы имеем
Так как
для любых векторов
то мы можем заменить
-норму евклидовой в приведенных выше оценках.
Возвращаясь к случаю, когда изменяются лишь последние
компонент, мы получим матрицу вида
где
порядка
. Напомним, однако, что наша оценка ошибки не зависит от