Приведение симметричной матрицы к трехдиагональному виду

Лекция 15

Метод Ланцоша

Метод Ланцоша

18.1. Подпространства Крылова[1]

В рассмотренном выше методе итераций в подпространстве использовалась система векторов. Выбор этих векторов осуществлялся, вообще говоря, произвольно. Т.е. этот выбор никак не зависел от свойств исследуемой матрицы Приведение симметричной матрицы к трехдиагональному виду - student2.ru .

Вспомним также, что использование процедуры Рэлея ‑ Ритца для корректировки системы векторов значительно повысило скорость сходимости метода. Отметим, что эта процедура использует матрицу Приведение симметричной матрицы к трехдиагональному виду - student2.ru , которая содержит некоторую, хотя и урезанную, информацию о матрице Приведение симметричной матрицы к трехдиагональному виду - student2.ru .

В связи с этим естественной выглядит попытка при выборе исходной системы векторов каким-то образом использовать свойства исследуемой матрицы Приведение симметричной матрицы к трехдиагональному виду - student2.ru . Желательно также, чтобы для такого выбора не нужна была матрица Приведение симметричной матрицы к трехдиагональному виду - student2.ru в явном виде, но достаточно иметь правило (программу), позволяющее определить произведение Приведение симметричной матрицы к трехдиагональному виду - student2.ru для произвольного вектора Приведение симметричной матрицы к трехдиагональному виду - student2.ru . Это ограничение связано с тем, что для очень больших матриц иная форма их определения часто оказывается невозможной.

Наилучшим известным на сегодня выбором такой системы являются вектора следующего вида:

Приведение симметричной матрицы к трехдиагональному виду - student2.ru , (18.1)

где первый вектор Приведение симметричной матрицы к трехдиагональному виду - student2.ru выбирается произвольно, а все остальные вектора уже несут в себе информацию об исследуемой матрице Приведение симметричной матрицы к трехдиагональному виду - student2.ru .

Система векторов (18.1) порождает векторное пространство размерности Приведение симметричной матрицы к трехдиагональному виду - student2.ru . Напомним, что линейным подпространством, порожденным системой векторов Приведение симметричной матрицы к трехдиагональному виду - student2.ru , называется множество всех векторов Приведение симметричной матрицы к трехдиагональному виду - student2.ru , которые можно представить в виде линейной комбинации:

Приведение симметричной матрицы к трехдиагональному виду - student2.ru . (18.2)

Кстати, короче такое подпространство часто называется линейной оболочкой векторов Приведение симметричной матрицы к трехдиагональному виду - student2.ru . Линейные оболочки системы векторов вида (18.1) и называются подпространствами Крылова по имени советского академика, впервые использовавшего их для решения практических задач.

Система векторов Приведение симметричной матрицы к трехдиагональному виду - student2.ru хороша тем, что сами вектора этой системы содержат информацию о матрице Приведение симметричной матрицы к трехдиагональному виду - student2.ru . Однако у нее есть серьезный недостаток – эти вектора неортогональны.

Приведение симметричной матрицы к трехдиагональному виду - student2.ru Поясним это геометрической иллюстрацией (рис. 18.1). В результате первого умножения Приведение симметричной матрицы к трехдиагональному виду - student2.ru будет получен вектор, который повернут относительно исходного вектора Приведение симметричной матрицы к трехдиагональному виду - student2.ru на некоторый угол. Вновь умножая полученный вектор на матрицу Приведение симметричной матрицы к трехдиагональному виду - student2.ru , получаем следующий вектор Приведение симметричной матрицы к трехдиагональному виду - student2.ru , который также повернут на некоторый угол по отношению к предыдущему вектору. Из рассмотренного ранее степенного метода нам известно, что вектор Приведение симметричной матрицы к трехдиагональному виду - student2.ru при Приведение симметричной матрицы к трехдиагональному виду - student2.ru стремится к собственному вектору, соответствующему максимальному собственному значению. Таким образом, с ростом Приведение симметричной матрицы к трехдиагональному виду - student2.ru направление очередного вектора все меньше будет отличаться от направления предыдущего. На рис.18.1 это направление обозначено пунктирной линией.

Нам уже известно средство для «исправления» таких систем векторов – алгоритм Грама ‑ Шмидта. Применив его к системе Приведение симметричной матрицы к трехдиагональному виду - student2.ru можно получить равноценную систему векторов Приведение симметричной матрицы к трехдиагональному виду - student2.ru , но уже с ортогональными единичными векторами. Как мы сейчас увидим, алгоритм Грама ‑ Шмидта, вообще говоря, весьма трудоемкий, значительно упрощается для системы векторов Приведение симметричной матрицы к трехдиагональному виду - student2.ru .

Найдем несколько первых векторов этой ортогональной системы.

Первый вектор Приведение симметричной матрицы к трехдиагональному виду - student2.ru

1) обозначим исходный вектор (зерно подпространства) Приведение симметричной матрицы к трехдиагональному виду - student2.ru ;

2) длину этого вектора обозначим Приведение симметричной матрицы к трехдиагональному виду - student2.ru ;

3) тогда для получения первого вектора Приведение симметричной матрицы к трехдиагональному виду - student2.ru надо только нормировать исходный вектор:

Приведение симметричной матрицы к трехдиагональному виду - student2.ru . (18.2)

Второй вектор Приведение симметричной матрицы к трехдиагональному виду - student2.ru

1) вычисляем очередной вектор Крылова:

Приведение симметричной матрицы к трехдиагональному виду - student2.ru ; (18.3)

2) вычитаем из этого вектора составляющую в направлении Приведение симметричной матрицы к трехдиагональному виду - student2.ru :

Приведение симметричной матрицы к трехдиагональному виду - student2.ru . (18.4)

Здесь введено обозначение:

Приведение симметричной матрицы к трехдиагональному виду - student2.ru . (18.5)

Отметим, что для вычисления Приведение симметричной матрицы к трехдиагональному виду - student2.ru не надо полностью вычислять значение квадратичной формы Приведение симметричной матрицы к трехдиагональному виду - student2.ru , но можно просто вычислить скалярное произведение векторов Приведение симметричной матрицы к трехдиагональному виду - student2.ru и Приведение симметричной матрицы к трехдиагональному виду - student2.ru , определенных на предыдущих шагах;

3) определяем длину вектора Приведение симметричной матрицы к трехдиагональному виду - student2.ru :

Приведение симметричной матрицы к трехдиагональному виду - student2.ru ; (18.6)

4) нормируя вектор Приведение симметричной матрицы к трехдиагональному виду - student2.ru , получаем второй вектор ортогональной системы:

Приведение симметричной матрицы к трехдиагональному виду - student2.ru . (18.7)

Третий вектор Приведение симметричной матрицы к трехдиагональному виду - student2.ru

1) вычисляем очередной вектор Крылова:

Приведение симметричной матрицы к трехдиагональному виду - student2.ru ; (18.8)

2) вычитаем из этого вектора составляющие в направлении Приведение симметричной матрицы к трехдиагональному виду - student2.ru и Приведение симметричной матрицы к трехдиагональному виду - student2.ru :

Приведение симметричной матрицы к трехдиагональному виду - student2.ru . (18.9)

Вновь обозначим

Приведение симметричной матрицы к трехдиагональному виду - student2.ru . (18.10)

Что касается произведения Приведение симметричной матрицы к трехдиагональному виду - student2.ru , то следует отметить, что согласно (18.8)

Приведение симметричной матрицы к трехдиагональному виду - student2.ru . (18.11)

Кроме того, учитывая, что согласно (18.7)

Приведение симметричной матрицы к трехдиагональному виду - student2.ru ,

и в соответствии с (18.3) и (18.4)

Приведение симметричной матрицы к трехдиагональному виду - student2.ru ,

получим

Приведение симметричной матрицы к трехдиагональному виду - student2.ru , (18.12)

т.е. специально вычислять это произведение не надо. Оно уже вычислено на предыдущем шаге.

Итак, окончательно для Приведение симметричной матрицы к трехдиагональному виду - student2.ru получаем

Приведение симметричной матрицы к трехдиагональному виду - student2.ru ; (18.13)

3) вычисляем длину вектора Приведение симметричной матрицы к трехдиагональному виду - student2.ru

Приведение симметричной матрицы к трехдиагональному виду - student2.ru , (18.14)

которая, как нам уже известно, понадобится и на следующем шаге;

4) Приведение симметричной матрицы к трехдиагональному виду - student2.ru . (18.15)

Четвертый вектор Приведение симметричной матрицы к трехдиагональному виду - student2.ru :

1) Приведение симметричной матрицы к трехдиагональному виду - student2.ru ;

2) Приведение симметричной матрицы к трехдиагональному виду - student2.ru .

Здесь необходимо заметить, что Приведение симметричной матрицы к трехдиагональному виду - student2.ru . Вспомним, что при построении Приведение симметричной матрицы к трехдиагональному виду - student2.ru мы представили Приведение симметричной матрицы к трехдиагональному виду - student2.ru как сумму двух составляющих: одна направлена вдоль Приведение симметричной матрицы к трехдиагональному виду - student2.ru , другая вдоль Приведение симметричной матрицы к трехдиагональному виду - student2.ru , т.е.

Приведение симметричной матрицы к трехдиагональному виду - student2.ru ,

где Приведение симметричной матрицы к трехдиагональному виду - student2.ru и Приведение симметричной матрицы к трехдиагональному виду - student2.ru – некоторые коэффициенты. Следовательно,

Приведение симметричной матрицы к трехдиагональному виду - student2.ru

вследствие взаимной ортогональности векторов Приведение симметричной матрицы к трехдиагональному виду - student2.ru . Следовательно,

Приведение симметричной матрицы к трехдиагональному виду - student2.ru .

Это очень важный момент, определяющий в конечном счете эффективность и популярность метода Ланцоша: для определения вектора Приведение симметричной матрицы к трехдиагональному виду - student2.ru используются вектора Приведение симметричной матрицы к трехдиагональному виду - student2.ru и Приведение симметричной матрицы к трехдиагональному виду - student2.ru , но не нужен вектор Приведение симметричной матрицы к трехдиагональному виду - student2.ru !

Такие же рассуждения можно привести и для произвольного Приведение симметричной матрицы к трехдиагональному виду - student2.ru -го вектора Приведение симметричной матрицы к трехдиагональному виду - student2.ru – для его определения используются Приведение симметричной матрицы к трехдиагональному виду - student2.ru и Приведение симметричной матрицы к трехдиагональному виду - student2.ru и не нужны остальные вектора Приведение симметричной матрицы к трехдиагональному виду - student2.ru ;

3) Приведение симметричной матрицы к трехдиагональному виду - student2.ru ;

4) Приведение симметричной матрицы к трехдиагональному виду - student2.ru .

Теперь мы готовы сформулировать алгоритм построения ортонормированного базиса подпространства Крылова:

Задаемся произвольным начальным вектором Приведение симметричной матрицы к трехдиагональному виду - student2.ru длиной Приведение симметричной матрицы к трехдиагональному виду - student2.ru . Если уже определены вектора Приведение симметричной матрицы к трехдиагональному виду - student2.ru , то очередной вектор Приведение симметричной матрицы к трехдиагональному виду - student2.ru определяется следующим образом:
1. Приведение симметричной матрицы к трехдиагональному виду - student2.ru ; 2. Приведение симметричной матрицы к трехдиагональному виду - student2.ru ; 3. Приведение симметричной матрицы к трехдиагональному виду - student2.ru ; 4. Приведение симметричной матрицы к трехдиагональному виду - student2.ru ; 5. Приведение симметричной матрицы к трехдиагональному виду - student2.ru .

Для практического усвоения этого алгоритма полезно рассмотреть следующий пример.

Пример. Рассмотрим построение ортогонального базиса подпространства Крылова для матрицы

Приведение симметричной матрицы к трехдиагональному виду - student2.ru .

В качестве начального вектора («зерна») берем

Приведение симметричной матрицы к трехдиагональному виду - student2.ru .

Определяем Приведение симметричной матрицы к трехдиагональному виду - student2.ru :

Приведение симметричной матрицы к трехдиагональному виду - student2.ru .

Определяем Приведение симметричной матрицы к трехдиагональному виду - student2.ru :

Приведение симметричной матрицы к трехдиагональному виду - student2.ru

Приведение симметричной матрицы к трехдиагональному виду - student2.ru .

Определяем Приведение симметричной матрицы к трехдиагональному виду - student2.ru :

Приведение симметричной матрицы к трехдиагональному виду - student2.ru ,

Приведение симметричной матрицы к трехдиагональному виду - student2.ru .

Определяем Приведение симметричной матрицы к трехдиагональному виду - student2.ru :

Приведение симметричной матрицы к трехдиагональному виду - student2.ru , Приведение симметричной матрицы к трехдиагональному виду - student2.ru ,

Приведение симметричной матрицы к трехдиагональному виду - student2.ru .

Приведение симметричной матрицы к трехдиагональному виду

Почти вся необходимая нам информация о методе Ланцоша содержится в разд.18.1. Осталось сделать только еще одно наблюдение.

Составим из полученных векторов Приведение симметричной матрицы к трехдиагональному виду - student2.ru прямоугольную матрицу

Приведение симметричной матрицы к трехдиагональному виду - student2.ru . (18.16)

Попробуем применить алгоритм Рэлея ‑ Ритца, подробно рассмотренный в лекции 13. Для этого следует вычислить матрицу

Приведение симметричной матрицы к трехдиагональному виду - student2.ru

Приведение симметричной матрицы к трехдиагональному виду - student2.ru (18.17)

Выше уже было отмечено, что для векторов Приведение симметричной матрицы к трехдиагональному виду - student2.ru , построенных по алгоритму Ланцоша,

Приведение симметричной матрицы к трехдиагональному виду - student2.ru при Приведение симметричной матрицы к трехдиагональному виду - student2.ru . (18.18)

Также были введены обозначения:

Приведение симметричной матрицы к трехдиагональному виду - student2.ru (18.19)

Следовательно, полученная в результате (18.17) матрица является трехдиагональной матрицей следующего вида:

Приведение симметричной матрицы к трехдиагональному виду - student2.ru (18.20)

При рассмотрении QR-алгоритма, отмечалось, что для трехдиагональных матриц этот метод обладает очень высокой эффективностью.

Пример.Продолжая рассмотрение предыдущего примера, получаем последовательность трехдиагональных матриц:

Приведение симметричной матрицы к трехдиагональному виду - student2.ru

Для этой последовательности матриц имеем собственные значения:

Приведение симметричной матрицы к трехдиагональному виду - student2.ru

Последняя строчка, естественно, содержит точные значения. Рассматривая последовательность максимальных Приведение симметричной матрицы к трехдиагональному виду - student2.ru , видим, что эти значения довольно быстро стремятся к максимальному собственному значению матрицы Приведение симметричной матрицы к трехдиагональному виду - student2.ru .

Приведение симметричной матрицы к трехдиагональному виду - student2.ru Важный для любого итерационного метода вопрос: когда можно прекращать вычисления? Оказывается, для решения этого вопроса в методе Ланцоша не требуется никаких дополнительных вычислений. Необходимое число Приведение симметричной матрицы к трехдиагональному виду - student2.ru на каждом шаге вычисляется в ходе основного алгоритма. Напомним, что Приведение симметричной матрицы к трехдиагональному виду - student2.ru есть длина вектора Приведение симметричной матрицы к трехдиагональному виду - student2.ru . Сам же вектор Приведение симметричной матрицы к трехдиагональному виду - student2.ru (рис. 18.2) это та составляющая очередного вектора Крылова – Приведение симметричной матрицы к трехдиагональному виду - student2.ru , которая перпендикулярна векторам Приведение симметричной матрицы к трехдиагональному виду - student2.ru и всем остальным векторам Приведение симметричной матрицы к трехдиагональному виду - student2.ru .

Если величина Приведение симметричной матрицы к трехдиагональному виду - student2.ru (длина Приведение симметричной матрицы к трехдиагональному виду - student2.ru ) мала, то это значит, что вектор Приведение симметричной матрицы к трехдиагональному виду - student2.ru уже очень близок по направлению к максимальному собственному вектору.

Идеальным случаем можно считать получение на очередном шаге Приведение симметричной матрицы к трехдиагональному виду - student2.ru . В этом случае можно показать, что все собственные значения трехдиагональной матрицы Приведение симметричной матрицы к трехдиагональному виду - student2.ru являются собственными значениями и матрицы Приведение симметричной матрицы к трехдиагональному виду - student2.ru .

Заключительные замечания по методу Ланцоша:

1. Метод Ланцоша может рассматриваться как разновидность метода Грама ‑ Шмидта. При этом специальный выбор исходной системы векторов позволяет построить трехдиагональную матрицу, подобную данной.

2. Вычислительная эффективность метода для больших задач обусловливается:

1) трехдиагональной формой приведенной матрицы Приведение симметричной матрицы к трехдиагональному виду - student2.ru ;

2) при переходе к следующему шагу алгоритма (от матрицы Приведение симметричной матрицы к трехдиагональному виду - student2.ru к матрице Приведение симметричной матрицы к трехдиагональному виду - student2.ru ) элементы матрицы Приведение симметричной матрицы к трехдиагональному виду - student2.ru остаются без изменений и только добавляются элементы Приведение симметричной матрицы к трехдиагональному виду - student2.ru ;

3) в памяти ЭВМ одновременно надо хранить лишь три последних вектора Приведение симметричной матрицы к трехдиагональному виду - student2.ru .

Современные реализации метода Ланцоша гораздо сложнее рассмотренной нами простой и ясной схемы. Так, в силу вычислительных погрешностей ЭВМ для больших задач вектора Приведение симметричной матрицы к трехдиагональному виду - student2.ru в ходе вычислений перестают быть ортогональными. Поэтому периодически эти вектора приходится подвергать выборочной переортогонализации. Кроме того, оказывается, что, опять-таки из-за ошибок округления, процесс можно продолжить и после того как будет найден «последний» вектор Приведение симметричной матрицы к трехдиагональному виду - student2.ru . Причем, как ни странно, получаемые результаты оказываются полезными при определении собственных значений. Впрочем, обсуждение этих нюансов выходит за рамки настоящего курса. За дополнительной информацией по этому вопросу можно обратиться к [15.1]. А закончить обсуждение этого наиболее эффективного для задач большой размерности метода имеет смысл следующей цитатой [15.2]: «Интерес к нему (методу Ланцоша) в настоящее время определяется тем, что методы такого типа являются единственными среди известных, которые дают хотя бы какую-нибудь возможность решать спектральные задачи для очень больших разреженных матриц… Изящная теоретическая картина метода Ланцоша основательно нарушается при его практической реализации. Реальный процесс не обладает некоторыми свойствами, указанными точной теорией, но приобретает другие, не предсказанные ею… В этом методе пока еще слишком много неясного, и его практическое использование скорее похоже на искусство, чем на обоснованные вычисления».

Литература

15.1. Парлетт Б. Симметричная проблема собственных значений. Численные методы. – М.: Мир, 1983. – 384с.

15.2. Воеводин В.В., Кузнецов Ю.А. Матрицы и вычисления. – М.: Наука, 1984. – 320с.

[1] Крылов Алексей Николаевич (1863-1945) – советский кораблестроитель, механик и математик, академик АН СССР (академик Петербургской АН с 1916 г.), Герой Социалистического Труда (1943 г.). Автор многочисленных основополагающих трудов по теории корабля. Участник проектирования и постройки первых русских линкоров, активный участник решения основных технических вопросов военного и гражданского судостроения в СССР. Труды по теории магнитных и гироскопических компасов, артиллерии, механике, математике, истории науки. Создал ряд корабельных и артиллерийских приборов. Лауреат Государственной премии СССР (1941 г.)

Наши рекомендации