Практический процесс Ланцоша
38. Если процесс Ланцоша проводится на практике, причем используются уравнения то строгая биортогональность обычно быстро утрачивается. Если при образовании векторов или с происходит значительное взаимное уничтожение, то немедленно происходит катастрофическое ухудшение ортогональности. Для того чтобы избежать этого, существенно, чтобы переортогоиализация выполнялась на каждой стадии. Удобная практическая процедура заключается в следующем.
На каждой стадии мы сначала вычисляем вида
Полезно определять два значения независимо для проверки вычислений.
Затем определяются из соотношений
где
Другими словами, переортогонализуется по отношению к — по отношению к Естественно, что это осуществляется последовательно, причем каждая поправка вычитается сразу после того, как она вычислена. Нельзя категорически утверждать, что переортогонализация не дает векторов, которые были бы получены при помощи более точных вычислений, и что она не имеет вредных эффектов.
Заметим, что одинаково важно переортогонализовать как по отношению к с, так и по отношению к Это происходит потому, что необходимость переортогонализации возникает из взаимного уничтожения, а не из-за накопления ошибок округления. Множители могут быть выбраны степенями двух так, чтобы максимальные элементы заключались между 1/2 и 1, так как это не вносит ошибок округления. При использовании вычислений с плавающей запятой эти нормирующие множители могут не иметь значения, но они становятся важными при вычислении собственных векторов полученной трехдиагональной матрицы (см. гл. 5, § 67).
Мы знаем, что теоретически процесс срывается, если на какой-либо стадии Поэтому мы можем ожидать, что вычислительный процесс будет неустойчивым, если мало. (Мы здесь предполагаем, что и с нормированы.) Если все порядка единицы, то можно показать, что для нормированной А (35.5) дает
где это трехдиагональная матрица с элементами
Можно заметить, что мы могли бы заменить на где матрица, образованная и где в верхней форме Хессенберга с малыми элементами вне трехдиагональной секции. Но нет никакого смысла делать это, так как вклад уже учтен членом Точная оценка для зависит от типа использованной арифметики.
Однако если
при некотором то, вообще говоря,
так что обычно мы теряем в точности на знаков больше, чем в случае, когда А преобразуется с использованием устойчивой процедуры.