X1 | * | … | … | * | * | * |
x2 | * | … | … | * | * | * |
x3 | … | … | * | * | * | |
… | … | * | * | * | ||
… | * | * | * | |||
… | * | * | ||||
0 | … | * | ||||
* |
где блоки Хm, представляют собой матрицы размерности 2 х 2, расположенные на главной диагонали. Собственные значения блоков Хm, являются в то же время собственными значениями исходной матрицы размерности пx п. Такая форма удобна, так как детерминант второго порядка блоков Хm позволяет определять комплексные собственные значения, не вводя комплексных элементов в окончательную матрицу. Если все собственные значения исходной матрицы действительные, то в окончательном виде она будет треугольной, причем собственные значения будут расположены на диагонали.
Метод LR
Этот метод первоначально был разработан Рутисхаузером в 1958 г. Метод основан на представлении матрицы A в виде произведения
А = LR,
где L — левая треугольная матрица с единичными диагональными элементами, а R — правая треугольная. Применяя преобразование подобия L-1 A R, видим, что,
A2 = L-1 A R = L-1 (RL)L = R L.
Следовательно,
Am-1 = L m-1 Rm-1,
Am = R m-1 Lm-1.
Этот процесс повторяется до тех пор, пока Ls не превратится в единичную матрицу Е, а Rs не приобретет квазидиагональную форму. Хотя этот метод очень удобен, он не всегда устойчив. Поэтому предпочтение часто отдают другому методу.
Метод QR
Метод QR. предложен Фрэнсисом в 1961 г. Соответствующий ему алгоритм определяется соотношением
Am = Q m Rm.
где Q m — ортогональная матрица, а Rm — верхняя треугольная матрица. При использовании метода последовательно получаем
Am+1 = QmTAm Qm = QmTQm Rm Qm = Rm Qm.
В пределе последовательность матриц А стремится к квазидиагональной форме. Этот метод сложнее предыдущего и требует больших затрат машинного времени. Однако его устойчивость,обусловленная использованием ортогональных преобразующих матриц, обеспечила ему прочную репутацию лучшего метода решения задач самой общей формы.
Пример 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 позволяет найти собственные значения.
{**********************************************************************}
Программа определение всех собственных значений произвольной матрицы размерности 6х5. Используются подпрограммы НSВСи АТЕIG из пакета программ для научных исследований фирмы IBM
{**********************************************************************}
DIMENSION A(6,6),RR(6),RI(6),IANA(6)
READ(5,100)((A(I,J),J=1,6),I=1,6)
WRITE(6,104)
104 FORMAT(///lX,’THE ORIGINAL MATRIX IS AS FOLLOWS’)
WRITE(6,103)
103 FORMAT(1X,65(-'--'))
WRITE(6,101)((A(I,J),J=1,6),I=1,6)
WRITE(6,103)
101FORMAT(6(1X,F10.5))
100 FORMAT(6F10.5)
CALL HSBG(6,A,6)
WRITE(6,105)
105 FORMAT(///1X,'THE MATRIX W HESSENBUR5 FORM IS') WRITE(6,103)
WRITE(6,101)((A(I,J),J=1,6),I=1,6)
WRITE(6,103)
CALL ATEIG(6,A,RR,RI,IANA,6)
WRITE(6,106)
106FORHAT(///1X,'THE EIGENVALUES ARE AS FOLLOUS')
WRITE(6,107)
107 FORMAT (1X, 23(‘-‘),/,4X,’REAL',12X,’IMAG’,/,23(‘-‘))
WRITE(6,102)(RR(I),PKI),I=1,6)
WRITE(6,108)
108 FORMAT(1X,23(‘-‘))
FORMAT<2(2X,F10.5)»
STOP
END
Исходная матрица имеет вид
2.30000 | 4.30000 | 5.60000 | 3.20000 | 1,40000 | 2.20000 |
1.40000 | 2.40000 | 5.70000 | 8.40000 | 3.40000 | 5.20000 |
2.50000 | 6.50000 | 4.20000 | 7.10000 | 4.70000 | 9.30000 |
3.80000 | 5.70000 | 2.90000 | 1.60000 | 2.50000 | 7.90000 |
2.40000 | 5.40000 | 3.70000 | 6.20000 | 3.90000 | 1.80000 |
1.80000 | 1.70000 | 3.90000 | 4.60000 | 5.70000 | 5.90000 |
Матрица в форме Гессенберга.
-1.13162 | 3.20402 -0, | -0.05631 | 3.88246 | 1.40000 | 2.20000 |
-0.75823 | 0.07468 0, | 0.48742 | 6.97388 | 5.37А35 | 10.36283 |
0. | 1.13783 -2, | -2.63803 | 10.18618 | 7.15297 | 17.06242 |
0. | 0. | 3.35891 | 7. 50550 | 7.09754 | 13.92154 |
0. | 0. | 0. | 13.36279 | 10.58947 | 16.78421 |
0. | 0. | 0. | 0. | 5.70000 | 5.90000 |
Собственные значения
-----------------------------------
Действит. Миним.
-----------------------------------
25.52757 | 0. |
-5.63130 | 0. |
0.88433 | 3.44455 |
0.88433 | -3.44455 |
-0.68247 | 1.56596 |
-0.68247 | -1.56596 |
7. ВЫБОР АЛГОРИТМА РЕШЕНИЯ ЗАДАЧ НА СОБСТВЕННЫЕ ЗНАЧЕНИЯ
Выбор подходящего алгоритма для решения той или иной задачи на собственные значения определяется типом собственных значений, типом матрицы и числом искомых собственных значений. Чем сложнее задача, тем меньше число алгоритмов, из которых можно выбирать. Таблица 1 позволяет облегчить этот выбор. Обычно пакеты математического обеспечения ЭВМ содержат подпрограммы, в которых используются все эти алгоритмы или некоторые из них. Одним из эффективных способов использования имеющегося математического обеспечения является одновременное применение двух подпрограмм, позволяющее совместить их лучшие качества. Например, имея матрицу общего вида, можно методом Хаусхолдера свести ее к виду Гессенберга, а затем с помощью алгоритма QR найти собственные значения. При этом будут использованы как быстрота, обеспечиваемая методом Хаусхолдера, так и универсальность алгоритма QR.
Таблица 1 Выбор алгоритма решения задачи на собственные значения
Название алгоритма | Применяется для | Результат | Рекомендуется дляотыскания собственных значений | Примечание | ||
Наибольшего или наименьшего | Всех <=6 | Всех >=6 | ||||
Определитель (итерация) | Матриц общего вида | Собственные значения | * | Требует нахождения корней полинома общего вида | ||
Итерация (итерация) | То же | Собственныезначения и собственные векторы | * | * | * | Обеспечивает наилучшуюточность для наибольшего и наименьшего собственных значений |
Метод Якоби (преобразование) | Симметричных матриц | Диагональная форма матрицы | * | * | Теоретически требует бесконечного числа шагов | |
Метод Гивенса (преобразование) | То же | Трехдииональльная форма матрицы | * | * | Требует знания корней простого полинома | |
Несимметричныхматриц | Форма Гессенберга | * | * | Требует применения дополнительного метода | ||
Метод Хаусхолдера (преобразование) | Симметричных матриц | Трехдиагональная форма матрицы | * | * | Требует знания корней простого полинома | |
Метод Хаусхолдера (преобразование) | Несимметричных матриц | Форма Гессенберга | * | * | Требует применения дополнительного метода | |
Метод LR (преобразование) | Матриц общего вида | Квазидиагональная форма матрицы | * | * | Бывает неустойчив | |
Метод QR (преобразование) | То же | То же | * | * | Лучший метод, обладающий наибольшейобщностью |