Введение

Алгоритм вычисления собственных значений. В численной линейной алгебре QR-алгоритм, или QR-итерация, является алгоритмом для вычисления собственных значений и собственных векторов матрицы. QR-алгоритм был разработан в конце 1950-х годов Джоном Г. Ф. Фрэнсисом и Верой Н. Кублановской, независимо друг от друга. Основная идея заключается в выполнении QR-разложения, представляющего матрицу в виде произведения ортогональной матрицы и верхнетреугольной матрицы, последующем умножении этих факторов в обратном порядке и повторении процесса.

Практический алгоритм QR

Формально, пусть A — вещественная матрица, для которой мы хотим вычислить собственные значения, и пусть A₀ := A. На k-м шаге (начиная с k = 0) мы вычисляем QR-разложение Aₖ = QₖRₖ, где Qₖ — ортогональная матрица (т.е. Qₖᵀ = Qₖ⁻¹) и Rₖ — верхняя треугольная матрица. Затем мы формируем Aₖ₊₁ = RₖQₖ. Обратите внимание, что все Aₖ подобны, и, следовательно, имеют одинаковые собственные значения. Алгоритм численно устойчив, поскольку он оперирует ортогональными преобразованиями подобия. При определенных условиях матрицы Aₖ сходятся к треугольной матрице — форме Шура для A. Собственные значения треугольной матрицы располагаются на диагонали, и задача о собственных значениях решена. При проверке сходимости нецелесообразно требовать точных нулей, но теорема о круге Гершгорина предоставляет оценку погрешности. В этой исходной форме итерации относительно затратны. Это можно смягчить, предварительно приведя матрицу A к верхней форме Гессенберга (что требует арифметических операций с использованием метода, основанного на преобразованиях Хаусхолдера), с помощью конечной последовательности ортогональных преобразований подобия, что в некотором смысле напоминает двустороннее QR-разложение. (Для QR-разложения отражатели Хаусхолдера умножаются только слева, а для случая Гессенберга — как слева, так и справа.) Вычисление QR-разложения верхней матрицы Гессенберга требует арифметических операций. Более того, поскольку форма Гессенберга уже близка к верхней треугольной (у нее только один ненулевой элемент ниже каждой диагонали), использование ее в качестве начальной точки уменьшает количество шагов, необходимых для сходимости QR-алгоритма. Если исходная матрица симметрична, то верхняя матрица Гессенберга также симметрична и, следовательно, трехдиагональна, и все Aₖ также трехдиагональны. Эта процедура требует арифметических операций с использованием метода, основанного на преобразованиях Хаусхолдера. Скорость сходимости зависит от расстояния между собственными значениями, поэтому на практике алгоритм использует сдвиги, явные или неявные, для увеличения этого расстояния и ускорения сходимости. Типичный симметричный QR-алгоритм выделяет каждое собственное значение (а затем уменьшает размер матрицы) всего за одну или две итерации, что делает его эффективным и надежным.

Визуализация

Основной алгоритм QR можно визуализировать на примере положительно определенной симметричной матрицы A. В этом случае A можно представить как эллипс в двух измерениях или эллипсоид в более высоких измерениях. Связь между входными данными алгоритма и одной итерацией можно изобразить, как показано на рисунке 1 (нажмите для просмотра анимации). Обратите внимание, что алгоритм LR изображен рядом с алгоритмом QR. Одна итерация приводит к наклону или "падению" эллипса к оси x. Если большая полуось эллипса параллельна оси x, одна итерация QR не оказывает никакого эффекта. Другая ситуация, когда алгоритм "ничего не делает", – это когда большая полуось параллельна оси y, а не оси x. В этом случае эллипс можно представить как неустойчиво удерживающийся в равновесии, не способный упасть ни в одну сторону. В обоих случаях матрица является диагональной. Ситуация, когда итерация алгоритма "ничего не делает", называется неподвижной точкой. Стратегия, используемая алгоритмом, заключается в итерационном приближении к неподвижной точке. Заметьте, что одна неподвижная точка стабильна, а другая – нестабильна. Если эллипс отклонится от нестабильной неподвижной точки даже на очень небольшое расстояние, одна итерация QR приведет к отклонению эллипса от этой точки, а не к ее приближению. В конечном итоге алгоритм сойдется к другой неподвижной точке, но это потребует значительного времени.

Поиск собственных значений против поиска собственных векторов

Стоит отметить, что нахождение даже одного собственного вектора симметричной матрицы не является вычислимым (в точной вещественной арифметике в соответствии с определениями в вычислительном анализе). Эта трудность возникает всякий раз, когда кратности собственных значений матрицы неизвестны. С другой стороны, той же проблемы не существует при нахождении собственных значений. Собственные значения матрицы всегда вычислимы. Теперь мы обсудим, как эти трудности проявляются в базовом QR-алгоритме. Это иллюстрируется на рисунке 2. Вспомним, что эллипсы представляют собой положительно определенные симметричные матрицы. По мере сближения двух собственных значений входной матрицы, входной эллипс превращается в круг. Круг соответствует кратному единичной матрицы. Почти круг соответствует почти кратному единичной матрицы, собственные значения которой почти равны диагональным элементам матрицы. Следовательно, задача приближенного нахождения собственных значений в этом случае оказывается простой. Но обратите внимание, что происходит с полуосями эллипсов. Итерация QR (или LR) наклоняет полуоси все меньше и меньше по мере того, как входной эллипс приближается к кругу. Собственные векторы могут быть определены только тогда, когда полуоси параллельны осям x и y. Количество итераций, необходимых для достижения почти параллельности, неограниченно возрастает по мере того, как входной эллипс становится все более круглым. Хотя вычисление собственного разложения произвольной симметричной матрицы может быть невозможно, всегда можно возмутить матрицу на произвольно малую величину и вычислить собственное разложение полученной матрицы. В случае, когда матрица изображена как почти круг, ее можно заменить матрицей, изображение которой является идеальным кругом. В этом случае матрица является кратной единичной матрице, и ее собственное разложение выполняется непосредственно. Однако следует учитывать, что полученный собственный базис может значительно отличаться от исходного собственного базиса.

Ускорение: смещение и дефляция

Замедление, когда эллипс становится более круглым, имеет обратную зависимость: оказывается, что когда эллипс становится более вытянутым и менее круглым, вращение эллипса ускоряется. Такое растяжение можно вызвать, заменив матрицу, которую представляет эллипс, на матрицу, где – приблизительно наименьшее собственное значение матрицы . В этом случае отношение двух полуосей эллипса приближается к бесконечности. В более высоких размерностях, такое смещение делает длину наименьшей полуоси эллипсоида малой по сравнению с другими полуосями, что ускоряет сходимость к наименьшему собственному значению, но не ускоряет сходимость к другим собственным значениям. Это становится бесполезным, когда наименьшее собственное значение полностью определено, поэтому матрицу необходимо затем сдуть, что означает просто удаление ее последней строки и столбца. Также необходимо решить проблему с неустойчивой неподвижной точкой. Эвристика смещения часто разрабатывается для решения этой проблемы: практические смещения часто являются разрывными и случайными. Сдвиг Уилкинсона, который хорошо подходит для симметричных матриц, таких как те, которые мы визуализируем, в частности является разрывным.

Неявный алгоритм QR

В современной вычислительной практике алгоритм QR выполняется в неявной форме, что упрощает использование нескольких сдвигов. Предложено изменить его название на алгоритм Фрэнсиса. Голуб и Ван Лоан используют термин "шаг Фрэнсиса QR".

Интерпретация и сближение

Алгоритм QR можно рассматривать как более сложную версию базового итерационного алгоритма нахождения собственных значений, известного как метод степеней. Вспомним, что метод степеней последовательно умножает матрицу A на единичный вектор, нормализуя его после каждой итерации. Этот вектор сходится к собственному вектору, соответствующему наибольшему собственному значению. В отличие от него, алгоритм QR работает с полным базисом векторов, используя QR-разложение для повторной нормализации (и ортогонализации). Для симметричной матрицы A, при достижении сходимости, выполняется равенство AQ = QΛ, где Λ — диагональная матрица собственных значений, к которым сходится A, а Q — произведение всех ортогональных преобразований подобия, необходимых для достижения этой сходимости. Следовательно, столбцы матрицы Q являются собственными векторами.

История

Алгоритму QR предшествовал алгоритм LR, который использует LU-разложение вместо QR-разложения. QR-алгоритм более устойчив, поэтому LR-алгоритм в настоящее время используется редко. Однако он представляет собой важный этап в разработке QR-алгоритма. Алгоритм LR был разработан в начале 1950-х годов Хайнцем Рутисхаузером, который в то время работал научным ассистентом Эдуарда Стифеля в ETH Zurich. Стифель предложил Рутисхаузеру использовать последовательность моментов y0T Ak x0, k = 0, 1, (где x0 и y0 – произвольные векторы) для нахождения собственных значений матрицы A. Рутисхаузер взял алгоритм Александра Эйткена для этой задачи и развил его в алгоритм частного и разности, или qd-алгоритм. Придав вычислениям подходящую форму, он обнаружил, что qd-алгоритм фактически является итерацией Ak = LkUk (LU-разложение), Ak+1 = UkLk, применяемой к тридиагональной матрице, из которой и следует алгоритм LR.

Другие варианты

Один из вариантов QR-алгоритма, алгоритм Голуба — Кахана — Рейнша, начинается с приведения общей матрицы к бидиагональному виду. Этот вариант QR-алгоритма для вычисления сингулярных значений был впервые описан в подпрограмме LAPACK DBDSQR. Она реализует этот итеративный метод с некоторыми модификациями для обработки случая, когда сингулярные значения очень малы. В сочетании с первым шагом, использующим преобразования Хаусхолдера и, при необходимости, QR-разложение, это формирует процедуру DGESVD для вычисления сингулярного разложения. QR-алгоритм также может быть реализован в бесконечномерных пространствах с соответствующими результатами сходимости.