
- •Проблема собственных значений Введение
- •1. Необходимые сведения из линейной алгебры
- •1.1 Обозначения
- •1.2 Основные определения
- •1.2.1 Матричные операции
- •1.2.2 Преобразование подобия
- •1.2.3 Матрицы со специальными свойствами
- •1.3 Проблема собственных значений
- •1.3.1 Собственные значения и векторы
- •1.3.2 Характеристическое уравнение
- •1.3.3 Собственные значения и собственные векторы диагональных матриц
- •1.3.4 Связь между собственными значениями и векторами подобных матриц
- •1.3.5 Матрицы простой структуры
- •2. Численные методы решения проблемы собственных значений
- •2.1 Классификация задач
- •2.2 Методы решения полной проблемы собственных значений
- •2.2.1 Метод Якоби
- •2.2.3 Приведение симметричной матрицы к трехдиагональной форме с помощью преобразований Хаусхолдера.
- •2.3 Методы решения частичной проблемы собственных значений
- •2.3.1 Прямые итерации
- •2.3.2 Обратные итерации
- •2.3.3 Последовательность Штурма и метод бисекции
2.2.3 Приведение симметричной матрицы к трехдиагональной форме с помощью преобразований Хаусхолдера.
В связи с изложенными выше преимуществами QL- или QR-алгоритмов для симметричных трехдиагональных матриц, их обычно применяют после того, как исходная матрица тем или иным способом приведена к трехдиагональной форме. Одним из наиболее эффективных способов такого приведения является использование преобразований Хаусхолдера (8).
На i-м шаге алгоритма выполняется преобразование подобия с помощью ортогональной матрицы Pi, имеющей блочную структуру:
, (28)
где Qi=E2vi·vi (E – единичная матрица порядка Ni; vi – нормированный вектор той же размерности). После i1 шагов исходная матрица приобретает вид
где звездочками обозначены ненулевые элементы. Преобразование подобия с помощью Pi не изменяет верхний левый блок порядка i, уже приведенный к трехдиагональной форме. На i-м шаге должны быть исключены все элементы кроме первого в отмеченных пунктиром симметрично расположенных строке и столбце недиагональных блоков. Условия обращения в нуль Ni1 элементов вместе с условием нормировки дают Ni уравнений, полностью определяющих вектор vi. Особенности практической организации вычислений изложены в [Error: Reference source not found].
Всего для приведения матрицы к трехдиагональному виду потребуется N2 преобразований.
Получение трехдиагональной матрицы методом Хаусхолдера с последующей ее диагонализацией с помощью QL-алгоритма (как правило, с неявным сдвигом) является наиболее экономичным из известных в настоящее время методов решения полной проблемы собственных значений для плотных симметричных матриц. Для ленточных матриц эта схема не является оптимальной, поскольку преобразования Хаусхолдера расширяют ленту до полной матрицы. В этом случае более эффективен другой алгоритм приведения к трехдиагональной форме, основанный на специальным образом подобранной последовательности преобразований Гивенса (плоских вращений). Хотя в общем случае вращение Гивенса требует больших затрат по сравнению с преобразованием отражения, для достаточно узкой ленты количество преобразований сокращается, и в итоге достигается выигрыш в объеме вычислений.
2.3 Методы решения частичной проблемы собственных значений
2.3.1 Прямые итерации
Пусть u0 – произвольный вектор, A – матрица простой структуры. Построим последовательность векторов
uk=kAuk1, k=1,2,, (29)
где k – некоторые ненулевые числа. Этот процесс называется прямыми итерациями вектора u0.
Предположим, что собственные значения A пронумерованы в порядке убывания их абсолютной величины:
|1||2||N|,
и пусть v1, v2, , vN – соответствующие собственные векторы. Предположение о простой структуре A означает, что все vi линейно независимы и могут служить базисом пространства, т. е. любой N-мерный вектор можно представить в виде линейной комбинации собственных векторов. В частности,
, (30)
где ci – некоторые (неизвестные нам) коэффициенты.
Пусть пока все множители k=1. Рассмотрим результат действия A на вектор u0:
,
,
Если 1 – наибольшее собственное значение, то, очевидно,
при
. (31)
Рассматривая предельное значение отношения двух последовательных результатов прямой итерации, можно получить наибольшее собственное значение матрицы A:
. (32)
При этом uk стремится (с точностью до числового множителя) к соответствующему собственному вектору v1.
В случае практического осуществления прямой итерации необходимо учитывать, что элементы вектора u будут неограниченно возрастать (или убывать) из-за многократного умножения на величину 1. Чтобы избежать этого нежелательного эффекта, следует на каждой итерации нормировать результат, выбирая соответствующим образом множитель k.
Существует модифицированный вариант прямой итерации
, (33)
называемый прямой итерацией со сдвигом. Итерация по уравнению (33) приводит к умножению каждого слагаемого в разложении (30) на величину (ik1) вместо i в случае итерации без сдвига. Выбирая сдвиг надлежащим образом, можно влиять на скорость сходимости итераций, а также получить другие собственные значения и соответствующие векторы. Однако возможности прямой итерации здесь ограничены.