Наш опыт применения метода Гивенса показывает, что можно при выполнении одного шага преобразований обратить в нуль сразу все элементы целой строки и столбца, стоящие вне трех диагоналей матрицы. Метод, позволяющий выполнить такое преобразование, предложил Хаусхолдер .
Метод Хаусхолдера для симметричных матриц
Метод Хаусхолдера позволяет привести матрицу к трехдиагональному виду, выполнив почти вдвое меньше вычислений по сравнению с другими методами. Это обусловлено тем, что при его применении становятся нулевыми сразу все элементы строк и столбцов, стоящие вне трех диагоналей матрицы. Метод Хаусхолдера позволяет получить требуемый результат быстрее, чем метод Гивенса, так как связан с выполнением меньшего числа, хотя и более сложных преобразований. Это его свойство особенно ярко проявляется применительно к большим матрицам. Хотя в методе Хаусхолдера вместо плоских вращении используются эрмитовы ортогональные преобразования матриц, трехдиагональная форма матрицы, которую получают этим методом, имеет те же собственные значения, что и трехдиагональная матрица, получаемая методом Гивенса. При использовании метода Хаусхолдера на п — 2 основных шагах выполняются следующие преобразования:
Аk = РkAk-1Рk, k=1, 2, ..., п-2,
где Aо == А.
Каждая преобразующая матрица имеет вид
uk ukT
Pk = E - -------------- ,
2Kk2
где
ui,k = 0 при i = 1, 2, …, k,
ui,k = ak,i при i = k+2, …, n,
uk+1,k = ak,k+1 ± Sk.
Здесь
n 1/2Sk = S a2k,i
i=k+1
2K2k = S2k ± ak, k+1 Sk.
В этих уравнениях берется знак, соответствующий элементу ak,k+1. Это позволяет сделать значение иk+1,k максимальным. Отметим, что методами Гивенса и Хаусхолдера можно пользоваться и в случае несимметричных матриц, приводя их, правда, не к трехдиагональному, а другому частному виду треугольной матрицы известной как матрица Гессенберга:
* | * | 0 | 0 | 0 | 0 |
* | * | * | 0 | 0 | 0 |
* | * | * | * | 0 | 0 |
* | * | * | * | * | 0 |
* | * | * | * | * | * |
* | * | * | * | * | * |
5. ОПРЕДЕЛЕНИЕ СОБСТВЕННЫХ ЗНАЧЕНИЙ СИММЕТРИЧНОЙ ТРЕХДИАГОНАЛЬНОЙ МАТРИЦЫ
Приведя симметричную матрицу к трехдиагональному виду методом Гивенса или Хаусхолдера, необходимо найти ее собственные значения. Чтобы ясней были достоинства трехдиагональной формы, сформулируем задачу о собственных значениях в виде
dеt(А—lE) = 0,
где А — симметричная трехдиагональная матрица. Раcкрыв выражение в скобках, получим
a1 - l | b2 | 0 |
b1 | a2 - l | = 0 |
bn | ||
0 | bn | an - l |
Произвольный определитель порядка п можно выразить через п миноров порядка п — 1, каждый из которых в свою очередь выражается через п — 1 миноров порядка п — 2. Удобство трехдиагональной формы в том, что на каждом шаге все миноры, кроме двух, оказываются равными нулю. В результате исходный определитель представляется последовательностью полиномов
fm(l) = (am - l) fm-1 (l) – b2 m fm-2(l).
Приняв
f0 (l) = 1 и f1 (l) = a1 - l при r = 2, .... п,
получим совокупность полиномов, известную как последовательность Штурма и обладающую тем свойством, что корни полинома fj (l) располагаются между корнями полинома fj+1 (l). Поэтому для f1 (l) = a1— l можно утверждать, что значение lК = а1 заключено между корнями полинома f2 (l) == (a2 — l) (a1 — l) —b22. Это облегчает итерационное определение корней полинома, так как если известны границы интервалов, в которых лежат значения корней полинома, то их можно найти методом половинного деления. Так последовательно находят корни всех полиномов, и последний из них fn (l) дает все искомые п собственные значения. Эту процедуру можно проиллюстрировать графически (см. рис. 3).
Последовательность Штурма обладает еще и таким свойством: для любого значения b, при котором fn (b) <> 0, число собственных значений матрицы A, больших b, равно числу изменений знака последовательности
1, f1 (b), f2 (b), … , (1)n fn (b).
Если целое число, равное числу изменений знака, обозначить через V(b), то число собственных значений в интервале действительных чисел [b, с] будет равно V(b)—V(c).
Корни многочленаf2 (l) f1 (b) |
Корни многочленаf3(l) f1 (b) |
Корни многочленаfn(l) f1 (b) |
X1 | * | … | … | * | * | * |
x2 | * | … | … | * | * | * |
x3 | … | … | * | * | * | |
… | … | * | * | * | ||
… | * | * | * | |||
… | * | * | ||||
0 | … | * | ||||
* |
где блоки Хm, представляют собой матрицы размерности 2 х 2, расположенные на главной диагонали. Собственные значения блоков Хm, являются в то же время собственными значениями исходной матрицы размерности п x п. Такая форма удобна, так как детерминант второго порядка блоков Хm позволяет определять комплексные собственные значения, не вводя комплексных элементов в окончательную матрицу. Если все собственные значения исходной матрицы действительные, то в окончательном виде она будет треугольной, причем собственные значения будут расположены на диагонали.
Метод LR
Этот метод первоначально был разработан Рутисхаузером в 1958 г. Метод основан на представлении матрицы A в виде произведения
А = LR,
где L — левая треугольная матрица с единичными диагональными элементами, а R — правая треугольная. Применяя преобразование подобия L-1 AR, видим, что,
A2 = L-1 A R = L-1 (RL)L = R L.
Следовательно,
Am-1 = Lm-1 Rm-1,
Am = R m-1 Lm-1.
Этот процесс повторяется до тех пор, пока Ls не превратится в единичную матрицу Е, а Rs не приобретет квазидиагональную форму. Хотя этот метод очень удобен, он не всегда устойчив. Поэтому предпочтение часто отдают другому методу.
Метод QR
Метод QR. предложен Фрэнсисом в 1961 г. Соответствующий ему алгоритм определяется соотношением
Am = Q m Rm.
где Qm — ортогональная матрица, а Rm — верхняя треугольная матрица. При использовании метода последовательно получаем
Am+1 = Q mT Am Q m = Q mT Q m Rm Q m = Rm Q m.
В пределе последовательность матриц А стремится к квазидиагональной форме. Этот метод сложнее предыдущего и требует больших затрат машинного времени. Однако его устойчивость,обусловленная использованием ортогональных преобразующих матриц, обеспечила ему прочную репутацию лучшего метода решения задач самой общей формы.
Пример 3
Пусть требуется найти все собственные значения произвольной матрицы размерности 6 x 6
2,3 | 4,3 | 5,6 | 3,2 | 1,4 | 2,2 |
1,4 | 2,4 | 5,7 | 8,4 | 3,4 | 5,2 |
2,5 | 6,5 | 4,2 | 7,1 | 4,7 | 9,3 |
3,8 | 5,7 | 2,9 | 1,6 | 2,5 | 7,9 |
2,4 | 5,4 | 3,7 | 6,2 | 3,9 | 1,8 |
1,8 | 1,7 | 3,9 | 4,6 | 5,7 | 5,9 |
Сделаем это в два приема, приведя сначала матрицу с помощью преобразования подобия к виду Гсссенберга, затем с помощью разновидности метода QRнайдем собственные значения. В приведенной ниже программе использованы две подпрограммы из пакета программ для научных исследований фирмы IВМ. Подпрограмма НSВС преобразует матрицу размерности 6 x 6 к форме Гессенберга, а подпрограмма АТЕIG позволяет найти собственные значения.