- •2. Применение алгоритма
- •3. Список формальных параметров
- •2. Применение алгоритма
- •3. Список формальных параметров
- •4. Программы на языке алгол
- •5. Организация процедур и обозначения
- •6. Оценка точности решения
- •7. Примеры использования процедур и результаты их проверки
- •1. Теоретические предпосылки
- •2. Применение алгоритма
- •3. Список формальных параметров
- •4. Алгол- Программа
- •Integer p, 0, /, /;
7. Примеры использования процедур и результаты их проверки
вычисленные значения помечены тильдой, a m (А) обозначает величину max | at-f/(.
137
Алгоритм 11.1 Метод Якоби для действительных симметрических матриц
1. Теоретические предпосылки
Известно [95], что существует итерационная процедура, которая приводит исходную симметрическую матрицу к диагональному виду с помощью последовательности элементарных ортогональных преобразований (называемых вращениями Якоби, или плоскими вращениями). Процедура построена таким образом, что на k + 1-ом шаге осуществляется преобразование вида
А*-* А*+1 = UjA4U4, (1)
где U# = Uk (р, q, <р) — ортогональная матрица, отличающаяся от единичной только элементами
Upp = Uqq = COS ф И Upq — — Uqp — 5Ш ф. (2)
Исходную матрицу А в соответствии с соотношением (1) обозначают через А0. В целом, метод Якоби позволяет выполнить с определенной точностью преобразование исходной матрицы к виду
А -> D = VTAV, (3)
где D — диагональная, а V — ортогональная матрица. Матрица D является пределом, к которому стремится последовательность матриц Аk при k ~> оо, а V — произведение всех промежуточных матриц плоских вращений, используемых для диагонализации исходной матрицы, т. е.
Основное достоинство метода Якоби в том, что при выполнении каждого плоского вращения уменьшается сумма квадратов внедиагональных элементов; сходимость этой суммы к нулю по мере увеличения числа шагов гарантирует сходимость процесса диагонализации. Существует множество численных схем, связанных с реализацией этого метода.
В основополагающей статье [41], относящейся к 1846 г., Якоби предложил выбирать в матрице А^ максимальный по модулю внедиагональный элемент apq* и затем осуществлять плоское вращение на такой угол ф, чтобы в матрице &k+i элемент apq стал равным нулю. Когда в 1952 г. этот метод был открыт заново [32] в связи с развитием автоматических вычислений на ЦВМ, он был видоизменен так, что выбор максимального элемента стал проводиться по строкам только для наддиагональных элементов матрицы, а угол вращения ф выбирался по-прежнему так, чтобы аннулировать максимальный по модулю элемент apq в матрице А*+1. Позднее в работе [67] была предложена стратегия, исключающая неэффективные промежуточные вращения, которая позволяла проводить диагонализацию с меньшими затратами машинного времени.
Доказательство, а также оценка сходимости метода Якоби были даны в работах [35], [79], [90]. Как показано в этих работах, оба метода — исходный и вычислительно-ориентированный [32, 67] обладают квадратичной сходимостью. Именно этот факт и объясняет тот интерес, который уделяется методу Якоби.
* Поскольку исходная матрица симметрическая, то следует проверять только наддиагональные или поддиагональные элементы.
182
, ПО МО-
, А л го-
2. Применение алгоритма
Предлагаемый алгоритм реализует построчный поиск максимального по модулю элемента в правом верхнем углу исходной симметрической матрицы, алгоритм пригоден для любых действительных симметрических матриц. Он построен таким образом, что обеспечивает точность, сравнимую с точностью ЭВМ, на которой реализован алгоритм *. Обычно для этого требуется примерно 6-—10 циклов, или приблизительно Зп2-т-5п2 вращений Якоби.
Отметим, что, хотя метод Якоби достаточно компактен и изящен, и вычисление с его помощью собственных векторов не представляет затруднений, он требует большего времени для вычислений, чем сочетание процедуры преобразования к трехдиагональной форме с последующим вычислением собственных значений трехдиагональной матрицы (например, последовательное применение процедур trea 2 и tql 2 (imtgl 2) либо процедур tred, tristurm и trbak 1.
Поэтому при больших порядках исходных матриц предпочтительнее использовать эти процедуры вместо процедуры Якоби. Более того, метод Якоби не использует преимуществ симметрических ленточных матриц, ширина которых мала по сравнению с их порядком п. Для матриц такого типа лучше применять L^-алгоритм (алгоритмы 11.15, 11.16) [72].