Богачев - Практикум на ЭВМ. Методы решения линейных систем и нахождения собственных значений (947493), страница 19
Текст из файла (страница 19)
Тогда Следовательно, Поэтому из (10) 2 ) 2 Е(Аь) < Е(Аь 1) — Х(Аь 1) = (1 — Е(Аь 1) < 1 — 1 — Х(А,,) « ... 1 — У:(А,). 2 Поскольку д = 1 — е (О, 1), то дь -+ 0 при )с -+ оо, и п(п — 1) Е(Аь) < д"Х(А,) -+ 0 при й -+ ос. Следствие 1. При й — + оо диагональные элементы матрицы Аь сходятся к собственным значениям матрицы А. Доказательство следует из теоремы 1. К.Ю.Богачев Методы нахождения собственных значений 35. МЕТОД ВРАЩЕНИЙ ЯКОБИ 91 Оценка количества арифметических операций на один шаг алгоритма Трудоемкость алгоритма складывается из трудоемкости построения матрицы Т;,(~р), трудоемкости умножения матрицы А на Т; (у) слева и Т,'(р) справа (не зависят от стратегии выбора обнуляемого элемента), а также трудоемкости выбора очередного обнуляемого элемента.
1) На выбор а;- по формуле (9) в силу симметричности матрицы А тре(й-1) п(п — 1) буется 2 операций сравнения которые по порядку сложности равны аддитивным операциям. 2) На построение матрицы Т; (р) (т.е. определение сов ~р и абп~р) по формулам (8) требуется не зависящее от п число операций (т.е. 0(1) ). 3) На умножение матрицы А на Т,"(у) слева согласно лемме 1.12.5 требуется 4п умножений и 2п сложений. 4) На умножение матрицы Т,"(р)А на Т,'-( р) справа согласно лемме 1.12.5 требуется 4п умножений и 2п сложений. Следовательно, всего на вычисление матрицы Т;,(р)АТ,-',(р) требуется 8п+ 0(1) адцитивных и 4п+ 0(1) мультипликативных операций: на один шаг алгоритма требуется 8п + 0(1) аддитивных, 4п + 0(1) мультипликативных и п(п — 1) 2 операций сравнения (которые по порядку можно сравнить с аддитивными операциями).
3 5.3.2. Метод вращений с циклическим выбором обнуляемого элемента Внедиагональные элементы матрицы нумеруются в следующем порядке: п12 п13 п1 п23 п24 п2 п34 пзв " п~ — 1,п и в качестве обнуляемого элемента на шаге й выбирается элемент с номером (п(п — 1) 1 й(шой ~ 2 из этого списка. Другими словами, в качестве номера (г, 1) обнуляемого элемента последовательно выбирают (1, 2),(1, 3),...,(1,п),(2, 3), (2, 4),...,(2,п),(3, 4),..., (З,п),...,(п — 1,п). Затем этот цикл повторяется, и так до тех пор, пока на некотором пгаге Йр не бедет выполнено условие Е(Аь,) ( з.
Опыт показывает, что обычно нужно не более 5, 6 таких циклов для достижения максимально возможной на данной ЭВМ точности (т.е. машинной точности). Оценка количества арифметических операций на один шаг алгоритма В этой стратегии не требуется дополнительных вычислений для определения очередного обнуляемого элемента.
Следовательно, трудоемкость шага алгоритма равна трудоемкости вычисления матрицы Т; (д)АТ,(~р), те. требуется 8н+0(1) К.Ю.Богачев Методы нахождения собственных значений '85. МЕТОД ВРАЩЕНИЙ ЯКОБИ 92 аддитивных и 4и+ О(1) мультипликативных операций. Однако, из-за ненапра- вленного выбора обнуляемого элемента этот алгоритм требует значительного числа итераций для достижения требуемой точности. З 5.3.3. Метод вращений с выбором оптимального элемента В качестве обнуляемого элемента а; выбираем максимальный по моду(й — !) лю внедиагональный элемент в строке матрицы Ай !, имеющей максимальную сумму модулей внедиагональных элементов. Другими словами, ! определяется из условия ~ ~, (а~" )) = шах ~ ~, )а~~ )(, !=г,...,в 4=! !=1 пй! !~! а,) из условия (а(! )) = !пах )а! )(.
и!=!,...,о тФ Для уменьшения вычислительных расходов поступают следующим образом. Кроме матрицы Ай хранится вектор Ь)й), компоненты которого на Й-м шаге равны Ь~~ ) = ~ !а! )/, !=! пй! (12) Поскольку при переходе от матрицы Ай ! к Ай = Т; Ай !Т суммы квадратов внедиагональных элементов строки 1, 1 ~ г, ! не изменяются (см. вычисления при получении формулы (7)), то при переходе от Ай ! к Ай = Т, Ай,Т," 'надо заново пересчитывать по формуле (12) только числа Ь; и Ь: для остальных (й) (й) компонент вектора Ь!~) справедливо равенство Ь!" — — Ь," ', 1= 1,...,и, 1~ г',,). С использованием вектора Ь!" ') выбор очередного обнуляемого элемента а! осуществляется следующим образом: ! определяется из условия )й — !) )Ь~" ')( = !пах )Ь~" ')) (14) а ) из условия (11).
Методы нахождения собственных значений К.Ю.Богачев Оценка количества арифметических операций на один шаг алгоритма 1) На выбор очередного обнуляемого элемента а! требуется и сравнений (й — Ц в формуле (14) и п — 1 сравнение в формуле (11). 2) На вычисление матрицы Т!,(!р)АТ,"'(!р) требуется 8п+ О(1) аддитивных и 4п+ 0(1) мультипликативных операций (см. вычисления вьппе).
~б. МКТОД БИСБКЦИИ 3) На вычисление вектора Р~ по формуле (12) (при 1 и 1') и формуле (13) (для остальных компонент) требуется 2(п — 1) умножение и 2(п — 2) сложение. Таким образом, на шаг алгоритма требуется 10п+0(1) аддитивных, бп+0(1) мультипликативных и 2п+0(1) операций сравнения (которые по порядку можно сравнить с елдитивными операциями). 3 6. МЕТОД БИСЕКЦИИ Метод бисекции позволяет находить для произвольной действительной симметричной матрицы: 1) й-е по величине собственное значение, 2) все собственные значения на заданном интервале, 3) все собственные значения.
Метод основывается на следующей теореме: Теорема 1. (Без доказательства.) Пусть А е М„(1ь), А = А*, А = (а;,) ---- невырожденнал матрица, аы .. аи Е Мь аы аьь и бь — — с1е1Аь --- главные угловые миноры матрицы А. Тогда количество отрицательных собственных значений матрицы А равно Я(А) — числу перемен знака в последовательности 1, бы Бг,..., 6„.
Положим и (Л) = Я(А — Л1). Тогда по теореме 1 и (О) = Я(А) число отрицательных собственных значений матрицы А, и (Л) --- число собственных значений матрицы А, меньших Л (поскольку собственные значения матрицы А — Л1 равны собственным значения матрицы А минус Л). Следовательно, и (Лг) — и (Л~) равно числу собственных значений матрицы А, принадлежащих интервалу (Лы Лг) (здесь Л~, Лг не могут быть выбраны равными собственным значениям матрицы А, так как тогда матрицы А — Л~1, А — Лг1 вырождены и теорема 1 не применима).
К.Ю.Богачев Методы нахождения собственных значений ~6. МЕТОД БИСЕКЦИИ з 6.1. Алгоритм вычисления й-го по величине собственного значения методом бисекции Пусть требуется найти й-е по величине собственное значение матрицы А с точностью е > О. 1) Зададимся Ьо > ао такими, что и (ао) < й, и (Ьо) > й (налример, возьмем ао = — )(А(),, Ьо — — )(А(),о, тогда в силу леммы 1.1.4 и (ао) = О, ть (Ьо) = и).
В силу сказанного выше на интервале ( — со, ао) находится меньше й собственных значений, на интервале (6о, со) --- больше й собственных значений. Следовательно, Ль Е (ао, Ьо) . 3) Переходим к пункту 2. 4) По окончании этого процесса (т.е. Ь; — а; < е) в качестве ответа берем а; + Ь; Ль — — ' ' (которое является (т~ (Ь;) — и (а;))-кратным собственным 2 значением).
На каждом тпаге г = 0,1,... выполнено Ль Е (а;,Ь;), при этом длина инЬо — ао тервала Ь; — а; = , , г = 0,1,.... Следовательно, для достижения точности е (т.е. Ь; — а; < е) надо сделать число шагов тп, определяемое из условия Ьо — ао < н, т.е. (Ьо — ао)е ' < 2™, ти > 1одо(Ьо — ао)е " = 1он2((Ьо — ао)н ') = 1обо(Ьо — ао) + 1ой, н '.
~ 6.2. Алгоритм вычисления всех собственных значений на заданном интервале методом бисекции Пусть требуется найти все собственные значения матрицы А на интервале 1а, 6] с точностью и > О. Существует несколько способов организовать последовательность вычислений. ~ 6.2.1. Рекурсивный алгоритм В рекурсивной форме алгоритм формулируется наиболее просто и при правильной реализации работает наиболее быстро. Алгоритм определения всех собственных значений на отрезке [а, Ь~ с точностью и: Методы нахождения собственных значений К.Ю.Богачев 2) До тех пор, пока 6; — а; > н (т = Если и (с,~т) < й, то полагаем а;+т — — а;, Ь;+т — — с;+ы а;+Ь; 0,1,...) будем вычислять с;.гт = от = с;+д, Ь;+т — — 6;, иначе полагаем ~6. МЕТОД БИСЕКЦИИ 95 Если Ь вЂ” а ) е и п (Ь) — и (а) ф О (т.е.
число собственных значений на [а, Ь] не равно О), то а+Ь определить все собственные значения на отрезке [а, ] с точностью 2 е; а+Ь определить все собственные значения на отрезке [, Ь] с точностью 2 а+Ь иначе, если п (Ь) — и (а) ф О, то является (и (Ь) — и (а))-кратным 2 собственным значением, определенным с точностью е. иначе на отрезке [а, Ь] нет собственных значений. Однако, поскольку глубина рекурсии может достигать п и алгоритм обычно применяется к трехдиагональным матрицам, размерность которых может быть очень велика (сотни тысяч), то рекурсию в этом алгоритме следует организовывать програмным путем. з 6.2.2. Алгоритм последовательного поиска собственных значений В этой формулировке алгоритм работает медленнее,чем предыдущий,но не требует рекурсии.
Пусть п (а) = Ь~, п (Ь) = Ьд (т.е. на отрезке [а,Ь] находится Ь2 — й1 ф О собственных значений Ль,ч.ь..., Ль, с учетом кратности). Положим Ль, = а. Для всех Ь = Ь1 + 1,..., Ь2 будем находить Ь-е по величине собственное значение, используя алгоритм З 6.1, который начинаем с а0 —— Ль 1, Ь0 — — Ь. з 6.3. Алгоритм вычисления всех собственных значений методом бисекции Положим а = — ]]А][, Ь = ][А][, тогда в силу леммы 1.1.4 и (а) = О, и (Ь0) = и, и на отрезке [а, Ь] находятся все собственные значений матрицы А. Для их нахождения применяем алгоритм из ~ 6.2. З 6.4. Вычисление числа перемен знака в последовательности главных миноров Для реализации этих алгоритмов надо уметь быстро вычислять функцию и (Л) = Я(А — Л1) - число перемен знака в последовательности 1, ды б2,...,6„ главных миноров матрицы А — Л1.