Текст
                    МОСКОВСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ
имени М.В. ЛОМОНОСОВА
Механике- математический факультет
Кафедра вычислительной математики
К.Ю. Богачев
Практикум на ЭВМ.
Методы решения линейных систем и
нахождения собственных значений
Москва 1998 год

СОДЕРЖАНИЕ 2 Содержание ПРЕДИСЛОВИЕ.............................................. 6 Глава I. ТОЧНЫЕ МЕТОДЫ РЕШЕНИЯ ЛИНЕЙНЫХ СИ- СТЕМ .............................................. 7 §1 . МАТРИЧНЫЕ НОРМЫ.................................. 7 §2 . ОБРАТИМОСТЬ МАТРИЦЫ, БЛИЗКОЙ К ОБРАТИМОЙ МА- ТРИЦЕ ............................................ 12 §3 . ОШИБКИ В РЕШЕНИЯХ ЛИНЕЙНЫХ СИСТЕМ............... 12 §4 . МЕТОД ГАУССА.................................... 15 §4.1 . Алгоритм метода Гаусса..................... 15 §4.2 . Оценка количества арифметических операций в методе Гаусса 17 §4.3 . Представление метода Гаусса в виде последовательности элементарных преобразований..................... 18 §4.4 . Алгоритм построения LU-разложения.......... 19 §4.5 . Оценка количества арифметических операций в алгоритме построения LU-разложения..................... 21 §4.6 . Осуществимость метода Гаусса .............. 21 §5 . МЕТОДЫ ПОСЛЕДОВАТЕЛЬНОГО ИСКЛЮЧЕНИЯ НЕИЗВЕСТ- НЫХ ДЛЯ ЛЕНТОЧНЫХ МАТРИЦ........................... 22 §5.1 . Метод Гаусса для ленточных матриц.......... 22 §5.2 . Алгоритм LU-разложения для трехдиагональных матриц . 23 §5.3 . Метод прогонки для трехдиагональных матриц. 24 §6 . ЗАДАЧА ОБРАЩЕНИЯ МАТРИЦЫ ....................... 26 §7 . МЕТОД ГАУССА С ВЫБОРОМ ГЛАВНОГО ЭЛЕМЕНТА...... 27 §8 . МЕТОД ЖОРДАНА (ГАУССА-ЖОРДАНА).................. 31 §9 . ПОЛОЖИТЕЛЬНО ОПРЕДЕЛЕННЫЕ МАТРИЦЫ............... 33 §10 . МЕТОД ХОЛЕЦКОГО (КВАДРАТНОГО КОРНЯ) ........... 35 §10.1 . Разложение Холецкого...................... 35 §10.2 . Алгоритм построения разложения Холецкого.. 36 §10.3 . Оценка количества арифметических операций в алгоритме построения разложения Холецкого................. 39
СОДЕРЖАНИЕ 3 §11 . МЕТОД ОРТОГОНАЛИЗАЦИИ.............................. 39 §12 . МЕТОД ВРАЩЕНИЙ..................................... 43 §12.1 . Матрица элементарного вращения и ее свойства . 43 §12.2 . Алгоритм метода вращений ..................... 46 §12.3 . Оценка количества арифметических операций в методе вра- щений ............................................ 48 §12.4 . Построение <2й-разложения методом вращений.... 50 §12.5 . Оценка количества арифметических операций в алгоритме построения QR-разложения методом вращений......... 51 §13 . МЕТОД ОТРАЖЕНИЙ.................................... 52 §13.1 . Матрица отражения и ее свойства............... 53 §13.2 . Алгоритм метода отражений..................... 55 §13.3 . Оценка количества арифметических операций в методе от- ражений .......................................... 58 §13.4 . Построение <2й-разложения методом отражений... 59 §13.5 . Оценка количества арифметических операций в алгоритме построения QR-разложения методом отражений........ 61 §14 . ПРИВЕДЕНИЕ МАТРИЦЫ К ПОЧТИ ТРЕУГОЛЬНОМУ ВИДУ УНИТАРНЫМ ПОДОБИЕМ МЕТОДОМ ВРАЩЕНИЙ................... 62 §14.1 . Случай произвольной матрицы .................. 62 §14.2 . Случай симметричной матрицы................... 67 §15 . ПРИВЕДЕНИЕ МАТРИЦЫ К ПОЧТИ ТРЕУГОЛЬНОМУ ВИДУ УНИТАРНЫМ ПОДОБИЕМ МЕТОДОМ ОТРАЖЕНИЙ.................. 71 §15.1 . Случай произвольной матрицы .................. 71 §15.2 . Случай самосопряженной матрицы................ 75 Глава II. МЕТОДЫ НАХОЖДЕНИЯ СОБСТВЕННЫХ ЗНАЧЕ- НИЙ .................................................. 79 §1 . ТОЧНЫЕ И ИТЕРАЦИОННЫЕ МЕТОДЫ........................ 79 §2 . ЛОКАЛИЗАЦИЯ СОБСТВЕННЫХ ЗНАЧЕНИЙ.................... 80 §3 . ОШИБКИ ПРИ НАХОЖДЕНИИ СОБСТВЕННЫХ ЗНАЧЕНИЙ . 82 §4 . СТЕПЕННОЙ МЕТОД..................................... 83 §4.1 . Описание алгоритма............................ 83 §4.2 . Оценка количества арифметических операций на один шаг алгоритма....................................... 85 §5 . МЕТОД ВРАЩЕНИЙ ЯКОБИ................................ 85 §5.1 . Описание алгоритма............................ 85 §5.2 . Выбор угла вращения........................... 87 §5.3 . Стратегии выбора обнуляемого элемента......... 89
СОДЕРЖАНИЕ 4 §5.3.1 . Метод вращений с выбором максимального элемента 90 §5.3.2 . Метод вращений с циклическим выбором обнуляе- мого элемента....................................... 91 §5.3.3 . Метод вращений с выбором оптимального элемента 92 §6 . МЕТОД БИСЕКЦИИ............................................ 93 §6.1 . Алгоритм вычисления к-го по величине собственного зна- чения методом бисекции..................................... 94 §6.2 . Алгоритм вычисления всех собственных значений на задан- ном интервале методом бисекции............................. 94 §6.2.1 . Рекурсивный алгоритм........................ 94 §6.2.2 . Алгоритм последовательного поиска собственных значений............................................ 95 §6.3 . Алгоритм вычисления всех собственных значений методом бисекции .................................................. 95 §6.4 . Вычисление числа перемен знака в последовательности главных миноров............................................ 95 §6.4.1 . Вычисление числа перемен знака в последователь- ности главных миноров с помощью LU-разложения 96 §6.4.2 . Вычисление числа перемен знака в последователь- ности главных миноров с помощью реккурентных формул.............................................. 96 §7 . LR АЛГОРИТМ............................................... 98 §7.1 . LR-разложение, используемое в LR алгоритме.......... 98 §7.1.1 . Алгоритм построения Ай-разложения для произ- вольной матрицы..................................... 98 §7.1.2 . Алгоритм построения Ай-разложения для почти треугольной матрицы......................... 100 §7.1.3 . Алгоритм построения Тй-разложения для трех- диагональной матрицы............................... 101 §7.2 . LR алгоритм нахождения собственных значений.........101 §7.2.1 . LR алгоритм нахождения собственных значений для почти треугольной матрицы ...............102 §7.2.2 . LR алгоритм нахождения собственных значений для трехдиагональной матрицы.................103 §7.3 . Ускорение сходимости алгоритма..................... 104 §7.3.1 . Исчерпывание матрицы....................... 105 §7.3.2 . Сдвиги..................................... 106 §7.3.3 . Практическая организация вычислений в LR ал- горитме ........................................... 106
СОДЕРЖАНИЕ 5 §8 . МЕТОД ХОЛЕЦКОГО...................................... 107 §8.1 . Разложение Холецкого, используемое в методе Холецкого . 107 §8.1.1 . Алгоритм построения разложения Холецкого для произвольной самосопряженной матрицы............107 §8.1.2 . Алгоритм построения разложения Холецкого для трехдиагональной матрицы ....................... 109 §8.2 . Метод Холецкого нахождения собственных значений .... ПО §8.2.1. Метод Холецкого нахождения собственных значе- ний для трехдиагональной матрицы.................111 §8.3 . Ускорение сходимости алгоритма................. 112 §8.3.1 . Исчерпывание матрицы................... 112 §8.3.2 . Сдвиги................................. 113 §8.3.3 . Практическая организация вычислений в методе Холецкого ...................................... 113 §9 . QR АЛГОРИТМ.......................................... 114 §9.1 . Q-R-разложение, используемое в QR алгоритме ....114 §9.1.1 . Алгоритм построения QR-разложения для произ- вольной матрицы.......................... 114 §9.1.2 . Алгоритм построения QR-разложения для почти треугольной матрицы............................. 114 §9.1.3 . Алгоритм построения QR-разложения для трех- диагональной матрицы............................ 120 §9.2 . QR алгоритм нахождения собственных значений.....124 §9.2.1 . QR алгоритм нахождения собственных значений для почти треугольной матрицы ...................125 §9.2.2 . QR алгоритм нахождения собственных значений для самосопряженной трехдиагональной матрицы 126 §9.3 . Ускорение сходимости алгоритма................. 129 §9.3.1 . Исчерпывание матрицы................... 129 §9.3.2 . Сдвиги................................. 129 §9.3.3 . Практическая организация вычислений в QR ал- горитме ........................................ 130 §10 . МЕТОД ОБРАТНОЙ ИТЕРАЦИИ НАХОЖДЕНИЯ СОБСТВЕН- НЫХ ВЕКТОРОВ.............................................. 130 ПРОГРАММА КУРСА.............................................. 133 ЛИТЕРАТУРА................................................... 137
6 ПРЕДИСЛОВИЕ Настоящее пособие содержит описания алгоритмов, предлагаемых к реализа- ции на ЭВМ студентам механико-математического факультета МГУ на занятиях по ” Практикуму на ЭВМ”. Для всех алгоритмов приводится необходимое теоре- тическое обоснование, соответствующие расчетные соотношения и рекомендации по их практическому осуществлению на ЭВМ (организация процесса вычисле- ний, хранения данных и результатов в памяти ЭВМ и т.п.). Многообразие алгоритмов объясняется, с одной стороны, необходимостью обеспечить преподавателей достаточным набором задач для проведения заня- тий, а с другой стороны, желанием продемонстрировать различные подходы к решению задачи решения линейных систем и нахождения собственных значе- ний матриц. Алгоритмы требуют разных вычислительных затрат, имеют разную чувствительность к погрешностям во входных данных, их свойства по-разному зависят от числа обусловленности матрицы. ’’Самого лучшего” метода решения поставленной задачи не существует, и выбор алгоритма зависит от конкретной задачи. Этот выбор будет различным, например, для симметричных и несимме- тричных матриц, для трехдиагональных и заполненных матриц, и т.д. Подбор алгоритмов для Практикума диктовался, в основном, возможностью реализации их студентами при существующих ресурсах времени на ЭВМ, что привело к отказу от рассмотрения усложненных подходов. Часть описанных ал- горитмов вытеснена из широкой вычислительной практики более эффективными (и более сложными) алгоритмами, рассмотреть которые в курсе ’’Практикум на ЭВМ” не представляется возможным. Тем не менее, эти алгоритмы представля- ют интерес для решения определенного круга задач и включены в пособие. Форма отчетности студентов по Практикуму призвана стимулировать как развитие практических навыков решения математических задач с помощью ком- пьютера, так и создание определенного кругозора в области существующих ме- тодов решения поставленной задачи. Поэтому в рамках Практикума студентам предлагается как разработать программу на ЭВМ, реализующую заданный алго- ритм, так и письменно ответить хотя бы на половину вопросов из предложенного варианта, составленного из вопросов, приведенных в конце пособия. В основе настоящего пособия лежат материалы лекций, читавшихся авто- ром в течении 4-х лет в рамках факультативного курса ” Практикум на ЭВМ”. В электронном варианте оно уже более 5-ти лет используется при проведении занятий со студентами в дисплейном классе. Предложения, замечания и отмеченные опечатки просьба сообщать автору на кафедру вычислительной математики.
7 Глава I. ТОЧНЫЕ МЕТОДЫ РЕШЕНИЯ ЛИНЕЙНЫХ СИСТЕМ § 1. МАТРИЧНЫЕ НОРМЫ Обозначим через М.п пространство (кольцо) матриц размера п х п над полем С. Определение. Нормой на кольце Мп называется неотрицательный функ- ционал || • || : Мп —> R?j. , удовлетворяющий следующим условиям для всех А, В е М„ : 1) || А || = 0 & А = О, 2) || ХА || = |А| || А || для всех А е С, 3) || А + В || < || А || + || В ||, 4) || АВ || < || А || || В ||. Простейшие свойства нормы: 1) || 7 || > 1 (где I означает единичную матрицу). Действительно, ||1|| = \\1 • 1\\ < ||1|| ||1|| = ||1||2 . 2) И-1!! > рщ и, в частности, ЦА-1)! ||А|| > 1. Доказательство: ||1|| = ||АА~11| < ||А|| ||А-1|| . Поскольку М.п можно рассматривать как векторное пространство размер- ности п , то на нем можно вести векторные нормы, некоторые из которых ока- зываются матричными. Для таких норм в проверке нуждается только свойство 4) (поскольку первые три свойства составляют определение векторной нормы). / \ V2 / п \ Пример. ||А||е = ||(ay)z,j=i,...,n||E = I Е \aij|2 I является матричной нор- \м=1 / мой. Проверим свойство 4): \\АВ\\2Е = Е IЕ ^^|2 < Е (Е brt ( Е м2>) = i,j=l к=1 ^^=1 / \m=l / п п ( Е Ы2)( Е М2) = 1|А|Ы№- i,k=l j,m=l К.Ю.Богачев Точные методы решения линейных систем
§1. МАТРИЧНЫЕ НОРМЫ 8 Упражнение. Проверить, что выражение IIAIL = max |cij,l не является l<Z,J<n матричной нормой. Указание: рассмотреть матрицу 1 1 1 1 Упражнение. Проверить, что выражение ||А|| = тг, ||АН.^ является матрич- ной нормой. Определение. Пусть || • || есть векторная норма на пространств С". Опере- делим матричную норму || • || на Мп формулой ||А|| = max ||Ах||. Такая норма называется подчиненной, или операторной, или индуцированной по отношению к векторной норме 11 • 11. Проверим вначале, что max IIAxll = max ,, ,, . |H|=i" ||х|| Действительно, max Д = max || А тт^ттЦ < max ||Ау\\ = ||А||, ||х|| 11 ||Д|" - IMhi" .................. ||А|| = max ||Ах|| = max а#0 ||х|| Теорема 1. Так определенный функционал на Мп действительно является матричной нормой, которая обладает следующими свойствами: ||Ах|| < ||А|| ||х|| для всех А е Mn, х е С", 1И1 = ! Доказательство. Проверим выполнение свойств 1)-4) из определения ма- тричной нормы. 2 = max IIAxll > 0 ; |H|=i" 11 - 2) ||АА|| = max ||ААх|| = max |А| ||Ах|| = |А| max ||Ах|| = |А| ||А|| . 3) И + В\\ = max||(A + B)z|| = max ||Az + В х\\ < max(||Az|| + \\В х\\) < max ||А Д| + max ||Bz|| = ||A|| + ||B|| . ||ж||=1 ||ж||=1 4) ||AB|| = max 7 " " Ill'll И1 |R. max цвд| ||z|| IIAt/II \\B x max ,, ,, max ,, ,, 2/^0 \\y\\ x^O ||x|| Проверим выполнение дополнительных свойств этой нормы. К. Ю. Богачев Точные методы решения линейных систем
§1. МАТРИЧНЫЕ НОРМЫ 9 IIAII = max —п— . Следовательно, для всех х Е Сп —гг- < МН , т.е. ||Д| ||z|| - ||Ах||<||А|||И. Illll = max lllxll = max |Ы| = 1 . IHI=i" IHI=i Определение. Максимальной столбцовой нормой называется п max 52 \aij\. Лемма 1. Норма ЦЛ.Ц1 подчинена векторной норме ||a?||i = Ё |^г| i=l Доказательство. Надо проверить, что max = max IIT^IIi . Запи- шем матрицу через ее столбцы: А = [ai,..., ап\ , где aj = (aij,..., ап^ . Тогда ||Л||1 = max ||а, ||1 . С другой стороны, для х = (a?i,... ,хп¥ Е Сп 1<7<71 п п п IH^Ik = II Е < Е Ы ||«J111 < Е ы max ||а*||1 = ||z||i ||A||i. j=l i=l j=l k=l,...,n ||Ax||i Следовательно, max ||Tx||i = max n— < ЦЛЦ1 . Iklli=i" " ||z||i - 11 11 Если максимум max ||aj||i = M||i достигается при i = i0, то, выбрав x l<i<n равным ei0 - стандартному координатному орту, получаем max ||Az||i > ПЛеадПх = ||aio|| = ||A||i. IHIi=i п Отсюда вытекает требуемое равенство max 22 \аа\ = max IIЛх|h . Определение. Максимальной строчной нормой называется п IIЛМ = max 521^-1. 1<1<п . ' — J=1 Лемма 2. Норма МПоо подчинена векторной норме Н^Ноо = max |a?j| . i=l,...,n Задача. Доказать самостоятельно. Доказательство. Имеем для всех х Е Сп : IH^Iloo = max 152%^! < max 52 |«иI \xj\ < max 52 l«ul Halloo = MHoo 1И|оо- Ki<n 1<г<п ЕЕ 1<1<пЕЕ J=1 J=1 J=1 Следовательно, max M^lloo < Mll<x> |H|oo=l К.Ю. Богачев Точные методы решения линейных систем
§1. МАТРИЧНЫЕ НОРМЫ 10 Пусть максимум max 22 l^zy'l = ШНоо достигается при i = i0 : IIАЦ^ = П 22 |oj0j| . Рассмотрим вектор у = (у±,..., уп)* с компонентами 1=1 aipj I aipj I 1, если a,ioj ф 0, если aioj = 0. Тогда Цг/Hoo = 1, yjaioj = \aioj\, j = 1,...,п. Поэтому max ЦАжЦоо > ЦАт/Цоо = max | £ > ||ж||оо=1 1<1<П j=l I 52 aiojlJj\ = I 52 |аг01 11 = 52 |аг01 I = Halloo, 1=1 1=1 1=1 т.е. max ЦАхЦоо > ЦАЦоо . С учетом доказанного выше это означает требуемое |И|оо=1 равенство max ЦАхЦоо = ЦАЦоо . !И|оо = 1 Определение. Спектральной нормой называется || А||2 = тах{\/А : А собственное значение матрицы А*А}. (здесь А* означает матрицу, сопряженную к матрице А : А* = (А)* в комплекс- ном случае и транспонированную матрицу А* в вещественном случае). Отметим, что это определение корректно, т.е. указанные квадратные корни всегда суще- ствуют. Действительно, для всякого собственного значения А матрицы А*А и соответствующего ему собственного вектора х из равенства А*Ах = Хх выте- ||Ах||2 кает (А*Ах,х) = Х(х,х) , откуда А = —।—п— , и потому А е R, А > 0 (здесь 1И|2 (•, •) означает евклидово скалярное произведение в С" ). Лемма 3. Норма ||А||2 подчинена евклидовой векторной норме ||х||2 = (S Ы2)1/2 i=l Доказательство. Рассмотрим max ||Ах||2= max (Ах, Ах)1/>2 = max (А* Ах, х )1/12. |И|2=1" |И|2 = Р |И|2=Р Обозначим В = А*А. Матрица В самосопряжена (симметрична в вещественном случае) : В* = (А*А)* = А*(А*)* = А*А = В. Как показывается в курсе ли- нейной алгебры для матрицы В существует такая унитарная (ортогональная в вещественном случае) матрица U , что В = U*AU , где А = diag (А1;..., Ап), Xj - собственные значения матрицы В = А*А. Поэтому max ||Ах||2 = max ( U*AUx, х W2 = max (AUх, Ux W2. 1И|2 = 1" "2 1И|2 = Р ’ ’ |И|2 = Р ’ ’ К.Ю.Богачев Точные методы решения линейных систем
§1. МАТРИЧНЫЕ НОРМЫ 11 Поскольку матрица U~l = U* является унитарной (ортогональной в веществен- ном случае) и не изменяет евклидовой длины векторов : ||[7-1х||2 = ||а?||2 для всех х, то (заменяя в последнем неравенстве у = U х ) п max ||Лх||2 = max (Ay,у)1'2 = max(Л у, у)1'2 = тах(^Л7-|?//)1/2. 1И|2=1 |Щ-12/||2=1 ||z/||2 = l ||г/||2=1 ,=г Пусть А;о - максимальное из Aj . Тогда С другой стороны, если eJ0 есть jg-й координатный орт, то п п max ||Лх||2 = max (jjAj |?//)1/2 > (Е Xj км/)'72 = /Ч = Mlb- ||ж||2=1 ||г/||2=г • , • , v Из последних двух соотношений вытекает требуемое равенство max ||Лх||2 = ||Л||2. |И|2 = 1 Определение. Спектральным радиусом матрицы А называется р(А) = тах{ |А| : А — собственное значение матрицы А }. Лемма 4. Для всякой матрицы А Е Мп и всякой матричной нормы на Мп справедливо неравенство р(А) < ||Л|| . Доказательство. Пусть А - максимальное по модулю собственное значение матрицы А , т.е. |А| = р(А) , х - соответствующий собственный вектор, т.е. Ах = А х . Рассмотрим матрицу X Е Мп , все столбцы которой равны собственному вектору х . Тогда АХ = XX . Для всякой матричной нормы ||-|| имеем |А| ||Х|| = ||АX|| = ||ЛX|| < ||Л|| ||Х|| , следовательно, |А| = р(Л) < ||Л|| . Замечание 1. Если Л = Л* , то р(Л) = ||Л||2 . Это следует непосредственно из определения спектральной нормы и того, что собственные значения матрицы А* А = Л2 равны квадратам собственных значений матрицы Л . Определение. Унитарно инвариантной матричной нормой называется ма- тричная норма ||-|| , удовлетворяющая равенству ||Л|| = ||[7ЛУ|| для всех матриц Л Е Мп и всех унитарных матриц U, V Е Мп . Лемма 5. Спектральная норма является унитарно инвариантной. Доказательство. Пусть Л - произвольная матрица из M.n , U, V - произ- вольные унитарные матрицы. Собственные значения матрицы (ИЛУ)* (ИЛУ) = У*Л*П*ПЛУ = V-^U-HJAV = УХЛ*ЛУ те же, что и у матрицы А*А . Следовательно, спектральные нормы матриц UAV и Л совпадают. К. Ю. Богачев Точные методы решения линейных систем
§2. ОБРАТИМОСТЬ МАТРИЦЫ, БЛИЗКОЙ К ОБРАТИМОЙ МАТРИЦЕ 12 § 2. ОБРАТИМОСТЬ МАТРИЦЫ, БЛИЗКОЙ К ОБРАТИМОЙ МАТРИЦЕ Теорема 1. Пусть || • || - матричная норма на Мп . Если ||А|| < 1 , то 00 матрица I — А обратима, причем (I — А)-1 = £ Ак. k=Q оо Доказательство. Рассмотрим ряд Е Ак. Поскольку для всякого р > к=0 т+р т+р О || 22 Afc|| < Е ШН* ~0 при т —> оо , то последовательность частичных к=т к=т т сумм sm = Ак является последовательностью Коши. Так как в силу полноты к=0 Сп пространство М.п полно по норме || • ||, то определен предел В = lim sm = т—>оо оо оо 1 22 Ак , прием в силу непрерывности нормы ||В|| < 22 |Щр = ;-ГГТГГ Име- fc=o fc=o 1 — ||А|| ем: ВЦ — А) = 22 Ак(1 — А) = 22 Ак — 22 Ак = I . Аналогично проверяем к=0 к=0 к=1 (I — А)В = I. Следовательно, В = (I — А)-1 . Теорема 2. Пусть || • || - матричная норма на М.п , А - обратимая матри- ца. Если В Е Мп, ||В|| < .. .. , то матрица С = А + В обратима, причем 1И || С-1 = (А + В)”1 = Е (-Цк (А~х В)к А~б к=0 Доказательство. Рассмотрим матрицу D = А~ГС = А-ЦА+В) = 1+А~1В . Так как по условию ||А-1В|| < ||А-1|| ||В|| < 1 , то по предыдущей тео- оо реме существует матрица D~Y = Е (~ЦЦА^Вц , обратная к D. Рассмо- к=0 трим матрицу С = 2?-1А-1 и вычислим С С = 2?-1А-1(А + В) = + А~1В) = D~YD = I, СС = {A + B)D~lA~l = АА~ЦА + = A(I + A~1B)D~1A~1 = А А-1 = I. Следовательно, существует С-1 = С = D~1A~1 = Е (-ЦЦА^В^А-1 . к=0 § 3. ОШИБКИ В РЕШЕНИЯХ ЛИНЕЙНЫХ СИСТЕМ Пусть решается линейная система Ах = b, А Е Mn, b Е Сп . Пусть В- ал- горитм решения этой системы на идеальной вычислительной системе, так, что х = 13(А, б) - точное решение системы и потому х = 13(А, 6) - отображение на классе невырожденных матриц (х = А-1&). Пусть В - тот же алгоритм, реа- лизованный на реальной вычислительной системе. В результате его проведения получено приближенное решение х = Й (А, 6) . Определим матрицу А и вектор Ъ из условия х = В(А,6) (Ь = А-1х), т.е. х является точным решением системы К. Ю. Богачев Точные методы решения линейных систем
§3. ОШИБКИ В РЕШЕНИЯХ ЛИНЕЙНЫХ СИСТЕМ 13 Ах = b . Обозначим А = А + Е, b = b + е . Таким образом, точное решение х удовлетворяет системе А х = b , а приближенное решение х удовлетворяет системе (Л + Е)х = b + е . Пусть || • || - произвольная матричная норма, согласованная с векторной нор- мой || • || . Будем считать, что ошибка, вносимая в матрицу при проведении алгоритма, не очень велика: ||Е'|| < щ-1ц По теореме 2.2 отсюда следует, оо что матрица А + Е обратима и (Л + Б1)-1 = (~1)к (А-1 Е)к А-1 . Вычислим к=о погрешность х — х : х - х = А~1Ь - (Л + Е)~1(Ь + е) = (Л-1 - (Л + Е)~1)Ь - (Л + Е)~1е = - Е (—1')к(А~1Е')кА~1Ь — Е (-^(А^Е^А^е к=1 к=0 = - Е (-ly^A^E^x - Е (-ly^A^E^A^e. к=1 к=0 Следовательно, II* - *11 < ( Е И-^|р)||х|| + ( Е ||Л-^|р)||Л-1е||, к=1 к=0 II*-*11 < , 1~ И-М1 11*11 - 1 - ||л-^|| 1 - И-^И 11*11 Так как Ах = b , то ||&|| = ||Лх|| < ||Л|| ||х|| и 1 ИН 7]—7 < -77—7- . ПОЭТОМУ 11*11 " IH II*" *11 11*11 II*" *11 11*11 Определение. Числом обусловленности матрицы Л по отношению к ма- тричной норме || • || называется ||Л|| ||Л-11|, если Л невырождена, оо, если Л вырождена. к(Л) = С использованием этого обозначения последнее неравенство можно перепи- сать в виде II* - *11 < «(Л) /W , 11*11 кМ1иНи1 ням' К. Ю. Богачев Точные методы решения линейных систем
§3. ОШИБКИ В РЕШЕНИЯХ ЛИНЕЙНЫХ СИСТЕМ 14 Здесь —п—п— называется относительной погрешностью в решении х , 7—77 1Ы| ИН называется относительной погрешностью в матрице А , 7Ц7 называется от- IHI носителъной погрешностью в правой части b . Часто, чтобы оценить точность полученного приближенного решения х , вы- числяют вектор невязки г = b — Ах . Оценим относительную погрешность ре- шения через невязку г. х — х = А ГЬ — х = А 1(Ь — Ах) = А 1г, Пример. Рассмотрим линейную систему л ( 1 -1 \ , ( 1 \ Ах = I. х = о = .. . 1 — е \ 1 / Ее точное решение /1 + е-1/2\ ( £.-1/2 ) Тогда /_е-1/2\ I _е-1/2 ) Поэтому а) относительная б) относительная 1 \ р < I . Рассмотрим приближенное решение х вектор невязки г величина невязки величина ошибки ° А , ei/2 I > вектор ошибки х — х -И = O(s^ —> 0 (s —> 0); = О!--|,2| —> 00 (е —> 0); х Атах (А) Amin (А) Свойства числа обусловленности 1. к(А) > 1 . 2. «(А) = к(А-1) . 3. к(АВ) < к(А')к,(В') . Первые три свойства следуют непосредственно из определения числа обусло- вленности и основных свойств матричных норм. 4. Если А = А*, то по отношению к спектральной норме к (А) = где Атах (А) и Amjn (А) соответственно максимальное и минимальное по модулю собственные значения матрицы А. Доказательство. В силу замечания 1.1 (см. лемму 1.4) для самосопря- женных матриц ||А||2 = р(А) = |Атах(А)|, ЦА-1^ = /(А-1) = |Атах(А_1)| = |Ат|„(Л)|. Поэтому к(Л) = ||Л|| ЦА-Ч1 = . К. Ю. Богачев Точные методы решения линейных систем
§4. МЕТОД ГАУССА 15 Атах (А) A min (А) Атах (А) 5. Для всякой матрицы А Е Мп число обусловленности относительно любой матричной нормы к (А) > Доказательство вытекает из леммы 1.4: ||А|| > р(А) = |Атах(А)|, ptA-1) = |Атах(А-1)| = |Amin(A)|; поэтому ДА) = ||А|| ||А-1|| > 6. Для всякой матрицы А Е Мп и любых унитарных (ортогональных^ U, V Е Мп число обусловленности относительно спектральной нормы ДА) = ДиАУ). Это свойство непосредственно следует из леммы 1.5. 7. Для всякой невырожденной матрицы А Е М.п A min (А) матриц sup в Е Мп, В — вырожденная Доказательство. Покажем, что для всякой вырожденной матрицы В Е Мп справедливо неравенство ||А — В\\ > 1/||А-1||. Предположим, что это не так, т.е. существует вырожденная матрица В, такая, что для матрицы С = А — В выполнено ||(7|| < 1/||А-1||. Тогда по теореме 2.2 матрица А—С = А—(А—В) =В обратима, что противоречит вырожденности В. Таким образом, установлено, что для всякой вырожденной матрицы В ||А-1|| > 1/|| А — В\\. Следовательно, ДА) = ||А|| ||А-1|| > ЦАЦ/ЦА — В\\ для всякой вырожденной В Е Мп. Поскольку левая часть этого неравенства не зависит от В, то из него вытекает требуемое соотношение. § 4. МЕТОД ГАУССА §4.1. Алгоритм метода Гаусса Пусть требуется решить линейную систему А х = b, А Е Мп : + 012^2 + .. + <АтАп — bl (221^1 + ^22^2 + .. + fyinAn &2 (1) + 0/12^2 + .. + ^пп^п Ьп Метод Гаусса состоит в том, что элементарными преобразованиями над строками матрицы она приводится к треугольному виду с главной диагональю, состоящей из единичных элементов (прямой ход метода Гаусса); полученная система с тре- угольной матрицей решается в явном виде (обратный ход метода Гаусса). Предположим, что ац ф 0. Поделив первое уравнение системы (1) на ац, перепишем его в виде Х1 + С12Х2 + . . . + С1пХп = У!, (2) К. Ю. Богачев Точные методы решения линейных систем
§4. МЕТОД ГАУССА 16 где cij = aij/ац, j = 2,...,п, у\ = bi/ац. Умножим уравнение (2) на ац и вычтем его из г-го уравнения системы (1) (г = 2,... , п). В результате система (1) примет вид Х1 + С12х2 + . .. + Спхп — У1 (1) а22'х2 + . .. + (1) ^2п хп — Ь? . (з) (1) аП2х2 + . .. + т иПП~"П = № где off = ац — cijan, = bi — угац, i,j = 2,...,n. Далее этот процесс применяется к подматрице = (a^)i;J=2,...,n G Mn_i. Пусть сделаны к — 1, к = 1,...,п шагов этого процесса, т.е. система (1) преобразована к виду Xi 4- с12х2 + .. 4" с1,к-1хк-1 + С,кхк + + Спхп = У1 Х2 + .. 4- С2,к-1Хк-1 + С2,кхк + + ^2пХп = У2 хк — 1 + Ск—1,кхк + + Ск — 1,пХп = Ук-1 (4) (к-1) ак,к Хк + + (к-1) ак,п Хп — °к (£-1) °>п,к Хк + + п(к—1) ™ = Предположим, что а^к ф 0. Поделив к-е уравнение системы (4) на а^кк перепишем его в виде Хк 4“ Ск,к+1Тк+1 4“ 4“ Скп^п — Ук? (5) где ckj = “fen ’ j = А: + 1,..., п, ук = . (6) акк акк Умножим уравнение (5) на а-к и вычтем его из г-го уравнения системы (4) (i = к + 1,... , п). В результате система (4) примет вид Xi+c12x2 + ... +с1;к_1хк_1+ с1;кхк + с1;к+1хк+1 +. Х2 +... +c2,k-iXk-i+ C2jkXk + С2,к+]Хк+\ +. Хк — 1 4- Ск—1,кХк 4- Ck—l,k+lXk-ll 4“ Xk 4" Ck,k+lXk+l 4" (fc) , ДДк+1хк+1 + . 4- CirAn У1 4" c2nxn = У2 4" Ck—l,nxn — Ук—1 4" Ck,nxn — У к , (fc) _____ I (fc) + ак+1,пХп~ ^k+l (7) an,k+ixk+i + + a^nxn =b£> К.Ю.Богачев Точные методы решения линейных систем
§4. МЕТОД ГАУССА 17 где aij=aij aik ckj, ЬД = Ь\ -а\к 'ук, г, j = к + 1,... ,п. (8) Выражения (6), (8) являются формулами перехода от системы (4) к системе (7). Если обозначить off = ац, = bi, i,j = l,...,n,TO переход от системы (1) к системе (3) будет осуществляться по тем же формулам при к = 1. После проведения вычислений по формулам (6), (8) при к = 1,..., п (которые составляют прямой ход метода Гаусса) система (1) примет вид х1 + С12х2 + + С1пхп-1 + с1пхп — У1 х2 + . . . + С2пхп-1 + С2пхп = У2 \ \ (9) хп—1 4“ Сп—1,пхп — Уп—1 хп Уп Решение системы (9) с треугольной матрицей может быть найдено непо- средственно (методом последовательного исключения неизвестных в порядке хп> хп—1> , Xi ). п Хп = уп, Xi = yi- СИХА г = п-1,...,1. (10) j=z+l Вычисления по формулам (10) составляют обратный ход метода Гаусса. §4.2. Оценка количества арифметических операций в методе Гаусса Здесь и далее при оценке количества арифметических операций мы будем отдельно находить количество аддитивных операций (сложений и вычитаний) и количество мультипликативных операций (умножений и делений). Для упроще- ния выкладок мы будем находить только главный член асимптотики количества операций при п —> оо . 1. На вычисление ckj при j = к + 1,... ,п, к = 1,..., п по формулам (6) требуется УД=Г (п — к) = 1)/2 = О(п2) (п —> оо) операций деления. 2. На вычисление off при i,j = к + 1,..., п, к = 1,..., п по формулам (8) требуется УД=Дп — к)2 = 1ДД)1 i2 = (п ~ l)n(2n — 1)/6 = n3/3 + О(п2) (п —> оо) операций умножения и столько же операций вычитания. Итак, на вычисление коэффициентов ckj, j = к + 1,..., п, к = системы (9) требуется О(п2) + п3/3 + О(п2) = п3/3 + О(п2) (п —> оо) мультипли- кативных операций и столько же аддитивных операций. 3. На вычисление ук при к = 1,..., п по формулам (6) требуется п операций деления. 4. На вычисление при i = к + 1,... ,п, к = 1,... ,п по формулам (8) тре- буется УД=Дп — к) = ЕХл)1 = п(п~ 1)/2 = О(п2) (п —> оо) операций умножения и столько же операций вычитания. К. Ю. Богачев Точные методы решения линейных систем
§4. МЕТОД ГАУССА 18 Итак, на вычисление правых частей ук, к = 1,...,п системы (9) требу- ется 0(п2) (п —> оо) мультипликативных операций и столько же аддитивных операций. Таким образом, прямой ход метода Гаусса требует п3/3 + О(п2) + О(п2) = п3/3 + О(п2) (п —> оо) мультипликативных операций и столько же аддитивных операций. 5. На вычисление решения по формулам (10) (т.е. на проведение обратного хода метода Гаусса) требуется ^"=/(71—г) = i = n(n—1)/2 = O(n2) (n —> оо) операций умножения и столько же операций вычитания. Следовательно, метод Гаусса требует п3/3+О(п2)+О(п2) = п3/3+О(п2) (п —> оо) мультипликативных операций и столько же аддитивных операций. Всего: (2/3) п3 + О(п2) (п —> оо) арифметических операций. § 4.3. Представление метода Гаусса в виде последовательности элементарных преобразований Преобразование системы, задаваемое формулами (6), эквивалентно умноже- нию матрицы системы слева на матрицу Dk = diag [ 1,.„,1, , 1,..., 1 ], к-1 (где diag [ ф,..., dn ] означает диагональную матрицу с элементами ф,..., dn на главной диагонали). Преобразование системы, задаваемое формулами (8), эквивалентно умноже- нию матрицы системы слева на матрицу / 1 \ 1 (не обозначенные элементы матрицы Lk равны нулю). Следовательно, прямой ход метода Гаусса эквивалентен умножению матрицы системы (1) последовательно на матрицы LkDk, к = 1,... ,п : LnDn •... • LiDi • Ах = LnDn •... • БДД • Ь. (11) причем матрица U = LnDn •... • БДД • А есть матрица системы (9), т.е. являет- ся верхней треугольной с единицами на главной диагонали. Обозначим через LT (п) группу невырожденных верхних треугольных матриц. Тогда для всех к = 1,..., п Dk, Lk Е LT (п) и потому матрица Б = LnDn ... LiDi Е LT (n). К. Ю. Богачев Точные методы решения линейных систем
§4. МЕТОД ГАУССА 19 Из (11) получаем: U = LA, откуда А = LU , где L = L~Y Е LT (n), U верх- няя треугольная с единицами на главной диагонали. Полученное представление матрицы А называется LU -разложением. Итак, показано, что метод Гаусса эквивалентен построению LU-разложения. Знание LU-разложения матрицы А может быть полезно, например, в сле- дующей ситуации. Пусть требуется решить ряд систем вида Ахт = Ьт, т = 1,... ,М с одной и той же матрицей А и разными правыми частями Ьт. Приме- няя М раз метод Гаусса это можно сделать за (2/3) М п3 + О(М п2) (п —> оо) арифметических операций. Предположим, что нам известно LU-разложение ма- трицы А : А = LU . Тогда решение каждой из систем Ахт = Ьт может быть сведено к решению двух систем Lym = bm, Uxm = ут с треугольными матрица- ми. Решение системы с треугольной матрицей осуществляется обратным ходом метода Гаусса за О(п2) (п —> оо) арифметических операций. Следовательно, если LU-разложение матрицы А уже построено и на это построение потребовалось d(n) арифметических операций, то решение М систем с той же матрицей А по- требует d(n) + О (Мп2) (п —> оо) арифметических операций. Подчеркнем, что число d(n) не зависит от М. Сейчас мы построим алгоритм для получения LU- разложения и покажем, что d(n) = (2/3)п3 + О(п2) (п —> оо) (т.е. равно числу операций, необходимых для проведения метода Гаусса). § 4.4. Алгоритм построения LU-разложения Пусть требуется найти нижнюю треугольную матрицу L = и верхнюю треугольную матрицу U = (ujj) с единицами на главной диагонали такую, что А = LU, т.е. п ) lij Ujk Uik, Ъ, к 1, . . , П. (12) J=1 Поскольку ly = 0 при i < j, Ujk = 0 при j > к, Ujj = 1, то (12) есть система из п2 уравнений относительно п(п + 1)/2 неизвестных 1^, i > j и п(п — 1)/2 неизвестных Ujk, j < к, всего п(п + 1)/2 + п(п — 1)/2 = п2 неизвестных. По- лучим формулы для решения системы (12), которые и составляют алгоритм нахождения LU-разложения. В силу lij = 0 при i < j, Ujk = 0 при j > к сумма в (12) имеет вид min{z,fc} ) lij Ujk — Uik, i, к — 1,..., n, j=l ИЛИ к 52 lij Ujk Uik, j=l i 52 lij Ujk — Uik, . j=L к < i, i,k = 1,... ,n, к > i, i,k = 1,... ,n. К.Ю.Богачев Точные методы решения линейных систем
§4. МЕТОД ГАУССА 20 Выделим в первой из этих сумм отдельно случай к = 1, а во второй - случай i = 1, и учтем, что икк = 1 для всех к = 1,..., п, hl — к-1 52 hj U jk “1“ hk Тк > L j=1 hi Uik = flit, i—1 52 hj l^jk “1“ hi 1Ак — Щк > L L j=l Перегруппируем эти формулы: 1 < к < i, i,k = 2,... ,n, к = 2,... ,n, к > i > 1, i, к = 2,..., n. 1ц -- Иц, Uik = aik/hi. к = 2,... ,n, 1 < к <i, к > i > 1, (13) i, к = 2,..., n, i,k = 2,... ,n. Процесс вычислений по этим формулам строится следующим образом: вначале по первой из формул (13) вычисляются неизвестные элементы первого столбца матрицы L: hi, i = 1,... ,п, затем по второй из формул (13) вычисляются неиз- вестные элементы первой строки матрицы U: Uik, к = 2,... ,п (напомним, эле- мент известен, он равен 1). Далее в вычислениях участвуют только третья и четвертая из формул (13). По третьей формуле (13) вычисляются неизвестные элементы второго столбца матрицы L: /й, i = 2,... ,п (напомним, /12 = 0, так как L -нижняя треугольная) ^2 — hl ^12> — 2, . . . ,71. По четвертой формуле (13) вычисляются неизвестные элементы второй стро- ки матрицы U: U2k, к = 3,...,п (напомним, 7/21 = 0, так как U -верхняя треугольная, 7/22 = 1, так как U имеет единичную главную диагональ) U2k = («22: — hl Ulk)/h,2, к = 3, . . . ,71. Затем по третьей формуле (13) вычисляются неизвестные элементы третьего столбца матрицы L: hz, i = 3,... ,п, а по четвертой формуле (13) вычисляются неизвестные элементы третьей строки матрицы U: 7/3^, к = 4,..., п и так далее. Замечание 1. Организация хранения матриц L и U в памяти. Форму- лы (13) таковы, что при вычислении элемента hj или иц используются значения элемента и вычисленных ранее элементов lkm, т < j и икт, к < i. Это позво- ляет хранить нижнюю треугольную матрицу L на месте нижнего треугольника матрицы A: hj = aij, i > j, = вернюю треугольную матрицу U (без единичной главной диагонали) - на месте верхнего треугольника матрицы ^4. Uij = dij, i <Z j', i, j — 1,..., 71. К.Ю. Богачев Точные методы решения линейных систем
§4. МЕТОД ГАУССА 21 § 4.5. Оценка количества арифметических операций в алгоритме построения LU-разложения 1. При фиксированном к = 1,...,п вычисление элементов для всех i = к,... ,п по третьей формуле (13) требует £)"=fc(A; ~ 1) = (п — к + Г)(к — Г) мультипликативных и столько же аддитивных операций. Следовательно, вычи- сление всех элементов матрицы L требует УДдДп — к + 1)(к — 1) = пУД=1(к — СЛсНИс JjCtzA. ^JlclVlcH±Ur> IVIcl-L]Лт1Дг>1 rjJcUj'Cl / -£ \ IL rv “1“ -L J \Jv -L J — IL / 1) - - l)2 = = n2(n - l)/2 - (n - l)n(2n - l)/6 = /о _ ,„3 /о , _ эт3 M TI n3/2 — n3/3 + O(n2) = n3/6 + O(n2) (n —> оо) мультипликативных и столько же аддитивных операций. 2. При фиксированном i = 1,...,п вычисление элементов для всех к = i + 1,... ,п по четвертой формуле (13) требует ТлД+Д = (п — муль- типликативных и 22fc=j+i(z — 1) = (п — ?)(? — 1) аддитивных операций. Сле- довательно, вычисление всех элементов матрицы U требует УД=Дп — i)i = п2(п + 1)/2 — п(п + 1)(2п + 1)/6 = п3/6 + О(п2) (п —> оо) мультипликатив- ных и £)"=1(n — W — 1) = п2(п — 1)/2 — п(п + 1)(2п + 1)/6 + п(п + 1)/2 = п3/6 + О(п2) (п —> оо) аддитивных операций. Таким образом, алгоритм построения LU-разложения требует для своего проведения выполнения п3/3 + О(п2) (п —> оо) мультипликативных и столько же аддитивных операций, а в сумме — (2/3) п3+О(п2) (п —> оо) арифметических операций. §4.6. Осуществимость метода Гаусса Теорема 1. Метод Гаусса осуществим (т.е. возможно LU-разложение) тогда и только тогда, когда для всех k = 1,... ,п ее главные угловые миноры det Ак ф 0 , где -А-к — < <211 <221 <212 <222 а1к <Ек \ <2fcl <2/с2 <2/с/с / — главные угловые подматрицы матрицы А. Доказательство. Можно показать (мы этого делать не будем), что если det Ак ф 0 для всех к = 1,... ,п, то существует и единственно LU-разложение матрицы А. Обозначим через Lk и Uk главные угловые подматрицы матриц L и U. Так как L - нижняя треугольная, a U - верхняя треугольная матрицы, и А = LU, то Ак = LkUk. Следовательно, det Ад, = det Lk det Uk. Но матрица U -верхняя треугольная с 1 на главной диагонали, поэтому det Uk = 1 для всех к = 1,..., п. Значит, det Ак = det Lk. Матрица Lk -нижняя треугольная, поэтому det Lk = /и ... 1кк. Следовательно, det Ак — 1ц 1кк Пусть для всех к = 1,...,п det Ад, 0. Тогда 1ц = det Ах 0, 1кк = det Ак/det Ак_{ / 0 ив формулах (13) возможно осуществить деление на 1ц, i = К.Ю.Богачев Точные методы решения линейных систем
§5. МЕТОДЫ ДЛЯ ЛЕНТОЧНЫХ МАТРИЦ 22 1,..., п. Следовательно, осуществим алгорим построения LU-разложения, а зна- чит, и метод Гаусса. Пусть осуществим алгорим построения LU-разложения, т.е. в формулах (13) возможно осуществить деление на 1ц, i = 1,...,п. Следовательно, для всех i = 1,..., п 1ц ф 0 и потому det Aj. = 1ц ... Ikk ф 0 для всех к = 1,..., п. § 5. МЕТОДЫ ПОСЛЕДОВАТЕЛЬНОГО ИСКЛЮЧЕНИЯ НЕИЗВЕСТНЫХ ДЛЯ ЛЕНТОЧНЫХ МАТРИЦ Определение. Матрица А Е Мп называется ленточной, если = 0 при i — j > ki либо j — i > k2. Величина ki + к2 + 1 называется шириной ленты. Если к]_ = к2 = 1, то матрица называется трехдиагональной. § 5.1. Метод Гаусса для ленточных матриц Расчетные формулы метода Гаусса (4.6), (4.8), (4.10) остаются справедливы- ми и для ленточных матриц, но объем вычислений по ним может быть сокращен при учете структуры матрицы А. В формулах прямого хода (4.6), (4.8) вычи- сления надо вести для j = к + 1,..., к + к2, i = к + 1,... ,к + к±. Ширина ленты системы (4.9), получающейся после прямого хода, равна к2 + 1, поэтому в формуле (4.10) обратного хода метода Гаусса надо учитывать только к2 + 1 слагаемых. Аналогично тому, как это было сделано выше, можно подсчитать, что 1. На вычисление с^- при j = к + 1,... ,к + к2, к = 1,... ,п по формулам (4.6) требуется пк2 + 0(1) операций деления. 2. На вычисление при i = к + 1,..., к+Ц, j = к+1,..., к+к2, к = 1,..., п по формулам (4.8) требуется nkik2 + 0(1) операций умножения и столько же операций вычитания. Итак, на вычисление коэффициентов с^-, j = к + 1,..., к + к2, к = 1,... ,п системы (4.9) требуется n(ki к2 + к2) + 0(1) мультипликативных и столько же аддитивных операций. 3. На вычисление ук при к = 1,... ,п по формулам (4.6) требуется п опера- ций деления. 4. На вычисление при i = к + 1,... ,к + Ц, к = 1,... ,п по формулам (4.8) требуется пЦ + 0(1) операций умножения и столько же операций вычитания. Итак, на вычисление правых частей ук, к = 1,... ,п системы (4.9) требуется n(ki + 1) мультипликативных и столько же аддитивных операций. Таким образом, прямой ход метода Гаусса требует n(ki к2 + Ц + к2 +1) муль- типликативных операций и столько же аддитивных операций. 5. На вычисление решения по формулам (4.10) (т.е. на проведение обратного хода метода Гаусса) требуется пк2 + 0(1) операций умножения и столько же операций вычитания. К. Ю. Богачев Точные методы решения линейных систем
§5. МЕТОДЫ ДЛЯ ЛЕНТОЧНЫХ МАТРИЦ 23 Следовательно, метод Гаусса требует n(ki кд + Ц + 2 /с2 + 1) мультипликатив- ных операций и столько же аддитивных операций. Всего: 2п(к\ кд + Ц + 2 /с2 + 1) арифметических операций. Аналогичное сокращение вычислительной работы может быть произведено для алгоритма LU-разложения. § 5.2. Алгоритм LU-разложения для трехдиагональных матриц Пусть требуется трехдиагональную матрицу вида (1) представить в виде А = LU, где ^п— 1 / и2 1 W1 1 В этом случае формулы (4.13) алгоритма построения LU-разложения могут быть получены путем непосредственного перемножения матриц L и U и ре- шения получающихся уравнений: Zi — йх, их — Сх//х Ах = Д, /2 = а2 — AiMi, Ау — ф, гг+1 — ^г+1 и2 — С2//2 (3) Ауг—2 — dn—2, п—1— ^п—1 Xi—2^n—2i 'U'n—l— Cn—l/l'n—l Ап—1 dn~i п — Ayj—iUyj—i Построение LU-разложения по этим формулам требует п—1 аддитивных и 2(п — 1) мультипликативных операций. Решение линейной системы Ах = b может быть осуществлено следующим образом: 1. Вначале строится LH-разложение матрицы А по формулам (3), на это требуется п — 1 аддитивных и 2(п — 1) мультипликативных операций. К. Ю. Богачев Точные методы решения линейных систем
§5. МЕТОДЫ ДЛЯ ЛЕНТОЧНЫХ МАТРИЦ 24 2. Затем находится решение у линейной системы Ly = b путем последова- тельного исключения неизвестных, начиная с первого уравнения: yi = b1/h, yi = (bi - Xi-iyi-i)Щ г = 2,...,п. (4) На этом этапе требуется произвести п — 1 аддитивных и 2(п — 1) + 1 мульти- пликативных операций. 3. Искомый вектор х находится как решение линейной системы U х = у путем последовательного исключения неизвестных, начиная с последнего урав- нения: Хп = уп, Xi = yi - UiXi+1, г = п — 1,... ,1. (5) На этом этапе требуется произвести п — 1 аддитивных и п — 1 мультипликатив- ных операций. Складывая оценки трудоемкости на каждом шаге, находим, что для осуще- ствления алгоритма требуется произвести 3(п — 1) аддитивных и 5(п — 1) + 1 мультипликативных операций. Замечание 1. Хранение в памяти ЭВМ матриц A, L и U. Матрицу вида (1) в памяти ЭВМ обычно не хранят. Вместо этого запоминают вектора а = (cii,..., ап)*, с = (ci,..., сп_1)*, d = (d±,..., . Аналогично, вместо ма- трицы L хранятся вектора I = (Ц,..., /„)*, А = (А1;..., Ara_i)* , а вместо матрицы U - вектор и = («1,..., Wn-i)* Как и в обычном алгоритме LU-разложения, ма- трицы L и U можно хранить на месте матрицы А : вектор I - на месте вектора а , вектор А - на месте d , и - на месте с. Замечание 2. Вспомогательный вектор у в приведенном выше алгоритме решения линейной системы может хранится на месте вектора х. Это следует из формул (4), (5), которые можно записать в виде = ЬДЦ Xi = (bi-Xi-iXi-J/li, г = 2,...,п, Xi\= Xi~UiXi+1, i = n-1,..., 1. §5.3. Метод прогонки для трехдиагональных матриц Пусть требуется трехдиагональную матрицу А вида (1) представить в виде А = LU, где К. Ю. Богачев Точные методы решения линейных систем
§5. МЕТОДЫ ДЛЯ ЛЕНТОЧНЫХ МАТРИЦ 25 В отличие от LU-разложения, это представление не единственно. Перемножая матрицы L и U, находим уравнения для определения коэффициентов Ц, Vj, щ : llVi = Ср, liUi = Ci Vj—1 — ф—i, i -|- IjVj — Ср, IjUi — Cj, i — 2, . . . , 71 1 (6) ^n— 1— dn-1, Un—i -p In^n— ^n- Число уравнений в этой системе, равное 2 + 3(п — 2) + 2 = Зп — 2, на 1 меньше числа неизвестных li,Vj,Uj . Перепишем (6) в виде Vi = di, = tH, liiii= Ci di, Hi—i "p liVi Цщ C^, 7 2, . . . , 71 1 Uyi—1 H- lnTn= ^n- Отсюда получаем расчетные формулы: Vi= di, li =ai/vi, Ui= Ci/li Vi — di, li — (cp Ui—i)j V^ Ui — Ci I'li) 7 — 2, . . . , 71 1 (7) InTn— On Un—1- Из последнего уравнения в (7) мы можем определить только произведение lnvn. Зафиксировав один из параметров 1п или vn, мы определим второй. Мы бу- дем считать, что vn = 1 . В этом случае, количество арифметических операций, необходимое для осуществления разложения по формулам (7) равно количе- ству арифметических операций, необходимому для осуществления разложения по формулам (3). Решение линейной системы Ах = b может быть осуществлено следующим образом: 1. Вначале строится LH-разложение матрицы А по формулам (7), на это требуется п — 1 аддитивных и 2(тг — 1) мультипликативных операций. 2. Затем находится решение у линейной системы Ly = b путем последова- тельного исключения неизвестных, начиная с первого уравнения: yi = bi/h, yi = {bi-yi-i^/li, г = 2,...,п. (8) На этом этапе требуется произвести п — 1 аддитивных и (п — 1) + 1 мультипли- кативных операций. 3. Искомый вектор х находится как решение линейной системы U х = у путем последовательного исключения неизвестных, начиная с последнего урав- нения: хп = Уп/г>п, Xi = {yi - UiXi+i)/vi, i = n - 1,..., 1. (9) На этом этапе требуется произвести п — 1 аддитивных и 2(тг — 1) мультиплика- тивных операций (с учетом vn = 1). Складывая оценки трудоемкости на каждом шаге, находим, что для осуще- ствления алгоритма требуется произвести 3{п — 1) аддитивных и 5{п — 1) + 1 мультипликативных операций. К. Ю. Богачев Точные методы решения линейных систем
§6. ЗАДАЧА ОБРАЩЕНИЯ МАТРИЦЫ 26 Замечание 3. Хранение в памяти ЭВМ матриц A, L и U осуществля- ется так, как описано в Замечании 1. Вместо матрицы А запоминают вектора а = (а1;..., ап)*, с = (с1;..., сп_1)*, d = (d±,..., dn-Cf , вместо матрицы L - вектор I = Д,... ,1пУ , а вместо матрицы U - вектора v = (щ,... ,гпУ,и = («1,..., ип-Щ . Аналогично алгоритму LU-разложения, матрицы L и U можно хранить на месте матрицы А : вектор I - на месте вектора а , вектор v - на месте d (последняя, не определяемая однозначно компонента vn вектора v не хранится; ее можно считать равной 1), и - на месте с. Замечание 4. Вспомогательный вектор у в приведенном выше алгоритме решения линейной системы может хранится на месте вектора х. Это следует из формул (8), (9), которые можно записать в виде = br/h, Xi = (bi-x^/li, г = 2,...,п, Xi'.= (xi-UiXi+^/vi, i = n-1,..., 1. (здесь считается vn = 1 .) § 6. ЗАДАЧА ОБРАЩЕНИЯ МАТРИЦЫ Рассмотрим задачу нахождения матрицы, обратной к данной. Случай произвольного алгоритма. Пусть В - некоторый алгоритм реше- ния линейных систем вида Ах = b , так, что х = В(А, 6). Тогда j-й столбец Xj матрицы А-1 равен Xj = В(А, е7), где е;- = (0,..., 0,1, 0,..., 0)* есть j-й j-i орт стандартного базиса. Если алгоритм В требует для своего проведения d(n) арифметических операций, то этот способ нахождения обратной матрицы потре- бует nd(n) арифметических операций. Например, если В - это метод Гаусса, то потребуется 2/3 п4 + О(п3) арифметических операций. Случай специального алгоритма. Многие алгоритмы решения линейных систем (в частности, все алгоритмы, рассматриваемые нами) обладают следу- ющим свойством: алгоритм (по крайней мере его самая трудоемкая с вычисли- тельной точки зрения часть) состоит в проведении над системой преобразований, которые выполняются над матрицей системы и правой частью независимо. Эта особенность позволяет вместо правой части - вектора b - рассматривать набор правых частей, т.е. матрицу В. Преобразования алгоритма выполняются над матрицей системы и набором правых частей. Таким образом, такой алгоритм решения системы Ах = b может быть преобразован в алгоритм решения ма- тричного уравнения АХ = В, где X, В - п х п матрицы. Обычно алгоритм решения системы Ах = b требует О(п3) арифметических операций для про- ведения преобразований над матрицей и О(п2) арифметических операций для проведения преобразований над правой частью. Поэтому алгоритм решения ма- тричной системы АХ = В требует О(п3) + п • О(п2) = О(п3) арифметических операций. К. Ю. Богачев Точные методы решения линейных систем
§7. МЕТОД ГАУССА С ВЫБОРОМ ГЛАВНОГО ЭЛЕМЕНТА 27 Использование LU-разложения для обращения матрицы. Пусть для матрицы А возможно осуществить LU-разложение. Действительно, если А = LU, то А-1 = U~lL~l. Матрицы, обратные к L и U, строятся, например, описан- ным выше способом. Поскольку системы с матрицами L и U решаются методом последовательного исключения неизвестных за соответственно п(п — 1) + п = п2 + О(п) и п(п — 1) = п2 + О(п) действий (см. формулы (4.10)), то матрицы £7-1 и L~l могут быть вычислены с затратой п3 + О(п2) арифметических операций. Следовательно, для вычисления обратной матрицы требуется: 2/3 п3 + О(п2) арифметических операций для построения LU-разложения, п3 + О(п2) ариф- метических операций для вычисления U~l и L~l, п3 + О(п2) арифметических операций для вычисления А-1 = всего: 8/3 п3 + О(п2) арифметических операций. § 7. МЕТОД ГАУССА С ВЫБОРОМ ГЛАВНОГО ЭЛЕМЕНТА Теорема 4.1 показывает, что метод Гаусса в изложенном выше виде применим не ко всем невырожденным матрицам. Например, если в системе (4.1) ап = 0, то нельзя осуществить первый же шаг алгоритма. Модернизируем алгоритм следующим образом. Уравнения в системе (4.1) равноправны, мы можем их занумеровать в произ- вольном порядке. Присвоим номер 1 тому уравнению, в котором коэффициент при Xi отличен от 0. Если такого уравнения не нашлось, то матрица А имеет нулевой первый столбец, т.е. вырождена. После этой перенумерации уравнений мы сделаем первый шаг метода Гаусса, т.е. перейдем от системы (4.1) к систе- ме (4.3). Далее в подматрице А^ = (a^)j,j=2,...,n £ Mn_! присвоим номер 2 тому уравнению, в котором коэффициент при х-2 отличен от 0, и сделаем следующий шаг метода Гаусса. Затем этот процесс применяется к подматрице А^ 6 Мп-2 и так далее. Если уравнений, в которых коэффициент при х2 отличен от 0, несколько, то с вычислительной точки зрения не безразлично, какое из этих уравнений получит номер 1. Пусть погрешность в элементе а^ матрицы А равна , т.е. вместо точной матрицы А рассматривается матрица А, элементы которой содержат вычислительные погрешности: йц = . Для простоты будем считать, что элементы первого столбца известны точно: = 0, i = 1,... ,п. Из формул для элементов матрицы А^1) (см. (4.8), (4.6)): ~(1) _ ~ л ~ @Tj ~ ~ ~ Яц ___ . / . \ a^j (Lij CijOiiY (Lij ~ ЯЦ (Lij ~ (Lij I I ) du Й11 du (1) . (1) • о — I- + ^ij i A — 2, . . . , П, «II du где (1) Яц • о £ij=£ij-£ij—, г,] = 2,...,п, (1) «11 К.Ю. Богачев Точные методы решения линейных систем
§7. МЕТОД ГАУССА С ВЫБОРОМ ГЛАВНОГО ЭЛЕМЕНТА 28 Эти равенства показывают, как преобразуется погрешность после шага алго- ритма. Из соотношений (1) вытекает, что если отношение очень велико, то ан вычислительная погрешность, вносимая на шаге алгоритма, может быть недо- пустимо большой. Из (1) следует, что погрешность будет наименьшей, если модуль отношения наименьший из возможных. Это будет в том случае, если ап - НаибоЛЬ- ^П ший по модулю элемент в первом столбце. Поэтому описанный выше алгоритм преобразуем к следующему виду. Присвоим номер 1 тому уравнению, в котором коэффициент при Xi наиболь- ший по модулю. Этот коэффициент отличен от нуля, так как противное означало бы, что матрица А имеет нулевой первый столбец, т.е. вырождена. После этой перенумерации уравнений мы сделаем первый шаг метода Гаусса, т.е. перейдем от системы (4.1) к системе (4.3). Далее в подматрице = (a^)j,j=2,...,n £ Mn_i присвоим номер 2 тому уравнению, в котором коэффициент при х? наиболь- ший по модулю, и сделаем следующий шаг метода Гаусса. Затем этот процесс применяется к подматрице Е Мп_2 и так далее. Этот алгоритм называется методом Гаусса с выбором главного элемента по столбцу. Можно преобразовать метод Гаусса и по-другому. Неизвестные в системе (4.1) равноправны, мы можем их занумеровать в произвольном порядке. Присвоим номер 1 той неизвестной, при которой коэффициент в первой строке отличен от 0. Если такой неизвестной не нашлось, то матрица А имеет нулевую пер- вую строку, т.е. вырождена. После этой перенумерации неизвестных мы сделаем первый шаг метода Гаусса, т.е. перейдем от системы (4.1) к системе (4.3). Далее в подматрице Л/1) = (a^)i;J=2,...,n G Mn_i присвоим номер 2 той неизвестной, при которой коэффициент в первой строке матрицы Л/1) (т.е. во второй строке матрицы Л) отличен от 0, и сделаем следующий шаг метода Гаусса. Затем этот процесс применяется к подматрице Е Мп_2 и так далее. Если неизвестных, при которых коэффициент отличен от 0, несколько, то с вычислительной точки зрения не безразлично, какая из них получит номер 1. Рассуждениями, аналогичными вышеприведенным, можно установить, что погрешность, вносимая на шаге алгоритма, будет минимальной, если если ац - наибольший по модулю элемент в первой строке. Поэтому описанный выше алгоритм преобразуем к следующему виду. Присвоим номер 1 той неизвестной, при которой коэффициент в первой строке наибольший по модулю. Этот коэффициент отличен от нуля, так как противное означало бы, что матрица А имеет нулевую первую строку, т.е. вы- рождена. После этой перенумерации неизвестных мы сделаем первый шаг ме- тода Гаусса, т.е. перейдем от системы (4.1) к системе (4.3). Далее в подматрице = (41})ь2=2,.,п е м„_1 присвоим номер 2 той неизвестной, при которой коэффициент в первой строке матрицы Л^1) (т.е. во второй строке матрицы Л) наибольший по модулю, и сделаем следующий шаг метода Гаусса. Затем этот процесс применяется к подматрице Е Мп_2 и так далее. Этот алгоритм К. Ю. Богачев Точные методы решения линейных систем
§7. МЕТОД ГАУССА С ВЫБОРОМ ГЛАВНОГО ЭЛЕМЕНТА 29 называется методом Гаусса с выбором главного элемента по строке. Для уменьшения вычислительной погрешности используют следующую ком- бинацию приведенных выше методов. В качестве ац выбирается элемент, имею- щий наибольший модуль среди всех элементов матрицы. Если этот элемент есть ац, то меняются номера у 1-й и z-й строк и у 1-го и j-ro столбцов. После этой перенумерации уравнений и неизвестных делается первый шаг метода Гаусса, т.е. осуществляется переход от системы (4.1) к системе (4.3). Далее в подматри- це А^ = (ajp)i;J=2,...,n Е выбирается элемент ац с наибольшим модулем среди всех элементов матрицы А^1) и меняются номера у 1-й и г-й строк и у 1-го и j-ro столбцов матрицы А^ (т.е. у 2-й и г-й строк и у 2-го и j-ro столбцов матрицы А ). Затем этот процесс применяется к подматрице А^ 6 Мп_2 и так далее. Этот алгоритм называется методом Гаусса с выбором главного элемента по всей матрице. Вычислим дополнительные (по сравнению с обычным методом Гаусса) за- траты вычислительной работы на решение системы по этим алгоритмам. На к -ом шаге (к = 1,..., п) метода Гаусса с выбором главного элемента по столбцу или строке требуется п — к операций сравнения элементов матрицы А для нахо- ждения максимального по модулю элемента. В методе Гаусса с выбором главного элемента по всей матрице это число равно (п—к)2. Следовательно, в первых двух методах дополнительно требуется УД=г(п — к) = п(п — 1)/2 = 0(п2) (п —> оо) операций сравнения, а в последнем методе - УД=\(п — к)2 = (п— 1)п(2п — 1)/6 = п3/3 + 0(п2) (п —> оо) операций сравнения. На большинстве ЭВМ операция сравнения двух чисел с плавающей точкой выполняется за время, по порядку равное времени вычитания этих чисел. (Это связано с тем, что вместо сравнения двух чисел выполняется операция вычи- тания одного числа из другого и сравнения результата с нулем. Поскольку сам результат нигде не запоминается и от него используется лишь его знак, то опе- рация сравнения обычно осуществляется быстрее операции вычитания, однако следующая за операцией сравнения команда условного перехода с лихвой ком- пенсирует эту разницу.) Поэтому в методе Гаусса с выбором главного элемента по столбцу или строке количество операций асимптотически то же, что в обыч- ном методе Гаусса: 2/Зп3 + О(п2). В методе Гаусса с выбором главного элемента по всей матрице количество операций асимптотически в полтора раза больше, чем в обычном методе Гаусса: п3 + 0(п2). По этой причине этот метод обыч- но применяется тогда, когда с помощью других методов не удалось получить приемлемого по точности результата из-за сильного роста вычислительной по- грешности (такая ситуация возникает, если матрица А имеет большое число обусловленности). Теорема 1. Метод Гаусса с выбором главного элемента по столбцу осуще- ствим тогда и только тогда, когда det А 0. Доказательство. Шаг метода Гаусса переводит невырожденную матрицу К. Ю. Богачев Точные методы решения линейных систем
§7. МЕТОД ГАУССА С ВЫБОРОМ ГЛАВНОГО ЭЛЕМЕНТА 30 в невырожденную. Действительно, после перехода от матрицы (4.4) к матри- це (4.7) по формулам (4.6), (4.8) определитель матрицы (4.4) равен определителю матрицы (4.7), умноженному на (множитель возникает при вычислении по формулам (4.6), при преобразовании матрицы по формулам (4.8) определи- тель не изменяется, так как они задают элементарные преобразования матрицы). Согласно правилам вычисления определителей, определитель матрицы (4.4), по- лучающейся после к — 1 шагов метода Гаусса, равен определителю матрицы Следовательно, невырожденность матрицы А эквива- лентна невырожденности матриц для всех к = 1,..., п . Очередной, к-й шаг метода Гаусса с выбором главного элемента по столбцу возможен тогда и только тогда, когда первый столбец матрицы ненулевой, т.е. эта матрица невырождена (см. подробное обоснование этого при построении метода). Таким образом, осуществимость всех п шагов метода Гаусса эквивалентна невырожденности матриц для всех к = 1,..., п , что эквивалентно невыро- жденности матрицы А. Теорема 2. Метод Гаусса с выбором главного элемента по строке осуще- ствим тогда и только тогда, когда det А 0. Доказательство повторяет доказательство предыдущей теоремы. Измене- ния только в том, что очередной, &-й шаг метода Гаусса с выбором главного элемента по строке возможен тогда и только тогда, когда первая строка матри- цы А^-1^ ненулевая, т.е. эта матрица невырождена (см. подробное обоснование этого при построении метода). Теорема 3. Метод Гаусса с выбором главного элемента по всей матрице осуществим тогда и только тогда, когда det А 0. Доказательство повторяет доказательство теоремы 1. Изменения только в том, что очередной, &-й шаг метода Гаусса с выбором главного элемента по всей матрице возможен тогда и только тогда, матрица А^-1) ненулевая (см. подробное обоснование этого при построении метода). Замечание 1. Программная реализация методов Гаусса с выбором главного элемента. При реализации этих методов можно переставлть не стро- ки или столбцы матрицы, а их номера. Сделать это можно, например, следую- щим способом. Рассмотрим метод Гаусса с выбором главного элемента по всей матрице. Пусть массив indi длиной п содержит номер строки матрицы А, массив indj длиной п содержит номер столбца матрицы А. Вначале indi(i)=i, indj (j) =j, i, j = 1,... ,n. Обращение к элементам матрицы А происходит следующим обра- зом: элемент есть a(indi (i), indj (j)). Для того, чтобы переставить местами К. Ю. Богачев Точные методы решения линейных систем
§S. МЕТОД ЖОРДАНА (ГАУССА-ЖОРДАНА) 31 21-ю и «2-ю строки матрицы А, достаточно переставить местами «i-й и «2-й эле- менты массива indi; для того, чтобы переставить местами ji-й и Д-й столбцы матрицы А, достаточно переставить местами Д-й и Д-й элементы массива indj. Существенным недостатком такого способа реализации перестановок строк и столбцов является замедление доступа к элементам массива. Замечание 2. Для матриц А произвольного вида методы Гаусса с выбором главного элемента практически вытеснили обычный метод Гаусса из вычисли- тельной практики. Совершенно иная ситуация для случая ленточных матриц А. Дело здесь в том, что перестановка строк или столбцов в таких матрицах при- водит к увеличению ширины ленты, что часто недопустимо (поскольку вместо матрицы хранится только ее лента). § 8. МЕТОД ЖОРДАНА (ГАУССА-ЖОРДАНА) Пусть требуется решить линейную систему Ах = b, А Е М.п вида (4.1). Пер- вый шаг метода Жордана сопадает с первым шагом метода Гаусса: система (4.1) преобразуется к виду Х1 + (1) «12^2 + .. + (1) <Нп ХП — (Г «22^2 + .. + (1) «2п хп — а(1) °2 (1) (Г + .. + С'1Хп = гД) п по тем же формулам = dij/ciii, =bl/all, j = 2,...,n, (1) W к kW О aij = aij - ьд =bi-b[)ail, i,j=2,...,n. После к — 1, к = 1,... ,п шагов метода Жордана система (4.1) преобразована к виду Х2 + + (fc-1) а1,к Хк (fc-1) «2,fc Хк + + + + (fc-1) <Нп Хп {к-1) ®2п хп = = Хк-1 + {к-1) ак-1,кхк + + {к-1) ак-1,пХп = (2) {к-1) ак,к хк + + {к-1) ак,п Хп - 1 — °к {к-1) ап,к Хк + + n{k~l)q. = /Д-Г п Предположим, что а^к ф 0. Поделив &-е уравнение системы (2) на а>кк перепишем его в виде + 4л+1^+1 + + = №, (3) К. Ю. Богачев Точные методы решения линейных систем
§S. МЕТОД ЖОРДАНА (ГАУССА-ЖОРДАНА) 32 где 1) (к) = akj , 1 ,(к) = А /4ч akj (к-1) ’ Л, I 1, ... ,71, 0к (к-1) ’ V4/ акк акк Умножим уравнение (3) на а-к и вычтем его из г-го уравнения системы (2), i = 1,..., п. В результате система (2) примет вид Х1 Х2 хк — 1 + (к) а1,к+1Хк+1 + . + (fc) ®1п Хп = ь? + (fc) а2,к+1Хк+1 + . + (fc) хп = ь? । W । + ДДк+1хк+1 + .. । Т) + ак-1,пХп — °к-1 хк + (fc) ак,к+1Хк+1 + . .+ (fc) ак,пХп _Ь(к) — °к (к) 1 ак+1,к+1Хк+1 + 1 (£) + ак+1,пХп _Ь(к) — °к+1 (fc) ап,к+1Хк+1 + . + ^71,71^71 = п (5) где (к) (к-1) (к-1) (к) °>ij =°>ij ~aik akj’ b(k) = b(k-l) _ a(k-VbW Itv tv ' i = 1,... ,n, i ф k, j = k + 1,... ,n. (6) i = 1,..., n, i Ф k. Выражения (4), (6) являются формулами перехода от системы (2) к системе (5). Если обозначить off = а^, = bi, i,j = l,...,n,ro переход от системы (4.1) к системе (1) будет осуществляться по тем же формулам при к = 1. После проведения вычислений по формулам (4), (6) при к = 1,..., п матрица системы (4.1) станет единичной матрицей. Следовательно, правая часть системы содержит искомое решение: Xi = ог- , % = 1,..., п. Метод Жордана удобно применять для нахождения обратной матрицы. При этом вместо правой части b используется набор правых частей, состоящий из п столбцов единичной матрицы, над которыми одновременно производятся пре- образования, задаваемые соотношениями (4), (6). После проведения п шагов метода Жордана этот набор будет состоять из столбцов обратной матрицы А-1. Поскольку на каждом шаге метода Жордана подматрица А^-1^ = (aij~1'>)ij=k,...,n - та же, чт0 на соответствующем шаге метода Гаусса, то метод Жордана осуществим тогда и только тогда, когда осуществим метод Гаусса, т.е. когда все главные угловые миноры матрицы А отличны от нуля. Оценка количества арифметических операций в методе Жордана 1. На вычисление при j = к + 1,..., п, к = 1,..., п по формулам (4) требуется (п ~ к) = п(п — 1)/2 = О(п2) (п —> оо) операций деления. К. Ю. Богачев Точные методы решения линейных систем
§9. ПОЛОЖИТЕЛЬНО ОПРЕДЕЛЕННЫЕ МАТРИЦЫ 33 2. На вычисление а!£' при i = 1,... ,п, i к, j = к + 1,... ,п, к = 1,...,п по формулам (6) требуется ^=i(n —A:)(n—1) = (п — 1)2п/2 = п3/2 + О(п2) (п —> оо) операций умножения и столько же операций вычитания. 3. На вычисление при к = 1,..., п по формулам (4) требуется п операций деления. 4. На вычисление при i = 1,... ,п, i к, к = 1,...,п по формулам (6) требуется '£,k=i(n — 1) = n(n — 1) = О(п2) (п —> оо) операций умножения и столько же операций вычитания. Таким образом, метод Жордана требует О(п2) + п3/2 + п + О(п2) = п3/2 + О(п2) (п —> оо) мультипликативных операций и столько же аддитивных опера- ций. Всего: п3 + О(п2) (п —> оо) арифметических операций. По аналогии с методом Гаусса можно строить метод Жордана с выбором главного элемента. Именно, в подматрице Л^-1) = (aj* ^)ij=k,...,n (совпадаю- щей с подматрицей из метода Гаусса) той же процедурой, что и в методе Гаусса, выбирается главный элемент. § 9. ПОЛОЖИТЕЛЬНО ОПРЕДЕЛЕННЫЕ МАТРИЦЫ Определение. Матрица А Е М.п называется положительно определенной (обозначается Л > 0), если для всех х Е С" выражение (Ах,х) вещественно и (Ах,х) > 0 для всех х Е С", х ф 0 (здесь (•, •) означает обычное скаляр- ное произведение в С", (х, у) = у*х, где у* = (yi,... ДД) , черта над символом обозначает, как обычно, знак комплексного сопряжения). Если рассматривае- мая матрица Л вещественна, то часто положительно определенной называется матрица Л, для которой (Ах, х) > 0 для всех х Е Rn, х ф 0. Замечание 1. Если матрица Л Е М.п - самосопряженная (т.е. Л* = Л), то выражение (Ах, х) вещественно для всех х Е С". Действительно, (Ах, х) = (х, А*х) = (х, Ах) = (Ах, х) и потому (Ах, х) веще- ственно. Лемма 1. Если матрица А положительно определена, то она невырожде- на. Доказательство. Предположим противное, det Л = 0. Тогда линейная си- стема Ах = 0 имеет решение х Е Сп, х ф 0. Для этого х выражение (Ах,х) = (0, ж) = 0, что противоречит положительной определенности матрицы Л. Лемма 2. Если матрица А положительно определена, то для нее суще- ствует LU -разложение. К.Ю.Богачев Точные методы решения линейных систем
§9. ПОЛОЖИТЕЛЬНО ОПРЕДЕЛЕННЫЕ МАТРИЦЫ 34 Доказательство. В соответствии с теоремой 4.1 нам надо проверить, что главные угловые миноры положительно определенной матрицы А отличны от нуля. Определим отображение пространства Сп —> Ск , к < п действующее по правилу: для всякого х = (жх,... ,жп)* Е Сп х^) = (х1, ЛкУ € Ск. Это ото- бражение есть отображение ”на”, т.е. для каждого элемента х = (жх,... ,хк}1 G Ск найдется элемент х Е С", являющийся прообразом х при этом отображении (например, х = (ж1;..., хк, 0,..., 0)* Е С"). Поскольку матрица А положительно определена, то для всякого к = 1,..., п и всякого х Е С", такого, что х^) ф 0 выражение (Ах^х^) вещественно и положительно. По правилу перемножения матриц (Ах^), х(к)) = (Акх(к),х(к))к, где -А-к — «2| «12 «22 dlk <Ик \ ®к1 «7г2 акк 7 -главный угловая подматрица А , (•,•)* - обычное скалярное произведение в пространстве Ск, (х, у)к = у*х, х,у Е Ск. Следовательно, выражение (Акх, х}к вещественно и положительно для всех х Е Ск, т.е. матрицы Ак Е М&, к = 1,... ,п положительно определены. Пользуясь леммой 1, получаем, что матри- цы Ак, к = 1,... ,п невырождены. Из теоремы 4.1 теперь вытекает требуемый результат. Лемма 3. Самосопряженная матрица А Е М.п положительно определе- на тогда и только тогда, когда все ее собственные значения вещественны и положительны. Доказательство. Пусть А Е М.п самосопряженная положительно опреде- ления матрица, А - ее собственное значение, х ф 0 - соответствующий соб- ственный вектор: Ах = Хх. Умножим это равенство скалярно на х, получим /4 Ч Ч / Ч Ч (Аж, Ж) ЧТ /44 (Ах,х) = Х(х,х) и А = —г—гр—. Поскольку (Ах,х) вещественно и положитель- 1И1 но, то А > 0. Пусть А Е Мп самосопряженная матрица и А, > 0, i = l,2,...,n - ее собственные значения. В курсе линейной алгебры было доказано, что вся- кая самосопряженная (симметричная в вещественном случае) матрица диаго- нализируема в евклидовом базисе, т.е. существует ортонормированный базис Xi, Х2,.. , хп, (xi,Xj) = бу, состоящий из собственных векторов матрицы А: Axi = XiXi. Пусть ж 7 0 - произвольный вектор, х = EF=i cixi - ег0 разло- жение по базису {ж,}, причем ||ж||2 = E"=i |q|2 Ф 0- Рассмотрим выражение (Аж, ж) = (АЦ=1ед,Ц=1ед) = (EEi «Агжг, EEi «А4) = ЕГ=х Ici12 Следова- тельно, (Аж, ж) вещественно. Поскольку Aj > 0 и не все Cj равны 0, то (Аж, ж) положительно. Итак, для всякого вектора ж 7 0 выражение (Аж, ж) вещественно и положительно, что и означает положительную определенность матрицы А. К. Ю. Богачев Точные методы решения линейных систем
§10. МЕТОД ХОЛЕЦКОГО (КВАДРАТНОГО КОРНЯ) 35 § 10. МЕТОД ХОЛЕЦКОГО (КВАДРАТНОГО КОРНЯ) Пусть требуется решить линейную систему А х = b с самосопряженной (сим- метричной в вещественном случае) матрицей А Е Мп, А* = А. § 10.1. Разложение Холецкого Обозначим через RT (п) подгруппу невырожденных верхних треугольных ма- триц в М.п, а через UT(n) - подгруппу в RT(n) матриц с единицами на главной диагонали. Теорема 1. Пусть матрица А - самосопряженная (А* = А) и все ее глав- ные угловые миноры отличны от нуля. Тогда существуют матрица R = (rij) Е RT(n) с вещественными положительными элементами на главной диагонали (гц > 0 для всех i = и диагональная матрица D с вещественны- ми равными по модулю единице диагональными элементами (дц Е { — 1,1} для всех i = 1,... ,п) такие, что А = R*DR . Доказательство. По теореме 4.1 для матрицы А осуществимо LU- разложение, т.е. существуют L Е LT(n) и U Е UT(n) такие, что А = LU. Поскольку матрица L = (1^) невырождена, то 1ц ф 0, i = 1,..., п и матрица £> = diag (1ц,...,1пп) (1) обратима, = diag (Z^1,. Положим L = LD~Y E LT(n). Тогда no правилам перемножения матриц 1ц = 1, i = 1,..., п. Подставим это представление матрицы L = LD в LU-разложение матрицы А: А = LDU. Так как А = А*, то А = LDU = А* = [/*£>*£*. Поэтому U = b-lL~4j*b*L*, ПД*)-1 = b^L-hrb*. (2) Заметим, что L* Е RT(n), причем главная диагональ этой матрицы состоит из единиц. Следовательно L* Е UT(n). Поэтому в левой части равенства (2) стоит матрица Е/Д*)-1 Е UT(n). В право же части равенства (2) стоит произведе- ние нижних треугольных матриц, которое является опять нижней треугольной матрицей, т.е. принадлежит LT(n). Поэтому из (2) вытекает ПД*)-1 е UT(n) ПЬТ(п). Единственной матрицей, которая принадлежит одновременно подгруппам UT(n) и LT(n) является I - единичная матрица. Следовательно, пД*)-1 = b^L-bnb* = I. (з) Таким образом, U = L* и А = U*DU. Далее, из (3) I = D~lL~lU*b* = b^L-btyb* = D~l L~l LD* = Ь^Ь* К.Ю.Богачев Точные методы решения линейных систем
§10. МЕТОД ХОЛЕЦКОГО (КВАДРАТНОГО КОРНЯ) 36 т.е. D = D*. В силу (1) получаем = Ij-j., т.е. Ikk ~ вещественные для всех k = 1,... ,п. Представив матрицу D в виде D = \D\1^2D (Z?)1/2, где D = diag (sign/п,...,sign/nn), |£>|1/2 = diag(^/|^П> > \/М), получаем А = U*\D\1^2D\D\1^2U. Обозначим R = |Z)|1/,2[7 Е RT(n). Тогда А = R*DR, причем диагональные элементы гц матрицы R равны > 0. Следовательно, полученное разложение является требуемым. Замечание 1. Если матрица А - вещественная, то все участвующие в тео- реме 1 матрицы вещественные. Замечание 2. Если в условиях теоремы 1 матрица А положительно опре- делена, то матрица D в теореме 1 - единичная, т.е. разложение, даваемое этой теоремой, имеет вид А = R*R. Действительно, если матрица А положительно определена и для нее спра- ведливо разложение А = R*DR, то для всякого х Е Сп, х ф 0 выражение (Ах,х) = (R*DRx,x) = (D Rx,Rx) вещественно и положительно. Для всякого у Е Сп положим х = R~ry. Тогда выражение (Dy, у) = (Ах,х) вещественно и положительно для всех у Е Сп, у 0, т.е. матрица D положительно определена. Поскольку D = diag(dn,... ,dnn), то (Dy,у) = Т^^уД] = E"=i 7/у|2. По доказанному, эта сумма вещественна и положительна. Выбирая здесь у = вк, к = 1,... ,п, где вк - орты стандартного базиса, находим, что все dkk, к = 1,... ,п должны быть вещественными и положительными. Поскольку \dkk\ = 1, то это означает, что dkk = 1, к = 1,... ,п. Замечание 3. Если матрица А положительно определена, то для нее вы- полнены условия теоремы 1. Это вытекает из леммы 9.2. § 10.2. Алгоритм построения разложения Холецкого Построим алгоритм нахождения разложения из теоремы 1. Пусть для самосопряженной матрицы А (А* = А) требуется найти верхнюю треугольную матрицу R = (гД) с вещественными положительными элементами на главной диагонали (гц > 0 для всех i = 1,... ,п) и диагональную матрицу D с равными по модулю единице диагональными элементами (| da | = 1 для всех i = 1,..., п) такую, что А = R*DR . п Элемент (k,j) матрицы DR равен (DR)kj = Е dki'f'ij = dkk’r'kj > так как ма- i=l трица D - диагональная; элемент (i, к) матрицы R* равен (R*)ik = гЦ; элемент (i,j) матрицы R*DR равен (R^DR^ = Е (R*)ik(DR)kj = Е rTidk^kj- Следо- k=Y к=1 вательно, равенство А = R*DR дает нам уравнения п 53 kidkkf kj — > Б j — 1, . . . ,П. (4) fc=l К.Ю. Богачев Точные методы решения линейных систем
§10. МЕТОД ХОЛЕЦКОГО (КВАДРАТНОГО КОРНЯ) 37 Поскольку матрицы А и R*DR - самосопряженные, то уравнение с номером (j, г) получается из уравнения с номером (i,j) путем комплексного сопряжения и не дает ничего нового. Поэтому система (4) эквивалентна системе п 53 1'kidklA’kj ^ij > i — А Г j 1, . . . , 71. (5) fc=l Таким образом, (5) представляет собой систему из п(п+ 1)/2 уравнений с п(п + 1)/2 неизвестными г^, i < j (напомним, R Е RT(n) и = 0 при i > j) и п неизвестными dkk, к = 1,... ,п (при этом > 0 и dkk £ { — 1,1})- Получим формулы для решения системы (5), которые и составляют алгоритм метода Холецкого. Перепишем (5) в виде i п 5 ) kid-кк Гkj + 5 ) TkidkkTkj — < ji Б j — 1, . . . , 71. (6) k=l k=i+l Поскольку матрица R - верхняя треугольная, то Гкл = 0 при к > i и вторая из сумм в (6) равна нулю. Следовательно, система (5) эквивалентна следующей г—1 53 ^kidkk^kj + Tudn’Tij Иц, i < j, i, j 1, . . . , 71, (7) fc=l (здесь считается, что сумма вида £^L11 равна нулю, если верхний предел сум- мирования меньше нижнего; это позволяет не рассматривать отдельно случай г = 1; также в (7) мы учли, что Гц - вещественный элемент). Выделим в сум- ме (7) отдельно случай i = j г <j, i,j = l,...,7i, Отсюда получаем расчетные формулы: i—1 da = sign(o^ - £ |rfci|24fc), k=l I 2—1 Ti \ \®ii £ \f"ki ЗФс/с | > ]/ k=l i—1 Tj (ST) 52 f ki dkkfkj) / (Tiidii) > k=l (8) г <j, i,j = 1,...,ti. Процесс вычислений по этим формулам строится следующим образом: вначале вычисляются неизвестные элементы первых строк матриц D и R: dn = signan, i’ll = у |яц |, ,7-ij = а17/(г11Ф1), j = 2,...,li- к.Ю.Богачев Точные методы решения линейных систем
§10. МЕТОД ХОЛЕЦКОГО (КВАДРАТНОГО КОРНЯ) 38 потом по формулам (8) при i = 2 вычисляются неизвестные элементы вторых строк матриц D и R: d22 = sign(d22 - |Г12|2Ф1), Г22 = ^/|й22 “ |Г12|2с£ц |, r2j = (a2j -rHdnr^/^d^), j = 3,...,n; затем по формулам (8) при i = 3 вычисляются неизвестные элементы третьих строк матриц D и R и так далее. Замечание 4. Организация хранения матриц A, R и D в памяти. Поскольку для самосопряженной матрицы ац = сЩ, то можно вместо всей матрицы А хранить только ее верхний треугольник: aij, i < j, i,j = 1,... ,n. Формулы (8) таковы, что при вычислении элемента используются зна- чения элемента и вычисленных ранее элементов г^т, к < i. Это позволяет хранить вернюю треугольную матрицу R на месте верхнего треугольника ма- трицы А: = а^, i < j, i,j = 1,... ,n. Матрица D обычно хранится в виде отдельного вектора d = (dn,..., dn^. Замечание 5. Случай положительной матрицы А. В силу замечания 2 в этом случае разложение матрицы имеет более простой вид А = R*R. Формулы (8) тоже упрощаются: 1 г—1 Гц \ (®ii 52 |^А:г|2)> V к=1 i—1 Tj (®ij Е T'kiTkj')/Тц, к=1 Если матрица А еще и вещественная, то модуля и комплексного сопряжения: Гц = \ (ац - Е r2ki), ]/ к=1 i—1 Tij (®ij Е rkiTkj)/Гц, к=1 i = 1, ... ,77., (9) г <j, i,j = l,...,n. в формулах (9) можно убрать знак г = 1,...,п, г <3, БЭ = 1,...,п. К. Ю. Богачев Точные методы решения линейных систем
§П. МЕТОД ОРТОГОНАЛИЗАЦИИ 39 § 10.3. Оценка количества арифметических операций в алгоритме построения разложения Холецкого 1. Вычисление элемента da, i = 1,..., п по формулам (8) требует i — 1 муль- типликативных и столько же аддитивных операций. Следовательно, вычисление всех элементов матрицы D требует E"=i(^ — 1) = п(п — 1)/2 = О(п2) мульти- пликативных и столько же аддитивных операций. 2. Вычисление элемента гц по формулам (8) требует одной операции извле- чения корня и i — 1 мультипликативных и столько же аддитивных операций (умножение на du Е { — 1,1} мы за операцию не считаем). При фиксирован- ном i = 1,... ,п вычисление элементов Г{j для всех j = i + 1,...,п по фор- мулам (8) требует 1 + Е^=г+1(з — 1) = (п — «)(г — 1) + 1 мультипликативных И Е^+1(г — 1) = (п — г)(г — 1) аддитивных операций. Следовательно, вы- числение всех элементов матрицы R требует п операций извлечения корня, ЕГ=1((П — — 1) + — 1) + 1) = и3/6 + О(п2) (п —> оо) мультипликатив- ных и EF=i((n — ^)(г — 1) + (г — 1)) = п3/6 + О(п2) (п —> оо) аддитивных операций (подробное вычисление см. при подсчете количества арифметических операций для алгоритма LH-разложения). На вычислительных машинах, имеющих аппаратную поддержку для вычи- сления трансцендентных функций вещественного аргумента, операция извлече- ния корня выполняется за время, по порядку равное времени деления двух ве- щественных чисел. Поэтому на таких вычислительных системах операции из- влечения корня в описанном выше алгоритме займут время, равное времени выполнения О(п) мультипликативных операций. На вычислительных машинах, не имеющих аппаратной поддержки для вы- числения трансцендентных функций вещественного аргумента, операции извле- чения корня в описанном выше алгоритме займут время, равное времени выпол- нения О (const п) = О(п) мультипликативных операций. Таким образом, алгоритм построения разложения Холецкого требует для своего проведения выполнения п3/6 + О(п2) (п —> оо) мультипликативных и столько же аддитивных операций, а в сумме - п3/3 + О(п2) (п —> оо) арифме- тических операций, т.е. асимптотически вдвое меньше, чем в методе Гаусса или алгоритме построения LU-разложения. § 11. МЕТОД ОРТОГОНАЛИЗАЦИИ Пусть требуется решить линейную систему Ах = b (1) с матрицей А = (а^) Е Мп и правой частью b = (Ц,..., &п)*. Пусть х = (жх,..., хД* - точное решение этой системы. Введем следующие вектора из Cn+1: У=(Ж1,..,Жп,1)‘еСп+1, (2) К. Ю. Богачев Точные методы решения линейных систем
§П. МЕТОД ОРТОГОНАЛИЗАЦИИ 40 Ai = (ац,ain, -bi)* е Cn+1, г = 1,..., п. (3) С использованием этих обозначений система (1) может быть записана в виде п условий ортогональности (У,А) = 0, i = l,...,n, (4) где (•, •) - обычное евклидово скалярное произведение в Cn+1. Соотношения (4) дают новое определение понятию решения системы (1): решить систему (1) - это значит найти вектор Y вида (2), ортогональный всем векторам (3). Будем строить последовательность подпространств Cn+1 = Е(о) D Е(1) Э ... Э Ew, где Е^^ = (е^1;..., е^) - (п — к + 1)-мерное подпространство в Cn+1, состоя- щее из векторов, ортогональных векторам Ai,..., А^ (в частности, все вектора одномерного подпространства Е^"^ ортогональны А±,..., Ап, т.е. Е^"^ содержит решение, которое выделяется из всех других векторов этого подпространства тем, что его последняя координата равна 1). В качестве базиса начального пространства Е^0) возьмем стандартный базис Сп+1 . е(0) = (1,0,...,0),...,е^1 = (0,.. .,0,1). Для всех к = 1,..., п базис е^1;..., каждого следующего подпростран- ства Е^^ строится по предыдущему базису ..., подпространства Е^-1^ по формулам / л (к—1)\ (к) _ (&-1) 'Лк-О ) (fc-l) • _____ 1 in ei ei , . ’ * A: + 1, . . . , П. (5) (Дй ! ) Проверим, что E^^ состоит из векторов, ортогональных векторам А1, . . . , Afc . а) Базис пространства Е^ получается как линейная комбинация базиса про- странства Е^-1\ все элементы которого ортогональны векторам ..., А^_^. Следовательно, вектора из Е^ ортогональны векторам А1;..., A^_i. б) Проверим, что все элементы базиса пространства Е^ ортогональны вектооу Аь. (Аь — (Ai. - ^к,е^ (Аь — (Ai. - вектору j (fc-i)\ 'Лк+k ) y^-kAi ) \^-kiek ) (A,ep-1)) = 0, г = к + 1,... ,n. Лемма 1. Для всех к = 0,... ,п и всех i = к + 1,..., п+1 вектор имеет не более к + 1 отличных от нуля компонент. Именно, могут быть отличными от нуля компоненты этого вектора с номерами 1,... ,к и i. Доказательство. При к = 0 это следует из выбора ег-°\ i = 1,..., п. Предпо- ложим, что утверждение леммы справедливо для е-к i = к,..., п. Покажем, К. Ю. Богачев Точные методы решения линейных систем
§П. МЕТОД ОРТОГОНАЛИЗАЦИИ 41 что оно верно для е\к\ i = к +1,..., п. Действительно, по предположению у век- тора только компоненты 1,..., к могут быть отличны от нуля. Поэтому из формул (5) получаем, что вектор получается из вектора е'к измене- нием не более чем первых к компонент. По предположению у вектора ер-1^ возможно отличны от нуля только компоненты 1,... ,к — 1 и i. Следовательно, у , i = к + 1,... ,п могут быть отличны от нуля компоненты с номерами 1,..., к и i. Следствие 1. По доказанному в лемме 1 вектор получается из из- менением компонент 1,..., к (остальные компоненты у вектора е^-1^ нулевые). Следовательно, у всех е^1; к = 1,..., п (п+ 1)-я компонента равна 1. Поэтому вектор является решением задачи (4). Оценка количества арифметических операций в методе ортогонализации Оценим трудоемкость вычислений по формулам (5) для фиксированного &, а затем просуммируем полученные оценки по всем к = 1,..., п. 1. Знаменатель (Ад,,е^ ^) в (5) от i не зависит и вычисляется один раз для каждого к. В силу леммы 1 у вектора е£ только компоненты 1,...,к могут быть отличны от нуля, поэтому на вычисление скалярного произведения (Ад,, потребуется к операций умножения и к — 1 операций сложения. 2. На вычисление скалярного произведения (А&, ер-1^) в (5) по лемме 1 потре- буется к операций умножения и к — 1 операций сложения (поскольку у вектора ер-1) только компоненты 1,..., к — 1 и i могут быть отличны от нуля). Следова- тельно, на вычисление этих скалярных произведений для всех i = к + 1,..., п по- требуется к = к(п—к) операций умножения и ^2"=а.+1(А;—1) = (к—Г)(п—к) операций сложения. (Аье^-1)) 3. На вычисление дроби -—’ для всех i = к + 1,..., п в (5) потребуется (Ак+к ) п — к операций деления. 4. На вычисление вектора по формуле (5) при условии, что дробь (ЛьеС°) , . -----(fc-p) Уже вычислена, потребуется к операций умножения и столько же операций сложения (поскольку в силу леммы 1 у вектора только компо- ненты 1,..., к могут быть отличны от нуля). Следовательно, на проведение этих вычислений для всех i = к + 1,..., п потребуется к = к(п — к) операций умножения и столько же операций сложения. Итак, при фиксированном к = 1,... ,п трудоемкость формул (5) составляет к + к(п — к) + (п — к) + к(п — к) = 2к(п — к) + п мультипликативных операций и к — 1 + (к — 1)(п — к) + к(п — к) = 2к(п — к) + 2к — п — 1 аддитивных опе- раций. Следовательно, трудоемкость всего метода ортогонализации составляет К. Ю. Богачев Точные методы решения линейных систем
§П. МЕТОД ОРТОГОНАЛИЗАЦИИ 42 22£=1(2А;(п — к) + п) = 2п Е*=1 к — 2 Е£=1 к2 + п2 = 2п • п(п+1)/2 — 2п(п +1)(2п + 1)/6 + п2 = п3 + 0(п2) — |п3 + 0(п2) = п3/3 + 0(п2) мультипликативных опера- ций и 22fc=i(2/s(n — к) + 2к — п — 1) = п3/3 + О(п2) аддитивных операций. Таким образом, метод ортогонализации асимптотически требует такого же количества арифметических операций (суммарно |п3 + О(п2) (п —> оо)), как и метод Гаусса. МЕТОДЫ РЕШЕНИЯ ЛИНЕЙНЫХ СИСТЕМ, ОСНОВАННЫЕ НА УНИТАРНЫХ ПРЕОБРАЗОВАНИЯХ МАТРИЦ Каждый из изложенных выше методов решения линейных систем может быть представлен в виде последовательности элементарных преобразований ма- трицы (см., например, такое представление в §4 для метода Гаусса). Каждое из преобразований задается некоторой матрицей Р, так что применение этого пре- образования эквивалентно умножению (слева) исходной матрицы А на матрицу Р. Таким образом, каждый шаг приведенных выше алгоритмов есть переход от матрицы А к матрице А := РА. О числе обусловленности этой новой матрицы А := РА можно лишь утверждать, что ДР А) < ДР) ДА). Поэтому может слу- читься так, что в процессе проведения преобразований число обусловленности матрицы возрастает и на каждом шаге метод будет вносить все большую вычи- слительную погрешность. В результате может оказаться, что исходная матрица имела приемлемое число обусловленности, однако после нескольких шагов алго- ритма она уже имеет слишком большое число обусловленности, так что после- дующие шаги алгоритма приведут к появлению очень большой вычислительной погрешности. Возникает идея подбирать матрицы преобразования Р так, чтобы число об- условленности матрицы в процессе преобразований не возрастало. Лемма 1.5 указывает нам пример таких матриц: если матрица преобразования Р унитар- на (ортогональна в вещественном случае), то относительно спектральной нормы ДР А) = ДА). Излагаемые ниже метод вращений и метод отражений представляют собой алгоритмы подбора унитарных матриц преобразований Р, таких, что в резуль- тате всех этих преобразований исходная матрица А приводится к треугольному виду. Система с треугольной матрицей затем решается, например, обратным хо- дом метода Гаусса. Несмотря на то, что трудоемкость этих методов больше, чем метода Гаусса (соответственно в 3 и 2 раза), эти методы получили широ- кое распостранение в вычислительной практике благодаря своей устойчивости к накоплению вычислительной погрешности. К. Ю. Богачев Точные методы решения линейных систем
§12. МЕТОД ВРАЩЕНИЙ 43 § 12. МЕТОД ВРАЩЕНИЙ В этом методе в качестве элементарного преобразования матрицы выбирается умножение ее на матрицу вращения. § 12.1. Матрица элементарного вращения и ее свойства Определение. Элементарным вращением Щ называется преобра- зование пространства, задаваемое матрицей Щ = (tki)k,i=i,...,n > в которой только следующие элементы отличны от нуля: tn = cos р, tjj = cos р, tij = — sin p, tji = sin p, Щ = 1 для всех к = 1,..., n, к Ф i, j: T = 1 cos </? — sin </? 1 1 sin </? cos </? 1 (1) \ 1 / Если - базис C" ( = (0,..., 0,1, 0,..., 0)*), то Щ является к-1 вращением в подпространстве и не изменяет подпространства (ei,..., ej_i, ej+i,..., ej_i, ej+i,..., en) (другими словами, Щ изменяет только i- ю и j-ю координаты векторов). Поэтому для изучения свойств преобразования Щ достаточно изучить свойства преобразования Р _ [ cos Т — sin </? \ sin <р cos р у в двумерном пространстве. Лемма 1. Матрица Щ является ортогональной матрицей. Доказательство. Следует из ортогональности матрицы Т. I X \ Лемма 2. Для всякого вектора г = I I G R2, г 0 сущестует матри- ,2 / cost/? -sin</? \ .. .. ца 1 = . , такая, что 1 г = г sint/? cost/? J " " евклидова длина вектора г. При этом трудоемкость построения матрицы Т составляет 4 мультипликативные операции, одну аддитивную и одну опера- цию извлечения корня. К.Ю.Богачев Точные методы решения линейных систем
§12. МЕТОД ВРАЩЕНИЙ 44 Доказательство. Достаточно положить х У cos^=^^=^’ sm^ = —/2,2- yar + у y/x* + у* Лемма 3. Для всякого вектора х Е Rn, х ф 0 сущестуют п — 1 матриц 712 = Т12(</?12), 713 = Т1з(</?1з), ..., Т1п = Т1п(р1п), таких, что Т1п.. ,Т13Т12х = / п ||а?|| ex, где ||а?|| = ||а?||2 = J 12 хк - евклидова длина вектора х , ei = (1,0,..., 0)* у k=l - первый координатный орт. CJ/1 \ 7^ 0, то по лемме 2 существует х2 J матрица элементарного вращения COS </?12 sin </?12 - sin </?12 cos </?12 такая, что Тг = ||г|| . Тогда матрица ' COS</?12 sin </?12 Г12 — ТЩрЩ — - sin </?12 cos </?12 1 Т = Т^Щ = переводит вектор x в вектор х^ = Д2х = (-ух± + а?2, 0, х3,..., хД*. Если вектор г = I Х1 | = 0, то преобразование не осуществляется (Т12 = I - единичной \Д2 / матрице). После к — 1 шагов этого процесса (к = 1,..., п — 1) вектор х преобразован к виду х^ = Т1к... Т12х = {\1Тн=\х1, 0,..., 0, Xk+v,хп)*. Если вектор то по лемме 2 существует матрица элементарного вращения Т — — cos Т1,к+1 sin</?1>fe+1 - sin р1гк+1 cos Т1,к+1 К.Ю.Богачев Точные методы решения линейных систем
§12. МЕТОД ВРАЩЕНИЙ 45 такая, что Тг = ||г|| . Тогда матрица - sin Tl,k+1 — Д,к+1(Т1,к+1) — 1 cos Т1,к+1 1 к + 1 COS «jCijfc+i 1 переводит вектор х^ в вектор — Т1,к+1Х^ — Ti,k+lTlk Т12х — &+1 (л ^х?,0,...,0,хк+2,...,хпу. \ i=i Если вектор г = 0, то преобразование не осуществляется (ТД+1 = I - единичной матрице). После п — 1 шагов этого процесса вектор х будет преобразован к виду х^ = Тщ Т12Х = 0,..., 0)‘ = ||Д| С1. Лемма 4. Произведение матрицы элементарного вращения на вектор мо- жет быть вычислено за 4 умножения и 2 сложения. Доказательство. Произведение у = ТДуцЩ матрицы элементарного вра- щения Щ на вектор х имеет следующие компоненты: Ук = хк, к = 1,... ,п, к ф i,j, yi = Xicos pij-Xj sin pij, yj = x,sin pij + xj cos pij. При осуществлении вычислений по этим формулам надо выполнить 4 умноже- ния и 2 сложения. Замечание 1. Для вычисления произведения матрицы из М.п общего вида на вектор требуется выполнить п2 умножений и п(п — 1) сложений. Лемма 5. Произведение матрицы элементарного вращения Щ Е М.п на матрицу размера пхт может быть вычислено за 4т умножений и 2т сло- жений. Доказательство. Пусть пхт матрица Y = Т^Х есть произведение матри- цы элементарного вращения Щ Е Мп на п х т матрицу X. Запишем матрицы X = (xij) и У = (yij) через их столбцы: X = [аД\ ..., Дт)], У = [у^\ ..., у^], К.Ю.Богачев Точные методы решения линейных систем
§12. МЕТОД ВРАЩЕНИЙ 46 где = (х1к,хпку, у™ = (у1к,упку, к = 1,... ,т. Согласно определе- нию произведения матриц Y = ЩХ = [Щх^,..., Щх^], т.е. у^ = Щх^к\ к = 1,... ,т. Таким образом, для вычисления матрицы Y = Т^Х надо вычислить т произведений Щх^ матрицы Щ на вектора х^к\ к = 1,...,т. Доказываемое утверждение теперь вытекает из леммы 4. Замечание 2. Для вычисления произведения двух матриц из Мп общего вида требуется выполнить п3 умножений и n2(n — 1) сложений. § 12.2. Алгоритм метода вращений Пусть требуется решить линейную систему Ах = b, А Е Mn(R,n) вида (4.1). Обозначим di = (ац,..., апЩ - первый столбец матрицы А. Согласно лем- ме 3 существуют п- 1 матриц Т12 = Т12(ср12), Т13 = Т13(</?13), ..., Т1п = Т1пЩ1п), таких, что Т1п... Ti3Ti2ai = llai||ei (причем значения углов к = 2,...,п определяются леммами 2, 3). Умножим систему Ах = b на Tin ... Ti3Ti2 слева, получим А^х = &(1), где А^ =Т1п...Т13Т12А = С12 Д1) ы22 On Д1) а2п , =т1п...т13т12ь. О о „(1) ап2 a(i) ипп Далее процесс применяется к подматрице («И )z,j=2,...,n- Пусть сделаны к — преобразована к виду где ( 1Ы1 1, к = 1,... ,п — 1 шагов А^х = Ь{к~1\ = П ЙЧл Ъ^ = i=k—lj=n i- 0.2 Оз с1,к-1 Ца^Ц Оз ... с2Л-1 ||a[2)|| ... сЗЛ_1 ||aM| процесса, т.е. система (2) г+1 I Пг.А -1 j=n (3) Cik С2к С2п Сзк СЗгг Ск—1,к а{к~^ акк Ск — 1,п а(/г-1) акп • W а(/г-1) апк ипп К. Ю. Богачев Точные методы решения линейных систем
§12. МЕТОД ВРАЩЕНИЙ 47 г+1 (здесь П означает, что сомножители берутся в порядке п,..., г + 1). j=n Обозначим = (5) - первый столбец подматрицы (а-к ~1'>)ij=k,...,n Согласно лемме 3 существуют п—к матриц Тк,к+1 Rk,k+l{SPk,k+l) •> Тк,к+2 Tk,k+2(iPk,k+2') > > 2"/c,n kn) i таких, что Ткп...Тк,к+2Тк,к+1а^ = e!n-fe+1), (6) (значения углов ipkj, j = к + 1,... ,п определяются леммами 2, 3), здесь = (1,0,... ,0)* 6Rm. Умножим систему (2) на Ткп .. -Тк^+ъТ^к+г слева, получим А^х = Ь{к\ где к+1 = П гд1 j=n НМ с12 1 г+1 •‘’=пп^, 6й i=kj=n & + 1 = п = j = n 1 г+1 П П т.,ь, i=kj=n (7) ( С1з С23 Il42’ll ... с1,к-1 С2,к-1 Сз,к-1 С1к С2к Сзк с1,к+1 С2,к+1 Сз,к+1 Cin C2n Сзп Дк) = Ск — 1,к С/с—1,/с+1 С/с,/с+1 (к) ак+1,к+1 Ck — l,n ^k,n (к) ‘ ‘ ak+l,n \ (fc) ап,к+1 a(k) unn J (8) Отметим, что в (7) каждая из п — к матриц элементарных вращений Tkj такова, что j > к и потому в (7) она умножается только на подматрицу (а- ^}г,з=к,...,п матрицы размера п — к + 1 (остальная часть в преобразовании (7) не участвует). После п — 1 шагов этого процесса (т.е. перехода от матриц и правых частей (3), (4) к (7), (8)) система примет вид Rx = у, (9) где 1 г+1 п—1 г+1 в = л<”-1>= п ПГ«А !/ = ь(”-1)= п ПЯЛ (Ю) i=n—lj=n i=n—lj=n К.Ю.Богачев Точные методы решения линейных систем
§12. МЕТОД ВРАЩЕНИЙ 48 f НМ С12 lA’ll С13 С23 iH’ll с1,п-2 с2,п-2 Сз,п-2 С1,п—1 с2,п-1 Сз,л—1 ('In ('2п С'Зп R = \ 11«С”11 Gi—2,п—1 11«С2)Н ('п—2,п Сп—1,п ипп (П) (напомним, определения векторов к = 1,..., п — 1 даются в (5), где счи- (о) \ таем, что = оц). Система (9) с верхней треугольной матрицей R решается обратным ходом метода Гаусса. § 12.3. Оценка количества арифметических операций в методе вращений Оценим трудоемкость к-го шага алгоритма, а затем просуммируем получен- ные оценки по всем к = 1,... ,п — 1. 1. На вычисление п — к матриц . ,Ткп, участвующих в (6), согласно лемме 2 требуется 4(п — к) мультипликативных, (п — к) аддитивных и п — к операций извлечения корня. 2. На вычисление компонент &,..., п к-го столбца матрицы , равных компонентам вектора требуется (для вычисления длины векто- ра (5)) п — к + 1 операций умножения, п — к операций сложения и одна операция извлечения корня. Столбец к вычисляется именно этим способом (а не по об- щим формулам (7)) для сокращения количества арифметических операций и уменьшения вычислительной погрешности. 3. Поскольку в формуле (7) каждая из п — к матриц элементарных вращений умножается на подматрицу (aj* 1'>)i=k,...,n,j=k+i,...,n матрицы размера (п — к + 1) х (п — к) (&-й столбец матрицы уже вычислен в пункте 2), то согласно лемме 5 на это требуется (п — к)4(п — к) = 4(п — к)2 умножений и (п — к)2(п — к) = 2(п — к)2 сложений. 4. На вычисление новой правой части по формуле (7) согласно лемме 4 тре- буется 4(п — к) умножений и (п — к) сложений. Итак, на к-ом шаге алгоритма требуется выполнить 4(п — к) + (п — к + 1) + 4(п — к)2 + 4(п — к) = 4(п — к)2 + 9(п — к) + 1 мультипликативных операций, (п — к) + (п — к) + 2(п — к)2 + (п — к) = 2(п — к)2 + 3(п — к) аддитивных операций и п — к + 1 операций извлечения корня. Следовательно, всего для проведения алгоритма требуется выполнить п—1 У~)(4(п — к)2 + 9(п — к) + 1) = 4п(п — 1)(2п — 1)/6 + 9n(n — 1)/2 + п — 1 к=1 К.Ю.Богачев Точные методы решения линейных систем
§12. МЕТОД ВРАЩЕНИЙ 49 = -п3 + 0(п2) (п —> оо) О мультипликативных операций, 22&=1(2(п — &)2 + 3(п — &)) = |п3 + О(п2) (п —> оо) аддитивных операций и E)fc=i(n — к + 1) = О(п2) (п —> оо) операций извлече- ния корня (которые по трудоемкости по порядку можно сравнить с операциями деления). На решение системы (9) с верхней треугольной матрицей R обратным ходом метода Гаусса требуется О(п2) (п —> оо) арифметических операций. Таким образом, на решение линейной системы методом вращений требуется |п3 + О(п2) (п —> оо) мультипликативных операций (что в 4 раза больше, чем в методе Гаусса), и |п3 + О(п2) (п —> оо) аддитивных операций (что в 2 раза больше, чем в методе Гаусса). Теорема 1 (О <2й-разложении). Всякая невырожденная вещественная матрица А может быть представлена в виде А = Q R , где матрица Q - ортогональная, а матрица R - верхняя треугольная с положительными эле- ментами на главной диагонали. Это разложение единственно. Доказательство. Проведем для матрицы А алгоритм метода вращений, осуществимый для всякой невырожденной матрицы. Обозначим в (10) Q = 1 г+1 п П Tij. Как произведение ортогональных матриц, матрица Q ортогональна. Тогда (10) имеет вид R = QA, откуда А = (СЩЩ = QR, где Q = (Q)* = (Q)-1- Если > 0, то матрица R, имеющая вид (11), удовлетворяет условиям те- оремы. Если < 0, то положим D = diag(l,..., 1, sign(a^-1))). Матрица D ортогональна и D2 = I. Поэтому А = (QD^DR), где Q := QD и й := DR удовлетворяют условиям теоремы. Предположим, что возможно два различных разложения А = QR и Л = Q'R1, удовлетворяющих условиям теоремы. Тогда QR = Q'R' и (Q'^Q = R~lR'. В левой части последнего равенства стоит ортогональная матрица, а в правой верхняя треугольная. Пересечение группы ортогональных ма- триц и группы верхних треугольных матриц состоит из матриц вида D = diag(di,..., dn), где ф Е { — 1,1}, i = 1,... ,п (проверить самостоятельно). Поскольку диагональные элементы матрицы R~VR' равны произведениям диа- гональных элементов матриц R и R!, то они положительны. Следовательно R~lR' = I, т.е. R = R!. Также = I, т.е. Q = Q'. Полученное про- тиворечие доказывает теорему. Замечание 3. Q-R-разложение матрицы А может быть использовано, на- пример, для тех же целей, что и LU-разложение. Именно, пусть стоит задача решить серию систем вида Ахj = bj, j = 1,... ,т с одной и той же матрицей А и разными правыми частями bj. Построим <2й-разложение матрицы А (которое, в отличие от LU-разложения, существует для всякой невырожденной матрицы). Для ортогональной матрицы Q легко находится обратная Q^1^ = Qf. Поэтому К. Ю. Богачев Точные методы решения линейных систем
§12. МЕТОД ВРАЩЕНИЙ 50 Xj находятся как решения системы R Xj = Q* bj с верхней треугольной матрицей R, например, обратным ходом метода Гаусса. Замечание 4. <2й-разложение матрицы А используется в <2й-алгоритме нахождения собственных значений матрицы А. § 12.4. Построение Q.R-разложения методом вращений Построение Q.R-разложения. Хранение матриц Q и R в памяти. Пусть стоит задача построить Q.R-разложение для матрицы А. Будем действо- вать как в теореме 1. Проведем для матрицы А метод вращений и получим в результате матрицу R из (11). При этом матрица Q равна (см. доказательство теоремы 1) 1 г+1 п—1 п Q = ( П П V = П П Ц- (12) i=n—lj=n i=lj=i+l Возможны два способа хранения матриц Q и R в памяти. 1. Матрица R хранится на месте верхнего треугольника матрицы А и получа- ется из нее последовательным применением элементарных вращений (см. выше алгоритм метода вращений). Для хранения матрицы Q выделяется отдельная матрица Q, которая равна единичной перед первым шагом алгоритма. На шаге &+1 к, к = 1,... ,п — 1 эта матрица умножается справа на матрицу П Tkj : j = n j=n Q = Q П Tkj ан-i (cm. (7), (12)). Произведение матрицы элементарного вращения на матрицу вы- числяется по алгоритму из леммы 5 с затратой 4п умножений и 2п сложений. Следовательно, произведение п(п — 1)/2 матриц вращения в (12) может быть вычислено за 2п2(п — 1) = 2п3 + О(п2) (п —> оо) умножений и n2(n — 1) = п3 + О(п2) (п —> оо) сложений. 2. Как и в первом способе, матрица R хранится на месте верхнего треугольни- ка матрицы А. Для хранения же матрицы Q отдельная память не выделяется. Заметим, что на шаге к, к = 1,... ,п — 1 мы использовали п — к элементарных вращений Тк,к+1,... ,Ткп и каждая из этих матриц целиком определяется един- ственным параметром - значением угла <pkj : Tkj = ТкЩркД j = к + 1,... ,п. При этом после преобразования (6), (7), т.е. перехода от матрицы (4) к матри- це (8), в к -ом столбце матрицы образовались п — к нулевых элементов а^к =0, j = к + 1,..., п. Поэтому возможно вместо матрицы Q вида (12) хра- нить на месте нижнего треугольника матрицы А набор параметров, с помощью которых можно вычислять тригонометрические функции углов ipij, j < i, i = 2 ..., n, j = 1,..., n — 1, задающих матрицы Щ. Конечно, проще всего было К. Ю. Богачев Точные методы решения линейных систем
§12. МЕТОД ВРАЩЕНИЙ 51 бы хранить сами эти углы pij, но это требует вычисления обратных тригоно- метрических функций, что довольно медленно и вносит большую вычислитель- ную погрешность. На практике на месте aij, j < г, i = 2 ... ,п, j = 1,..., п — 1 хранят cos или sin <pij - тот который имеет наименьший модуль. При этом на месте двух младших битов мантиссы этой величины хранятся признак то- го, что было запомнено: sin или cos, и знак не запомненной тригонометриче- ской функции. Измененение двух младших битов мантиссы у cos или sin вносит погрешность, намного меньшую чем погрешность, с которой они вычи- слены. Запоминание значения cos или sin с наименьшим модулем умень- шает погрешность при вычислении по формулам sin pij = ±^/1 — cos2 pij или cos pij = ±^/l — sin2 pij. Большинство современных микропроцессоров (Intel 80x86, Motorola 68xxx, SPARC, PowerPC) поддерживают стандарт ANSI/IEEE 754-1985 при работе с данными с плавающей точкой. Для таких процессоров младшие биты мантиссы являются младшими битами числа с плавающей точ- кой. При втором способе хранения матрицы Q не только экономится п3 ячеек памяти, но и экономится 2п3 + О(п2) (п —> оо) умножений и п3 + О(п2) (п —> оо) сложений на построение матрицы Q. Второму способу хранения благоприят- ствует также то обстоятельство, что редко требуется знать матрицу Q ’’саму по себе”. Обычно требуется уметь вычислять ее произведения на вектор и матрицу. Для того, чтобы вычислить произведение матрицы Q вида (12) на некоторую матрицу В требуется вычислить п(п— 1)/2 произведений матриц элементарных вращений Щ на В : п—1 п QB = П П (г„в). г=1j=i+l По лемме 5 на это потребеутся 2п2(п — 1) умножений и n2(n — 1) сложений. По сравнению с количеством операций, необходимых для вычисления произведения двух матриц Q и В произвольного вида, число умножений тут в 2 раза больше, а число сложений совпадает. Если таких произведений требуется вычислить не очень много, то второй способ предпочтительнее первого. § 12.5. Оценка количества арифметических операций в алгоритме построения QR-разложения методом вращений Трудоемкость алгоритма построения QR-разложения складывается из ко- личества арифметических операций, необходимых для проведения алгоритма метода вращений, и количества арифметических операций, необходимых для построения матрицы Q. Если для Q используется второй способ хранения, то дополнительных дей- ствий для ее построения не требуется. Следовательно, в этом случае для постро- ения QR-разложения надо выполнить |п3+О(п2) (п —> оо) мультипликативных операций и |п3 + О(п2) (п —> оо) аддитивных операций. К. Ю. Богачев Точные методы решения линейных систем
§13. МЕТОД ОТРАЖЕНИЙ 52 Если для Q используется первый способ хранения, то как показано выше для ее построения дополнительно к |п3 + О(п2) (п —> оо) мультипликативным и |п3 + О(п2) (п —> оо) аддитивным операциям, необходимых для проведения алгоритма метода вращений, требуется 2п3 + О(п2) (п —> оо) умножений и п3 + О(п2) (п —> оо) сложений, всего уп3 + О(п2) (п —> оо) мультипликативных операций и |п3 + О(п2) (п —> оо) аддитивных операций. § 13. МЕТОД ОТРАЖЕНИЙ Всюду в данном параграфе под нормой вектора будет пониматься евклидова норма, а под нормой матрицы - спектральная норма. Лемма 1. Спектральная норма всякой унитарной (ортогональной в веще- ственном случае) матрицы равна 1. Доказательство. Поскольку унитарные матрицы сохраняют евклидову дли- ну вектора, по определению спектральной нормы получаем для всякой унитар- ной матрицы U: llrrll И ! \\и\\ = sup = sup Il-Ji = 1. И хЩ) И Лемма 2. Собственные значения всякой унитарной матрицы по модулю равны 1. Доказательство. Пусть А - произвольное собственное значение матрицы U. По лемме 1.4 |A|<||t/|| = l- по предыдущей лемме. С другой стороны, А-1 является собственным значением матрицы U~l, которая тоже унитарна. Опять по лемме 1.4 и лемме 1 |А-1| < ||П-1|| = 1, т.е. |А| > 1. Следовательно, |А| = 1. Лемма 3. Собственные значения всякой самосопряженной (симметричной в вещественном случае) матрицы А (т.е. А* = А) вещественны. Доказательство. Пусть А - произвольное собственное значение матрицы А, х ф 0 - отвечающий ему собственный вектор, т.е. Ах = Хх. Умножим это равенство скалярно на х : (Ах,х) = Х(х,х), откуда А = (Ах, х)/||х||2. В силу замечания 9.1 выражение (Ах,х) вещественно для самосопряженной матрицы А. Следовательно, А вещественно. К. Ю. Богачев Точные методы решения линейных систем
§13. МЕТОД ОТРАЖЕНИЙ 53 § 13.1. Матрица отражения и ее свойства Определение. Матрицей отражения называется матрица вида U = U(x) = I — 2хх*, где х - единичный вектор (т.е. ||х|| = 1). (Напомним, что х* = (хх,... ,хп) - ’’матрица” размера 1 х п, х = (xi,..., хп)* ’’матрица” размера п х 1 и потому хх* - матрица размера п х п.) Установим основные свойства матрицы отражения. Лемма 4. Матрица отражения является самосопряженной матрицей. Доказательство. Вычислим сопряженную матрицу для матрицы отражения Щх) №))* = (I - 2хх*У' = 1- 2Д*)*х* =1- 2хх* = Щх), что и означает самосопряженность матрицы U (а?). Лемма 5. Матрица отражения является унитарной матрицей. Доказательство. Вычислим для матрицы отражения U(x) U(x)U* (х) = ПДУ = (1- 2хх*)Д - 2хх*) = I - ±хх* + ±хх*хх* =1- Йсх*+Йс1х* =1, поскольку х*х = (х,х) = ||х||2 = 1. Это равенство и означает унитарность ма- трицы U (а?). Лемма 6. Собственные значения матрицы отражения равны либо 1, либо -1. Доказательство. Из лемм 2 и 4 вытекает, что собственные значения матри- цы отражения по модулю равны 1. Из лемм 3 и 5 следует, что они вещественны. Значит, собственные значения есть либо 1 либо — 1. Лемма 7. Матрица отражения U(x) имеет собственное значение — 1 кратности 1, которому отвечает собственный вектор х, и собственное зна- чение 1 кратности п — 1, которому отвечает собственное подпространство ДД = {у ; (у,х) = 0}. Доказательство. Имеем U(x)x = (I — 2хх*)х = х — 2хх*х = х — 2х = —х, поскольку х*х = (х,х) = ||х||2 = 1. Следовательно, х - собственный вектор, отвечающий собственному значению — 1. Далее, для всех у Е (х)1- U(x)y = (I — 2хх*)у = у — 2хх* у = у, поскольку х*у = (у,х) = 0. Следовательно, у -собственный вектор, отвечающий собственному значению 1. Такие вектора у Е (х)1- образуют (п — 1)-мерное подпространство. К. Ю. Богачев Точные методы решения линейных систем
§13. МЕТОД ОТРАЖЕНИЙ 54 Лемма 8. Геометрический смысл преобразования, задаваемого матрицей отражения U(x): отражение относительно гиперплоскости (х)Д Доказательство. Всякий вектор z Е Сп может быть представлен в виде z = ах + у, где у Е (х)Д Здесь компонента ах параллельна х, а компонента у ортогональна х, т.е. лежит в гиперплоскости В силу леммы 7 U(x)z = U(x)(ax + у) = — ах + у, т.е. вектор z отразился относительно гиперплоскости (аУ. Лемма 9. Пусть е - произвольный единичный вектор: ||е|| = 1. Тогда для всякого вектора у Е Сп существует вектор х Е Сп, ||х|| = 1 такой, что U(x)y = \\у\\е. Доказательство. Так как вектора у и ||г/||е должны быть получены друг из друга отражением относительно гиперплоскости , то вектор у— ||?/||е должен быть параллелен х, т.е. х = а(у — ||?/||е). Коэффициент а найдем из условия ||х|| = 1. Получаем , 2/ - ||2/||е \\У~ \\у\\е\\' Лемма 10. Произведение матрицы отражения на вектор может быть вычислено за 2п + 0(1) (п —> оо) сложений и столько же умножений (точ- нее, за 2п + 1 умножение и 2п — 1 сложение). Доказательство. Для матрицы отражения U(x) и произвольного вектора у имеем U(x)y = (I — 2хх*)у = у — 2х(х* у) = у — 2х(у,х). На вычисление скалярного произведения (у, х) требуется п умножений и п — 1 сложение. На вычисление коэффициента а = 2(у,х) требуется еще одно умно- жение. На вычисление линейной комбинации у — ах требуется п умножений и столько же сложений. Складывая эти оценки, находим, что всего необходимо п+1 + п = 2п+1 умножение и п — 1 + n = 2n — 1 сложений. Лемма 11. Произведение матрицы отражения U(x) Е Мп на матрицу размера п х т может быть вычислено за 2пт + О(т) (п,т —> оо) сложе- ний и столько же умножений (точнее,за (2п + 1)т умножение и (2п — 1)т сложение). Доказательство. Пусть п х т матрица В = U(x)A есть произведение ма- трицы отражения U(x) Е Мп на п х т матрицу А. Запишем матрицы А = (рД) и В = (bij) через их столбцы: А = [Фг\ ..., а^], В = ..., Мт)], где а^ = (aufc, , апкУ, = (bik, , ЬпкУ, к = 1,... ,т. Согласно определению произве- дения матриц В = U(x)A = [U(x)a^,... ,U(x)a^], т.е. b^ = П(х)а^\ к = 1,...,т. Таким образом, для вычисления матрицы В = U(x)A надо вычи- слить т произведений U(x)a^ матрицы U(x) на вектора а^к\ к = Доказываемое утверждение теперь вытекает из леммы 10. К.Ю.Богачев Точные методы решения линейных систем
§13. МЕТОД ОТРАЖЕНИЙ 55 § 13.2. Алгоритм метода отражений Пусть требуется решить линейную систему Ах = b, А Е М.п вида (4.1). Обозначим ср = (а11;..., ап1)* - первый столбец матрицы А. Согласно лем- ме 9 существует вектор Д1) 6 С", равный (1) _ । ai ~ На1Не1 11«1 - 1ЫЫГ такой, что [Дх^Дг = || di Цех, где е± = (1, 0,..., 0) Е Сп, Ui = U(x^') - матрица отражения. Умножим систему Ах = b на слева, получим А^х = &(1), где ( 1Ы1 A^ = U(xw)A= ° С12 л “22 С1п “2п a(i) > ипп / bw = U(xw)b. \ о «2 Далее процесс применяется к подматрице (ajp)i;J=2,...,n. Пусть сделаны к — 1, к = 1,... ,п шагов этого процесса, т.е. система преобра- зована к виду А^х = Ь{к~1\ (1) где А^ = П UiA, ь^= п ид, i=k — l i=k — l (2) (1Ы1 С12 Н1’!! С13 С23 iH’ll . Cl,к-1 С2,к-1 Сз,к-1 С1к С2к С3к С1п С2п Сзп Ск—1,к акк С/; — 1,п акп \ апк аМ ипп / ( Ii-1 0 \ 0 и(х(Д J ’ (3) здесь Ij_x 6 Mj_x - единичная матрица размера (г — 1) х (г — 1), U(x^) Е Mn_j+i - матрица отражения размера (п — г + 1) х (п — г + 1), построенная по вектору а<Г1)-||4-1)||еГ+1) Ihf-1’ - 11«(Г1’||е(С+1)Н К. Ю. Богачев Точные методы решения линейных систем
§13. МЕТОД ОТРАЖЕНИЙ 56 где е™ = (1,0,..,0)бСт. Обозначим а?-1’ = е С”-‘« (4) - первый столбец подматрицы (a- 1'>)ij=k,...,n Согласно лемме 9 существует ма- трица отражения (fc-1) _ и (к-1) и (n-Zc+1) U(x^ = 1- 2х^к\х^У, х^ = ±-^п----------------- гь J г fr+n е Сп-*+1> (5) к 7 к 7 Ца^-1 -1|4 )ll4n-fc+1)|| такая, что и(х^а^ = ||4fc-1)||4ra-A:+1). (6) Положим Uk = ( 01 идк) ) (7) Покажем, что матрица Uk является унитарной, т.е. U£ = иД По правилам перемножения блочных матриц о U* ик к-1 О 1к-1 О 0 I - и иы I ~ Ui’ (8) Сг2 л \ / т П \ о1 и-ы ) = { о1 4_t+1 ) = '»= ' <9’ что и означает U£ = иД, т.е. унитарность матрицы Uk- Умножим систему (1) на Uk слева, получим где А^х = Ь^\ ( А^ = UkA^~^ = Д й А, i=k ||О1|| С12 Оз с1,к-1 Ца^Ц с23 с2,к-1 ||(42)|| сзл-1 = Ukb^ = Y[Uib, С1п С2п СЗл (10) Clk С2к Сзк i=k с1,к+1 С2,к+1 Сз,к+1 ди = 11«Г2)11 ^к—1,к С/с—1,/с+1 С/с,/с+1 ак+1,к+1 С/с — 1 ,п ^к,п ак+1,п \ (fc) ап,к+1 a(k) unn (11) К. Ю. Богачев Точные методы решения линейных систем
§13. МЕТОД ОТРАЖЕНИЙ 57 Отметим, что при умножении матрицы Uk вида (5) на матрицу А^-1^ вида (3) она умножается только на подматрицу (a- матрицы размера п — к + 1 (остальная часть А^-1^ в преобразовании (10) не участвует). Вычисления по формулам (5) осуществляются следующим образом: вначале вычисляются числа «и= Ё |<Ц|2, (12) J=fc+1 ||4‘_1||| = ЛГЫ аз) затем - вектор = (<ц -1 А1-1’ II, <11 • • •, «А е C”-‘+I (14) и его норма 11х^ 11 = У|х^|2 + sk. (15) Теперь можно вычислить искомый вектор х^ : := т.е. := j = 1,...,п — к + 1. (16) После п шагов этого процесса (т.е. перехода от матриц и правых ча- стей (2), (3) к (10), (11)) система примет вид (17) Rx = у, где R = i=n у = № = ritu i=n (18) ( 1Ы1 С12 С13 с1,п-2 Cl,n—l Cln IIA’II С23 С2,п-2 C2,/i—1 C2n ||<|| ••• Сз,п-2 Сз,/г—1 Сзп R = (19) ||<”|| C/i—2,n—1 Cn—2,n \ ll<I,ll J (напомним, определения векторов к = 1,... ,п даются в (4), где считаем, (о) \ ЧТО = di). Система (17) с верхней треугольной матрицей R решается обратным ходом метода Гаусса. К. Ю. Богачев Точные методы решения линейных систем
§13. МЕТОД ОТРАЖЕНИЙ 58 § 13.3. Оценка количества арифметических операций в методе отражений Оценим трудоемкость к-го шага алгоритма, а затем просуммируем получен- ные оценки по всем к = 1,..., п. 1. На вычисление матрицы U(xk) по формулам (5) требуется а) п — к умножений и п — к — 1 сложений для вычисления Sk в (12); б) одно умножение, одно сложение и одна операция извлечения корня для вычисления ||а^-1^|| в (13); в) одно вычитание для построения вектора в (14); г) одно умножение, одно сложение и одна операция извлечения корня для вычисления ||ж^|| в (15); д) п — к + 1 делений для построения вектора х^ в (16). Всего для построения матрицы U(а+) требуется (п — к) + 1 + 1 + (п — к + 1) = 2(п — к) + 3 мультипликативных, (п — к — 1) + 1 + 1 + 1 = п — к + 2 аддитивных операций и 1 + 1 = 2 операции извлечения корня. 2. Компоненты к,...,п к-го столбца матрицы , равные компонентам вектора ||а^ х^|| уже вычислены в (13). Столбец к вычисляется не по общим формулам (10) для сокращения количества арифметических операций и уменьшения вычислительной погрешности. 3. Поскольку в формуле (10) матрица Uk вида (5) умножается на матрицу вида (3), то при вычислениях по (10) надо умножить матрицу отражения U(x^) е Mn_fc+1 на подматрицу (a-j~1'>)i=kj...jnjj=k+i,...,n матрицы размера (п—к+1) х (п—к) (&-й столбец матрицы уже вычислен в пункте 2). Согласно лемме 11 на это требуется 2(п — к)(п — к + 1) + О(п — к) = 2(п — &)2 + О(п — к) (п —> оо) умножений и столько же сложений. 4. На вычисление новой правой части по формуле (10) согласно лемме 10 требуется 2(п — к + 1) + 0(1) (п —> оо) умножений и столько же сложений. Итак, на к -ом шаге алгоритма требуется выполнить 2(п — к) + 3 + 2(п — к)2 + О(п — &) + 2(п — & + 1) + О(1) = 2(п — к)2 + О(п — к) (п —> оо) мультипликативных операций, п—к+2+2(п—к)2+О(п—&)+2(п—&+1)+О(1) = 2(п—к)2+О(п—к) (п —> оо) аддитивных операций и 2 операции извлечения корня. Следовательно, всего для проведения алгоритма требуется выполнить У~)(2(п — к)2 + О(п — А:)) = 2п(п — 1)(2п — 1)/6 + О(п2) = |п3 + О(п2) (п —> оо) k=i 3 мультипликативных и столько же аддитивных операций, и 22^=1(2) = 2п опера- ций извлечения корня (которые по трудоемкости по порядку можно сравнить с операциями деления). На решение системы (17) с верхней треугольной матрицей R обратным ходом метода Гаусса требуется О(п2) (п —> оо) арифметических операций. Таким образом, на решение линейной системы методом отражений требуется |п3 + О(п2) (п —> оо) мультипликативных и столько же аддитивных операций (что в 2 раза больше, чем в методе Гаусса). К. Ю. Богачев Точные методы решения линейных систем
§13. МЕТОД ОТРАЖЕНИЙ 59 Теорема 1 (О Q-R-разложении). Всякая невырожденная матрица А Е Мп может быть представлена в виде А = Q R , где матрица Q - унитар- ная, а матрица R - верхняя треугольная с вещественными положительными элементами на главной диагонали. Это разложение единственно. Доказательство проходит аналогично доказательству теоремы 12.1. Про- ведем для матрицы А алгоритм метода отражений, осуществимый для всякой 1 невырожденной матрицы. Обозначим в (18) Q = П U. Как произведение уни- i=n тарных матриц, матрица Q унитарна. Тогда (5) имеет вид R = QA, откуда А = (Q)~lR = QR, где Q = (Q)* = (Q)-1 Здесь матрица Q унитарна, а матрица R имеет вид (19) и потому удовлетворяет условиям теоремы. Предположим, что возможно два различных разложения А = QR и А = Q'R', удовлетворяющих условиям теоремы. Тогда QR = Q'R! и (<Q'}~lQ = R~lR'. В левой части последнего равенства стоит унитарная матрица, а в пра- вой - верхняя треугольная. Пересечение группы унитарных матриц и группы верхних треугольных матриц состоит из матриц вида D = diag(di,..., dn), где dj = elVi, j = 1,... ,n (проверить самостоятельно). Поскольку диагональные элементы матрицы Rr{R' равны произведениям диагональных элементов ма- триц й-1 и R!, то они вещественны и положительны. Следовательно R~rR' = I, т.е. R = R'. Полученное противоречие доказывает теорему. Замечание 1. Справедливы замечания 12.3 и 12.4 о применении QR- разложения. § 13.4. Построение QR-разложения методом отражений Построение Q.R-разложения. Хранение матриц Q и R в памяти. Пусть стоит задача построить Q.R-разложение для матрицы А. Будем действо- вать как в теореме 1. Проведем для матрицы А метод отражений и получим в результате матрицу R из (19). При этом матрица Q равна (см. доказательство теоремы 1) 1 п п Q = (П и,у = П и‘ = П Д (20) i=n г=1 г=1 Возможны два способа хранения матриц Q и R в памяти. 1. Матрица R хранится на месте верхнего треугольника матрицы А и по- лучается из нее последовательным применением матриц отражения (см. выше алгоритм метода отражений). Для хранения матрицы Q выделяется отдельная матрица Q, которая равна единичной перед первым шагом алгоритма. На шаге к, к = 1,..., п эта матрица умножается справа на матрицу Uk : Q-=QUk К.Ю.Богачев Точные методы решения линейных систем
§13. МЕТОД ОТРАЖЕНИЙ 60 (см. (10), (20)). Матрица Uk вида (5) умножается по алгоритму из леммы 11 на матрицу Q произвольного вида за 2п(п—& + 1) + О(п) = 2п(п—к')+О(п) (п —> оо) умножений и такого же количества сложений (поскольку для вычисления произ- ведения QUk матрицы Q на матрицу Uk вида (5) надо вычислить произведение подматрицы (%j)z=i,...,n,j=A:,...,n размера п х (п — к + 1) на матрицу отражения U^xW') Е Mn_fc+i размера (п — к + 1) х (п — к + 1)). Следовательно, произведение п матриц отражения в (20) может быть вычи- слено за 22fc=i(2n(n — к) + О(п)) = 2пп(п — 1)/2 + О(п2) = п3 + О(п2) (п —> оо) умножений и столько же сложений. 2. Как и в первом способе, матрица R хранится на месте верхнего треугольни- ка матрицы А. Для хранения же матрицы Q отдельная память не выделяется. Заметим, что на шаге к, к = 1,..., п мы использовали матрицу Uk, получающу- юся в (7) из матрицы отражения U(x^), которая в свою очередь целиком опре- деляется вектором х^ Е Сп~к+1 из (5). При этом после преобразования (10), т.е. перехода от матрицы (3) к матрице (11), в к -ом столбце матрицы обра- зовались п — к нулевых элементов а^кк = 0, j = к + 1,... ,п. Поэтому возможно вместо матрицы Q вида (20) хранить на месте нижнего треугольника матри- цы А набор векторов х^к\ к = 1,... ,п, задающий матрицы отражения Utx^). Формула (14) подсказывает удобный способ организации такого хранения: на шаге к х\ = акк ,..., хп:_к+1 = апк , а элемент акк = Ца^ || хранится в виде (к — 1)-ой компоненты дополнительного вектора D. В итоге после п шагов процесса на месте исходной п х п матрицы А и дополнительного вектора D дли- ны п будет находиться следующая информация: верхний треугольник матрицы R : Tij = aij, i < j, i = 1,... ,n, j = 2,... ,n, диагональ матрицы R : гц = di, i = 1,... ,n, набор векторов х®, к = 1,... ,n, x^ = akk, , = ank При втором способе хранения матрицы Q не только экономится п3 ячеек памяти, но и экономится п3 + О(п2) (п —> оо) умножений и такое же количество сложений на построение матрицы Q. Второму способу хранения благоприят- ствует также то обстоятельство, что редко требуется знать матрицу Q ’’саму по себе”. Обычно требуется уметь вычислять ее произведения на вектор и матрицу. Для того, чтобы вычислить произведение матрицы Q вида (20) на некоторую ма- га трицу В требуется вычислить QB = П (UB). На это нужно п3 + О(п2) (п —> оо) г=1 умножений и столько же сложений (см. подсчет количества операций при рас- смотрении первого способа хранения, в котором фактически вычислялось про- изведение матрицы вида (20) и единичной матрицы). Это количество совпадает с количеством арифметических операций, необходимых для вычисления произ- ведения двух матриц Q и В произвольного вида. В силу этого почти всегда используется второй способ хранения матрицы Q. К.Ю.Богачев Точные методы решения линейных систем
§13. МЕТОД ОТРАЖЕНИЙ 61 § 13.5. Оценка количества арифметических операций в алгоритме построения Q.R-разложения методом отражений Трудоемкость алгоритма построения QR-разложения складывается из ко- личества арифметических операций, необходимых для проведения алгоритма метода отражений, и количества арифметических операций, необходимых для построения матрицы Q. Если для Q используется второй способ хранения, то дополнительных дей- ствий для ее построения не требуется. Следовательно, в этом случае для постро- ения Q/?,-разложения надо выполнить |п3+О(п2) (п —> оо) мультипликативных операций и такое же количество аддитивных операций. Если для Q используется первый способ хранения, то как показано выше для ее построения дополнительно к |п3 + О(п2) (п —> оо) мультипликативным и |п3 + О(п2) (п —> оо) аддитивным операциям, необходимых для проведения алгоритма метода отражений, требуется п3 + О(п2) (п —> оо) умножений и п3 + О(п2) (п —> оо) сложений, всего |п3 + О(п2) (п —> оо) мультипликативных и столько же аддитивных операций. Приведение матрицы к почти треугольному виду унитарным подобием Определение. Матрица В называется подобной матрице А, если существует невырожденная матрица С такая, что А = С В С~1. В курсе алгебры доказывается, что подобные матрицы имеют один и тот же набор собственных значений. Определение. Матрица В называется унитарно подобной матрице А, если матрица С в определении выше унитарная. В силу свойства 6 числа обусловленности (см. §3) у унитарно подобных ма- триц числа обусловленности совпадают. Поэтому именно преобразование уни- тарного подобия будет вносить наименьшую вычислительную погрешность. Отметим еще одно свойство унитарного подобия: если матрица А самосопря- женная, то унитарно подобная ей матрица В также самосопряженная. Действи- тельно, В* = (САС~')* = (С'_1)*А*С* = С АС-1 = В. Рассмотренные выше алгоритмы решения линейных систем работали едино- образным способом: они приводили исходную матрицу к более простому виду (треугольному) с помощью преобразований, сохраняющих решение системы; за- тем решение системы с более простой матрицей находилось в явном виде. Пусть стоит задача найти собственные значения матрицы. Попробуем действовать по той же схеме: приведем исходную матрицу к более простому виду с помощью преобразований подобия, сохраняющих собственные значения; затем для этой более простой матрицы тем или иным способом найдем ее собственные значе- ния, которые совпадают с собственными значениями исходной матрицы. Для того, чтобы вносить меньшую вычислительную погрешность, будем использо- вать преобразования унитарного подобия. К. Ю. Богачев Точные методы решения линейных систем
§14. ПРИВЕДЕНИЕ МАТРИЦЫ К ПОЧТИ ТРЕУГОЛЬНОМУ ВИДУ 62 Простейшее рассмотрение алгоритмов метода вращений и отражений пока- зывает, что вид этой более простой матрицы не может быть треугольным. Дей- ствительно, пусть, например, в методе вращений при умножении на матрицу Т12 слева элемент (2,1) исходной матрицы становится равным нулю. Тогда при умножении на матрицу Т^1 = Т*2 справа этот элемент может измениться и перестать быть равным нулю. Определение. Матрица А = (а^) называется почти треугольной, если = О при i > j + 1, j = 1,..., п — 2, i = 3,..., п. Оказывается, всякую матрицу можно привести к почти треугольному виду с помощью унитарного подобия. § 14. ПРИВЕДЕНИЕ МАТРИЦЫ К ПОЧТИ ТРЕУГОЛЬНОМУ ВИДУ УНИТАРНЫМ ПОДОБИЕМ МЕТОДОМ ВРАЩЕНИЙ Пусть требуется привести вещественную матрицу А к почти треугольному виду. Всюду ниже мы будем часто пользоваться тем фактом, что при умножении матрицы А на матрицу элементарного вращения Tjj слева изменяются только строки i и j матрицы А, а при умножении на Т^ справа изменяются только столбцы i и j матрицы А. § 14.1. Случай произвольной матрицы Обозначим а4 = («21, , аП1)* Согласно лемме 12.3 существуют п — 2 матриц Ту = T2j(<p2j), j = 3,...,п, таких, что Т2п ... T^T^at = 11 оц 11 (причем значения углов <p2j, j = 3,...,п определяются леммами 12.2, 12.3). Умножим матрицу А на Т2п ... Т24Т23 слева, получим / А^=Т2п...Т24Т23А = «II 1Ы1 о «12 Д1) «22 Д1) «32 «1п Д1) а2п Д1) а3п (1) ап2 ас) «пл / Умножим матрицу ДС) на (Т2п... Т24Т23)* = Т^Т^.-.Т^ справа, получим (с учетом того, что при умножении справа на T2j, j = 3,...,п первый столбец К. Ю. Богачев Точные методы решения линейных систем
§14. ПРИВЕДЕНИЕ МАТРИЦЫ К ПОЧТИ ТРЕУГОЛЬНОМУ ВИДУ 63 матрицы А^1) не изменяется) «п Л(!) = Т* . . . Т* = ^71 ^ifb nW «12 „(1) «22 А1) «32 nW \ а1п Д1) «2п Д1) «Зп (2) Д1) «m2 Д1) ипп / О О Пусть сделаны к — 1, к = 1,... ,п — 1 преобразована к виду шагов этого процесса, т.е. матрица к п 2 г+1 (3) «п «12 «22 ll^ll i=kj=n i=2j=i+l «13 «23 А?) U33 iH’ll С1,к-1 с2,к-1 сЗ,к-1 а1к а2к а3к «1п д*-1) а2п Д*-1) а3п Д*-2) ак-1,к-1 пД*-2)ц ак-1,к акк ак+1,к ик-1,п акп Д*-1) ик+1,п (4) апк Д*-1) ипп Обозначим Лк-1) _ и»! — (*-i) 'кк ., е В?-* (5) - часть первого столбца подматрицы (ajj 1'>)i,j=k,...,n Согласно лемме 12.3 ществуют п - к - 1 матриц Tk+ltj = Tk+^j2^k+^j), j = к + 2,...,п таких, что су- Tk+i,n Тк+^к+Дк+^к+2а^к — Ца^ 1^||ei"' к>> (6) (значения углов (fik+ij, j = к + 2,... ,п определяются леммами 12.2, 12.3). Умно- жим матрицу (3) на Тк+1,п ... Tk+ljk+3Tk+ljk+2 слева, получим к+2 = П Tk+rjA^, j=n (7) К. Ю. Богачев Точные методы решения линейных систем
§14. ПРИВЕДЕНИЕ МАТРИЦЫ К ПОЧТИ ТРЕУГОЛЬНОМУ ВИДУ 64 где А^ = ан 1Ы1 С12 «и ^22 Ill’ll С13 С23 пР) CZ33 Ill’ll ' Л,к-1 С2,к-1 сЗ,к-1 - НА н«12’н Clfc Лк с3к Ск—1,к lll’1,ll “i,fc+i u2,fc+l азл+1 А*-1) uk-l,fc+l Л*-1) ак,к+1 ~(к) ак+1,к+1 Лк) ак+2,к+1 Л-1) а1п а2п Дк-1) а3п ик-1,п Л*-1) акп Лк) ак+1,п Лк) ак+2,п \ ~(к) ап,к+1 А*-1) ипп (8) Отметим, что в (7) каждая из п — к — 1 матриц элементарных вращений 7^+i,j такова, что j > к + 1 и потому в (7) она умножается только на подматрицу (aij~1'>)i=k+i,...,n,j=k,...,n матрицы А^-1^ размера (п — к) х (п — к + 1) (остальная часть в преобразовании (7) не участвует). Умножим матрицу А^ на (7*+1;П ... Tfc+1;fc+2)* = ТД1Л+2 ... ТД^п справа, получим из (8) (с учетом того, что при умножении справа на Tfc+ij, j = к + 2,... ,п столбцы 1,..., к матрицы не изменяются) п к+2 п П Tw j=k+2 (9) л<‘> = А<‘> П Ttu,i = П Tk+1JAft-l> j=k+2 j=n < Oil С12 С13 ... Ci;k-1 Clk ||O11| O22 c23 C2,k-1 Лк Ill’ll 1’ ... c3,t_! c3t Ill’ll ••• ’ ’ (fc-2) Д(к) — ’ ak-l,k-l ck-l,k (к) (к) \ «1Л+1 Лп ) (к) (к) а2,к+1 а2п (к) (к) аЗ,к+1 а3п (.к) (к) ак-1,к+1 ак-1,п (к) (к) ак,к+1 акп lll~2’ll If1’ 111-1’II \ Отметим, что в (9) каждая из п — к — 1 матриц {к) {к) ак+1,к+1 ак+1,п (к) (к) ак+2,к+1 ак+2,п Un,fc + 1 / элементарных враще (10) НИЙ Tk+r,j{Tk+i,j) = Tk+lj(-(pk+ld) такова, что j > к + 1 и потому в (9) она умно- жается только на подматрицу (a- )i=i,...,n,j=k+i,...,n матрицы А^-1^ размера п х (п — к) (остальная часть Дк в преобразовании (9) не участвует). К. Ю. Богачев Точные методы решения линейных систем
§14. ПРИВЕДЕНИЕ МАТРИЦЫ К ПОЧТИ ТРЕУГОЛЬНОМУ ВИДУ 65 После п — 2 шагов этого процесса (т.е. перехода от матриц (3), (4) к (9), (10)) матрица примет требуемый почти треугольный вид R = А^ 2,= п i=n— г+1 п—1 П т.,А п 1j=n 1=2 j п п ч =г+1 (11) < ац С12 С13 «1,п—2 „(п-2) (п-2) \ «1,п-1 «1п II «111 «22 «23 с2,п-2 (п-2) (п-2) «2,п—1 «2п lA’ll 4? c3,n-2 (п-2) (п-2) «3,п-1 «Зп R = Il42)ll (12) „(п-з) „(п-2) Дп~2') «п—2,п—2 «п—2,п— 1 «п—2,п 114”-” II Ап~2') л(п~У ^п —1,71— 1 ^74 —1,74 \ (п-2) (п_2) ^71,71 — 1 7474 / (напомним, определения векторов к = 1,..., п — 2 даются в (5), где счи- (о) \ таем, что аЦ = оц). Оценка количества арифметических операций в алгоритме приведения матрицы к почти треугольному виду унитарным подобием методом вращений Оценим трудоемкость к-го шага алгоритма, а затем просуммируем получен- ные оценки по всем к = 1,..., п — 2. 1. На вычисление п—к — 1 матриц T^k+i,..., Цп, участвующих в (6), согласно лемме 12.2 требуется 4(п — к — 1) мультипликативных, 2(п — к — 1) аддитивных и п — к операций извлечения корня. 2. На вычисление компонент к + 1,..., п к-го столбца матрицы , равных компонентам вектора 11 11 к' требуется (для вычисления длины векто- ра (5)) п — к операций умножения, п — к — 1 операций сложения и одна опера- ция извлечения корня. Столбец к вычисляется именно этим способом (а не по общим формулам (7)) для сокращения количества арифметических операций и уменьшения вычислительной погрешности. 3. Поскольку в формуле (7) каждая из п — к — 1 матриц элементарных враще- ний умножается на подматрицу (аг5_1))г=й+1,...Лj=k+i,...,n матрицы А^-1^ размера (п — к) х (п — к) (&-й столбец матрицы уже вычислен в пункте 2), то согласно лемме 12.5 на это требуется (п — к — 1)4(п — к) = 4(п — к)2 — 4(п — к) умножений и (п — к — 1)2(п — к) = 2(п — к)2 — 2(п — к) сложений. 4. Поскольку матрица, транспонированная к матрице элементарного враще- ния, опять является матрицей элементарного вращения: = ^1+1,j( — Tk+lj) и в формуле (9) каждая из этих п — к — 1 матриц элементарных вращений умно- жается только на подматрицу (а-к ^)i=i,...,n,j=k+i,...,n матрицы размера К. Ю. Богачев Точные методы решения линейных систем
§14. ПРИВЕДЕНИЕ МАТРИЦЫ К ПОЧТИ ТРЕУГОЛЬНОМУ ВИДУ 66 п х (п — к), то согласно лемме 12.5 на это требуется (п — к — 1)4п = 4п(п — к) — 4п умножений и (п — к — 1)2п = 2п(п — к) — 2п сложений. Итак, на к -ом шаге алгоритма требуется выполнить 4(п — к — 1) + (п — к) + 4(п — к)2 — 4(п — к) + 4п(п — к) — 4п = 4п(п — к) + 4(п — к)2 + (п — к) — 4п — 4 мультипликативных операций, 2(п — к — 1) + (п — к — 1) + 2(п — к}2 — 2(п — к) + 2п(п — к) — 2п = 2п(п — к) + 2(п — к)2 + (п — к) — 2п — 3 аддитивных операций и п — к операций извлечения корня. Следовательно, всего для проведения алгоритма требуется выполнить п—2 У~)(4п(п — к) + 4(п — к)2 + (п — к) — 4п — 4) = 4п((п — 1)(п — 2)/2 — 1) к=1 +4((п - 1)(п - 2)(2п - 3)/6 - 1) + (п - 1)(п - 2)/2 - 1 - 4(n - 2)(n + 1) = 2п3 + О(п2) + |п3 + О(п2) + О(п2) = уп3 + О(п2) (п —> оо) мультипликативных операций, 22&=i(2n(n — к) + 2(п — к)2 + (п — к) — 2п — 3) = |п3 + О(п2) (п —> оо) аддитивных операций и ^Z2(n —&) = О(п2) (п —> оо) опе- раций извлечения корня (которые по трудоемкости по порядку можно сравнить с операциями деления). Таким образом, на приведение матрицы к почти треугольному виду унитар- ным подобием методом вращений требуется уп3 + О(п2) (п —> оо) мультипли- кативных операций и |п3 + О(п2) (п —> оо) аддитивных операций. Заметим, что это количество операций в два с половиной раза больше, чем нужно для решения линейной системы методом вращений. Теорема 1. Всякая невырожденная вещественная матрица А может быть представлена в виде А = Q R.Q1, где матрица Q - ортогональная, а матрица R - верхняя почти треугольная. Доказательство. Проведем для матрицы А изложенный выше алгоритм, осуществимый для всякой невырожденной матрицы. Обозначим в (11) Q = 2 г+1 п П Tij. Как произведение ортогональных матриц, матрица Q ортогональ- i=n—1j=n на. Тогда (11) имеет вид R = QAQf, откуда А = Р.((ДЦ' = QRQ*, где Q = (Q)* = (Q)-1 ~ ортогональная матрица. Матрица R, имеющая вид (12), удовлетворяет условиям теоремы. Замечание 1. Как отмечалось выше, построенное в теореме 1 разложение используется в ряде алгоритмов нахождения собственных значений матрицы. Хранение матриц Q и R в памяти осуществляется одним из способов, из- ложенных при обсуждении алгоритма построения <2й-разложения для матрицы А методом вращений. Трудоемкость алгоритма построения описанного выше разложения скла- дывается из количества арифметических операций, необходимых для проведе- ния самого алгоритма, и количества арифметических операций, необходимых К. Ю. Богачев Точные методы решения линейных систем
§14. ПРИВЕДЕНИЕ МАТРИЦЫ К ПОЧТИ ТРЕУГОЛЬНОМУ ВИДУ 67 для построения матрицы Q. Подробные выкладки были проведены при обсу- ждении алгоритма построения Q-R-разложения методом вращений. § 14.2. Случай симметричной матрицы Рассмотрим ситуацию, когда описанный выше метод приведения к почти тре- угольному виду применяется к симметричной матрице А Е М.п. Согласно (1), (2) А^ = QiAQ{, где Qi = Т2п... Т^ДДа - ортогональная матрица, т.е. А/1) и А - унитарно подобны. Следовательно, А^1) - симметричная матрица. Соглас- но (7), (9) на к-ом (к = 1,...,п — 2) шаге алгоритма = Qj-A^^Ql, где (Д = Тк+1,п... Тк+ук+3Тк+ук+2 - ортогональная матрица. Следовательно, А^ и А унитарно подобны, и - симметричная матрица для всякого к = 1,...,п — 2. Таким образом, R = А^п~2>) - почти треугольная и симме- тричная, т.е. трехдиагональная матрица. Запишем описанный выше процесс приведения симметричной матрицы к трехдиагональному виду так, чтобы максимально уменьшить объем вычисли- тельной работы за счет использования симметрии. Лемма 1. Для всякой матрицы элементарного вращения Ту Е Мп и вся- кой симметричной матрицы А Е Мп матрица В = ТуАТу может быть вычислена за 4п + 8 умножений и 2п + 4 сложений. Доказательство. Матрица В = ТуА согласно лемме 12.5 вычисляется за 4п умножений и 2п сложений. Матрица В = Цы) = ТуАТу унитарно подобна А и потому симметрична: Ьм — bik, к, I — 1,..., п. С другой стороны, матрица В = ВТу получается из матрицы В = измене- нием элементов, расположенных только в г-ом и .У-ом столбцах: Ьы = Ьы, к,1 = 1,...,п. Из последних двух равенств получаем: Ьк1 = Ьы, (к,1) к,1 = 1,...,п, т.е. у матриц В и В отличаются только 4 элемента с индексами (г, г), (г, j), (j, г), 0,j)- Эти элементы получаются умножением г-й и j-й строки матрицы В на матрицу Ту справа и вычисляются по формулам Ьц Ьц cos ру И- by sin py. by Ьц sin ру by cos py. bji = bji cos py -I- bjj sin py, bjj = bjj sin py — bjj cos py. Эти вычисления требуют дополнительно 8 умножений и 4 сложения. Склады- вая это с трудоемкостью построения матрицы В, получаем требуемую оценку. К. Ю. Богачев Точные методы решения линейных систем
§14. ПРИВЕДЕНИЕ МАТРИЦЫ К ПОЧТИ ТРЕУГОЛЬНОМУ ВИДУ 68 Замечание 2. Для несимметричной матрицы А вычисление матрицы В = TijATtj требует 8п умножений и 4п сложений (см. лемму 12.5). Обозначим ai = («21, , аП1)*- Согласно лемме 12.3 существуют п — 2 матриц T2j = T2j(<p2j), j = 3,...,п, таких, что Т2п ... T2yT23aY = 11 аг 11 (причем значения углов j = 3,... ,п определяются леммами 12.2, 12.3). Обозначим 4° = Т23АТ*3, 41} = ДД^ТЬ, ..., АО = Т2Д^_Д*п. Все матрицы 44 j = 3,4, ...,п унитарно подобны А и потому симметричны. Согласно (1), (2) АС) = АС), в силу симметрии матрицы АС) вместо (2) для нее справедливо более точное равенство АО = Т2д... (Т24(Т2зАТ24Т24 . = / «11 4x11 0 4111 «22 ао «32 0 . (?С) «23 ао «33 . 0 (?С) «2п ао «Зп • (13) \ 0 п С) «п2 4) «пЗ аО Таким образом, у матрицы АС) необходимо с помощью леммы 1 вычислить только подматрицу («^4,7=2,...,п £ Mn-i (так как остальные элементы уже вы- числены) . Пусть сделаны к — 1, к = 1,... ,п — 1 шагов этого процесса, т.е. матрица преобразована к виду (3), где ^(*-1) _ / ац 4111 а22 ||а1 ’ll llA1’ 11 «S’ Il42’ll ц«<‘-3’|| ••• «УД 11«Г’н ||4‘-2’|| С4 акп аС-1) ик+1,п (14) аС-1) > ипп / Введем обозначение (5). Согласно лемме 12.3 существуют п — к — 1 матриц = Tk+Y^Tk+rj}-: J = к + 2,... ,п таких, что справедливо равенство (6). Обозначим А^2 = ,к+2’ 4+3 — ^+1Л+з4+2^+1Л+3 ’ ’ АС) = Д+1>пА41 Дс+1,п Все матрицы А^к\ j = к + 1, к + 2,... ,п унитарно подобны АС-1) и потому симметричны. Согласно (7), (9) АС) = АС). В силу симметрии матрицы С^) — Тк+1Д... (Тк+1,к+з(Тк+1,к+2А^к ^Д^хл+г^/с+Цй+з) У1к+1,п (15) К. Ю. Богачев Точные методы решения линейных систем
§14. ПРИВЕДЕНИЕ МАТРИЦЫ К ПОЧТИ ТРЕУГОЛЬНОМУ ВИДУ 69 вместо (10) для нее справедливо более точное равенство / du ||oi|| \ ll«i|| «S ||«11)|| ll«i1)|| «зз Il42’ll Н«Г”Н ЛИ= «KL 11«Г2,н |И’2,Н «It1’ н<4‘-1’|| и {к- 1)ц {к) {к) ll«l II «fc+l,fc+l ак+У,п (к) (к) ак+2,к+1 ак+2,п 1 “»Л+1 °£-1’ ! (16) Таким образом, у матрицы необходимо с помощью леммы 1 вычислить только подматрицу (ajp)i;J=fc+i;...;n Е Mn_fc_i (так как остальные элементы уже вычислены). После п—2 шагов этого процесса (т.е. перехода от матриц (3), (14) к (15), (16)) матрица примет требуемый трехдиагональный вид (11), где / ац ll«i|| а22 ||«1 )|| l|ai1)|| «зз Н42’Н н4”Т1 ||Я(Г~3’|| (п-2) (п-2) **71 — 1,71—1 **71,71 — 1 (17) (напомним, определения векторов к = 1,..., п — 2 даются в (5), где счи- (о) \ таем, что (ц' = щ). Оценка количества арифметических операций в алгоритме приведения симметричной матрицы к трехдиагональному виду унитарным подобием методом вращений Оценим трудоемкость к-го шага алгоритма, а затем просуммируем получен- ные оценки по всем к = 1,..., п — 2. 1. На вычисление п—к — 1 матриц ..., Цп, участвующих в (6), согласно лемме 12.2 требуется 4(п — к — 1) мультипликативных, 2(п — к — 1) аддитивных и п — к операций извлечения корня. 2. На вычисление компонент к + 1,..., п к-го столбца и к -ой строки матри- цы , равных компонентам вектора 11 11 е^1 к' требуется (для вычисления К. Ю. Богачев Точные методы решения линейных систем
§14. ПРИВЕДЕНИЕ МАТРИЦЫ К ПОЧТИ ТРЕУГОЛЬНОМУ ВИДУ 70 длины вектора (5)) п — к операций умножения, п — к — 1 операций сложения и одна операция извлечения корня. &-й столбец и /с-ая строка вычисляются именно этим способом для сокращения количества арифметических операций и уменьшения вычислительной погрешности. 3. Вычисления по формуле (15) можно представить как последовательное вычисление матриц , I = к + 1,к + 2,... ,п, у которых нужно вычислить только подматрицу Е . Согласно лемме 1 на вычисле- ние каждой подматрицы требуется 4(п — к — 1) + 8 = 4(п — к) + 4 умножений и 2(п — к — 1) + 4 = 2(п — к) + 2 сложений. На вычисление всех п — к — 1 подматриц требуется, таким образом, (п — к — 1)(4(п — к) + 4) = 4(п — к)2 — 4 умножений и (п — к — 1)(2(п — к) + 2) = 2(п — к)2 — 2 сложений. Итак, на к -ом шаге алгоритма требуется выполнить 4(п — к — 1) + (п — к) + 4(п — к)2 — 4 = 4(п — к)2 + 5(п — к) — 8 мультипликативных операций, 2(п — к — 1) + (п — к — 1) + 2(п — к}2 — 2 = 2(п — к}2 — 3(п — к) — 5 аддитивных операций и п — к операций извлечения корня. Следовательно, всего для проведения алгоритма требуется выполнить п—2 У~)(4(п —/с)2 + 5(п —/с) — 8) = 4(п(п—1)(2п —1)/6 —1) + 5(п(п—1)/2 —1) —8(п —2) к=1 = ^п3 + О(п2) + О(п2) + О(п) = ^п3 + О(п2) (п —> оо) мультипликативных операций, 22/~2(2(п — к)2 — 3(п — к) — 5) = |п3 + О(п2) (п —> оо) аддитивных операций и £^Z2(n — к) = О(п2) (п —> оо) операций извлече- ния корня (которые по трудоемкости по порядку можно сравнить с операциями деления). Таким образом, на приведение симметричной матрицы к трехдиагональному виду унитарным подобием методом вращений требуется |п3 + О(п2) (п —> оо) мультипликативных операций и |п3 + О(п2) (п —> оо) аддитивных операций. Заметим, что это количество операций в два с половиной раза меньше, чем требуется для приведения произвольной матрицы к почти треугольному виду унитарным подобием методом вращений и совпадает количеством операций, не- обходимым для решения линейной системы методом вращений. Теорема 2. Всякая невырожденная вещественная симметричная матрица А может быть представлена в виде А = Q R.Q1, где матрица Q - ортого- нальная, а матрица R - трехдиагональная. Доказательство Совпадает с доказательством теоремы 1. Хранение матриц Q и R в памяти осуществляется одним из способов, из- ложенных при обсуждении алгоритма построения <2й-разложения для матрицы А методом вращений. Для симметричных матриц А удобно применять второй способ. Действительно, так как на шаге к, к = 1,..., п — 2 мы использовали п — к — 1 элементарных вращений 7^+1,fc+2, Дк+1,п для получения нулевых К. Ю. Богачев Точные методы решения линейных систем
§15. ПРИВЕДЕНИЕ МАТРИЦЫ К ПОЧТИ ТРЕУГОЛЬНОМУ ВИДУ 71 элементов = 0, off = 0, j = к + 2,..., п, то можем хранить, например, (А) л • (А) л cosна месте (ЕД = 0, a sm4>k+i,j - на месте аД = 0. Трудоемкость алгоритма построения описанного выше разложения скла- дывается из количества арифметических операций, необходимых для проведе- ния самого алгоритма, и количества арифметических операций, необходимых для построения матрицы Q. Подробные выкладки были проведены при обсу- ждении алгоритма построения Q-R-разложения методом вращений. § 15. ПРИВЕДЕНИЕ МАТРИЦЫ К ПОЧТИ ТРЕУГОЛЬНОМУ ВИДУ УНИТАРНЫМ ПОДОБИЕМ МЕТОДОМ ОТРАЖЕНИЙ Пусть требуется привести матрицу А (не обязательно вещественную) к почти треугольному виду. Всюду ниже мы будем часто пользоваться следующими фактами. 1. Если по произвольной матрице Uk Е М& (размера кхк) построить матрицу U Е М.п (размера п х п) по формуле и = ( V и 'I ’ W \ и ик J где 1п_к Е - единичная матрица размера (п—к) х (п-к), то при умножении матрицы А на матрицу U слева изменяются только последние к строк матрицы А, а при умножении на U справа изменяются только последние к столбцов матрицы А. Это следует из определения умножения матриц. 2. Если матрица Uk Е М& в (1) самосопряженная, то матрица U Е Мп, полученная в (1), также самосопряженная. Это доказано при рассмотрении ал- горитма метода отражений, см. (13.8). 3. Если матрица Uk Е в (1) унитарна, то матрица U Е Мп, получен- ная в (1), также унитарна. Это доказано при рассмотрении алгоритма метода отражений, см. (13.9). § 15.1. Случай произвольной матрицы Обозначим щ = (a2i, , аП1У Согласно лемме 13.9 существует вектор аА1) g Сп, равный (1) = , Qi ~ ||Qi||ei ll«i - 11«1||е1|Г такой, что U(x^)a,i = ||ai||ei, где ei = (1,0, ...,0) Е С"-1, U(x^) Е Mn_! - матрица отражения. Положим U1 = ( 0 U(x^) ) ’ К.Ю.Богачев Точные методы решения линейных систем
§15. ПРИВЕДЕНИЕ МАТРИЦЫ К ПОЧТИ ТРЕУГОЛЬНОМУ ВИДУ 72 Как отмечалось выше, матрица Ц является унитарной. Умножим матрицу А на Ц слева, получим матрицу А^1) вида (14.1) (по- скольку первая строка матрицы А не изменяется). Умножим матрицу А^1) на U* = Ui справа, получим матрицу (14.2) (с учетом того, что при умножении справа на Ц первый столбец матрицы А^1) не изменяется). Пусть сделаны к — 1, к = 1,... ,п — 1 шагов этого процесса, т.е. матрица преобразована к виду 2 к ам = п?лаП^ (з) i=k i=2 где А^ имеет вид (14.4), здесь Ц Е Mj - единичная матрица размера г х г, U(x^) Е Mn_j - матрица отражения размера (п — г) х (п — г), построенная по вектору (г)__। _____IIй! IIе! с pn-i - || (г-1) и (г-1) и (п-г)ц ’ 11«1 - ||«1 IIе! II где е!т) = (1,0,... ,0) Е Ст, а{Г1} = ^,...,а^ЕСп~\ Обозначим через часть первого столбца подматрицы (a^j 1^')ij=k,...,n, см. (14.5). Согласно лемме 13.9 существует матрица отражения (к— 1) _ и (к— 1)ц {п—к) U(x^) = I - 2xw(xwy, xw = ± ~ ||а). п1|в) .. Е Сп~к, (4) V V ’ ||«Г МН И II такая, что Щх^)а[к~1} = ЦМ^ЦеМ- (5) Положим Как отмечалось выше, матрица Uk является самосопряженной и унитарной. Умножим матрицу (3) на Uk слева, получим A(fc) = UkA^-V, (7) где матрица А^ имеет вид (14.8) Отметим, что в (7) первые к строк у матриц А^ и А^-1^ совпадают. Другими словами, преобразование (7) заключается в К. Ю. Богачев Точные методы решения линейных систем
§15. ПРИВЕДЕНИЕ МАТРИЦЫ К ПОЧТИ ТРЕУГОЛЬНОМУ ВИДУ 73 умножении матрицы U(xk) G на подматрицу (d-j ^)i=k+i,...,n,j=k,...,n ма- трицы А^-1^ размера (п — к) х (п — к + 1) (остальная часть А^-1^ в преобразо- вании (7) не участвует). Умножим матрицу на U£ = Uk справа, получим из (14.8) (с учетом того, что при умножении справа на Uk столбцы 1,..., к матрицы не изменяются) А^ =A^Uk = UkA^Uk, (8) где матрица имеет вид (14.10). Отметим, что в (8) первые к столбцов у ма- триц А^ и А^ совпадают. Другими словами, преобразование (8) заключается в умножении матрицы U(xk) G на подматрицу (azj-1^)j=i,...,n,j=A:-i-i,...,?i ма- трицы А^-1^ размера п х (п — к) (остальная часть А^-1^ в преобразовании (8) не участвует). Вычисления по формулам (4) осуществляются следующим образом: вначале вычисляются числа п У ИА’|2, (9) j=k+2 ||<4‘-1,н = ДУУ + ^- (ю) затем - вектор = (С15 - н4‘-1,||, УЛ.... AV1’)1 е С-1 (11) и его норма iA’ii = vAFF+Z. иг) Теперь можно вычислить искомый вектор х^ : х^ := т.е. х^ := ж^/||ж^^||, j = 1,...,п — к. (13) После п — 2 шагов этого процесса (т.е. перехода от матриц (3), (14.4) к (8), (14.10)) матрица примет требуемый почти треугольный вид (14.12), где 1 п-2 R = A^ = П иД\]ДД (14) i=n—2 г=1 Оценка количества арифметических операций в алгоритме приведения матрицы к почти треугольному виду унитарным подобием методом отражений Оценим трудоемкость к-го шага алгоритма, а затем просуммируем получен- ные оценки по всем к = 1,..., п — 2. 1. На вычисление матрицы и(хД по формулам (4) требуется а) п — к — 1 умножений и п — к — 2 сложений для вычисления Sk в (9); К. Ю. Богачев Точные методы решения линейных систем
§15. ПРИВЕДЕНИЕ МАТРИЦЫ К ПОЧТИ ТРЕУГОЛЬНОМУ ВИДУ 74 б) одно умножение, одно сложение и одна операция извлечения корня для вычисления ||а^ х^|| в (10); в) одно вычитание для построения вектора х^ в (11); г) одно умножение, одно сложение и одна операция извлечения корня для вычисления ||ж^|| в (12); д) п — к делений для построения вектора х^ в (13). Всего для построения матрицы U(хк) требуется (п — к — 1) + 1 + 1 + (п — к) = 2(п — к) + 1 мультипликативных, (п — к — 2) + 1 + 1 + 1 = п — к + 1 аддитивных операций и 1 + 1 = 2 операции извлечения корня. 2. Компоненты к + 1,..., п к-го столбца матрицы , равные компонентам вектора ||а^ Х^|| е\п к\ уже вычислены в (10). Столбец к вычисляется не по общим формулам (7) для сокращения количества арифметических операций и уменьшения вычислительной погрешности. 3. Поскольку в формуле (7) матрица U(xk) Е Мп_к умножается на подма- трицу (azj-1^)j=A:+i,...,n,матрицы А^-1^ размера (п — к) х (п — к) (&-й столбец матрицы А^ уже вычислен в пункте 2), то согласно лемме 13.11 на это требуется 2(п — к)2 + О(п — к) (п —> оо) умножений и столько же сложений. 4. Поскольку в формуле (8) матрица U(xk) Е У1п-к умножается на подма- трицу (a-j ^)i=i,...,n,j=k+i,...,n матрицы размера п х (п — к), то согласно лемме 13.11 на это требуется 2(п — к)п + О(п — к) (п —> оо) умножений и столько же сложений. Итак, на к-ом шаге алгоритма требуется выполнить 2(п — к) + 1 + 2(п — к)2 + 2п(п — к) + О(п — к) = 2п(п — к) + 2(п — к)2 + О(п — к) мультипликативных операций, п—&+1+2(п—к)2+2п(п—к)+О(п—к) = 2п(п—&)+2(п—к)2+О(п—к) аддитивных операций и 2 операции извлечения корня. Следовательно, всего для проведения алгоритма требуется выполнить п—2 У~)(2п(п — к) + 2(п — к)2 + О(п — &)) к=1 = 2п((п — 1)(п — 2)/2) + 2((п — 1)(п — 2)(2п — 3)/6) + О(п2) = п3 + О(п2) + |п3 + О(п2) = |п3 + О(п2) (п —> оо) мультипликативных операций, столько же аддитивных операций и 2(п — 2) опе- раций извлечения корня (которые по трудоемкости по порядку можно сравнить с операциями деления). Таким образом, на приведение матрицы к почти треугольному виду унитар- ным подобием методом отражений требуется |п3 + О(п2) (п —> оо) мульти- пликативных операций и столько же аддитивных операций. Заметим, что это количество операций в два с половиной раза больше, чем нужно для решения линейной системы методом отражений. Теорема 1. Всякая невырожденная матрица А может быть представле- на в виде А = Q R.Q1, где матрица Q - унитарная, а матрица R - верхняя почти треугольная. К.Ю.Богачев Точные методы решения линейных систем
§15. ПРИВЕДЕНИЕ МАТРИЦЫ К ПОЧТИ ТРЕУГОЛЬНОМУ ВИДУ 75 Доказательство. Проведем для матрицы А изложенный выше алгоритм, осуществимый для всякой невырожденной матрицы. Обозначим в (14) Q = 1 п Ui. Как произведение унитарных матриц, матрица Q унитарна. Тогда (14) имеет вид R = QAQf, откуда А = (Q)-1-^^*)-1 = QRQf, где Q = (Q)* = (Q)-1 - унитарная матрица. Матрица R, имеющая вид (14.12), удовлетворяет условиям теоремы. Замечание 1. Как отмечалось выше, построенное в теореме 1 разложение используется в ряде алгоритмов нахождения собственных значений матрицы. Хранение матриц Q и R в памяти осуществляется одним из способов, из- ложенных при обсуждении алгоритма построения <2й-разложения для матрицы А методом отражений. Трудоемкость алгоритма построения описанного выше разложения скла- дывается из количества арифметических операций, необходимых для проведе- ния самого алгоритма, и количества арифметических операций, необходимых для построения матрицы Q. Подробные выкладки были проведены при обсу- ждении алгоритма построения <2й-разложения методом отражений. § 15.2. Случай самосопряженной матрицы Рассмотрим ситуацию, когда описанный выше метод приведения к почти тре- угольному виду применяется к самосопряженной матрице А Е Мп. Согласно (14.1), (14.2) А^) = ЦАи*, где Ц - унитарная матрица, т.е. А^ и А - унитарно подобны. Следовательно, А^1) - самосопряженная матрица. Со- гласно (7), (8) на к -ом (к = 1,..., п — 2) шаге алгоритма А^ = UkA^-^Ul, где Uk - унитарная матрица. Следовательно, и А унитарно подобны, и - са- мосопряженная матрица для всякого к = 1,..., п—2. Таким образом, R = А^п~2>) - почти треугольная и самосопряженная, т.е. трехдиагональная матрица. Запишем описанный выше процесс приведения самосопряженной матрицы к трехдиагональному виду так, чтобы максимально уменьшить объем вычисли- тельной работы за счет использования симметрии. Лемма 1. Для всякой матрицы отражения U = U(x) Е М.п и всякой са- мосопряженной матрицы А Е М.п матрица В = UAU* = UAU может быть вычислена за 2п2 + О(п) умножений и столько же сложений. Доказательство. Поскольку U(x) = I — 2хх*, то В = (1—2хх*)А(1—2хх*) = (I—2жж*)(А—2Ажж*) = А-2Ахх*-2хх* А+Ахх* Ахх*. Обозначим у = Ах Е Сп (15) К. Ю. Богачев Точные методы решения линейных систем
§15. ПРИВЕДЕНИЕ МАТРИЦЫ К ПОЧТИ ТРЕУГОЛЬНОМУ ВИДУ 76 В силу самосопряженности матрицы А имеем у = Ах = А*х = (х*А)*, 4хх*Ахх* = 2хх*Ахх* + 2хх*Ахх* = 2хх*ух* + 2ху*хх* и В = А — 2ух* — 2ху* + 2хх*ух* + 2ху*хх* = А —2(1 — хх*\ух* — 2ху*(1 — хх*) Обозначим z = 2(1 — хх*)у = 2у — х(х*у) = 2у — 2(х, у)х. (16) Тогда B = A — zx* — xz* (17) После этих преобразований мы можем сформулировать алгоритм вычисле- ния матрицы В: 1) Вычисляется вектор у по формуле (15). На это требуется п2 + О(п) муль- типликативных операций и столько же аддитивных операций. 2) Вычисляется вектор z по формуле (16). На вычисление а = 2(х, у) - удво- енного евклидова скалярного произведения, требуется п + 0(1) мультиплика- тивных операций и столько же аддитивных операций; на вычисление z = 2у — ах требуется 2п мультипликативных операций и п аддитивных операций. Общее число операция, необходимое для вычисления вектора z - Зп + 0(1) мульти- пликативных и 2п + 0(1) аддитивных операций. 3) Вычисляется матрица В по формуле (17). Матрица В как унитарно подоб- ная А самосопряжена, поэтому по формуле (17) вычисляются только п(п+1)/2 элементов верхнего треугольника матрицы В. На вычисление каждого элемента матрицы В по формуле (17) надо выполнить 2 умножения и 2 вычитания, по- этому трудоемкость вычисления В по формуле (17) равна п(п+ 1) = п2 + 0(п) мультипликативным и п2 + 0(п) аддитивным операциям. Таким образом, этот алгоритм требует n2+O(n)+3n-|-O(l)-|-n2-|-O(n) = 2п2+ 0(п) мультипликативных и столько же аддитивных операций. Лемма доказана. Замечание 2. Для несамосопряженной матрицы А вычисление матрицы В = UAU требует 4п2 + 0(п) умножений столько же сложений (см. лемму 13.11). Обозначим di = (a2i, , Oni)* Согласно лемме 13.9 существует вектор яА1) Е Сп, равный (1) = , Qi ~ ||Qi||ei 11«1 - 1ЫЫГ такой, что U(x^)ai = ||ai||ei, где ei = (1,0, ...,0) Е С"-1, U(x^) Е Mn_i - матрица отражения. Введем матрицу Ц как в (2) и вычислим матрицу К. Ю. Богачев Точные методы решения линейных систем
§15. ПРИВЕДЕНИЕ МАТРИЦЫ К ПОЧТИ ТРЕУГОЛЬНОМУ ВИДУ 77 А^ = ЦАЦ. В силу самосопряженности матрицы А^1) вместо (14.2) для нее справедливо более точное равенство ( «и 1Ы1 0 . . 0 1Ы1 «22 А1) «23 А1) «2п А(1) = ЦАЦ = 0 А1) «32 «33 «Зп (18) \ 0 „(1) «п2 „(1) «пЗ а(1) ипп Таким образом, у матрицы А/1) необходимо с помощью леммы 1 вычислить только подматрицу (a^)i;J=2,...,n G Mn_i (так как остальные элементы уже вы- числены) . Пусть сделаны к — 1, к = 1,... ,п — 1 шагов этого процесса, т.е. матрица преобразована к виду (14.3), где матрица А^-1^ имеет вид (14.14). Введем обозначение (14.5). Согласно лемме 13.9 существует матрица отра- жения (4) такая, что выполнено (5). Определим Uk равенством (6). Вычислим матрицу А^ = UkA^-^Uk. (19) Матрица унитарно подобна самосопряженной матрице А^-1^. Поэтому она самосопряжена и вместо (14.10) для нее справедливо более точное равен- ство (14.16). Таким образом, у матрицы необходимо с помощью леммы 1 вычислить только подматрицу (az-^)z,j=A:+i,...,n G (так как остальные эле- менты уже вычислены). После п — 2 шагов этого процесса (т.е. перехода от матриц (14.3), (14.14) к (19), (14.16)) матрица примет требуемый трехдиагональный вид (14.17). Оценка количества арифметических операций в алгоритме приведения самосопряженной матрицы к трехдиагональному виду унитарным подобием методом отражений Оценим трудоемкость к-го шага алгоритма, а затем просуммируем получен- ные оценки по всем к = 1,..., п — 2. 1. На вычисление матрицы U(xk) по формулам (4) требуется 2(п — к) + 1 мультипликативных, п — к + 1 аддитивных операций и 2 операции извлечения корня (см. вычисления при оценке количества арифметических операций в ал- горитме приведения матрицы к почти треугольному виду унитарным подобием методом отражений). 2. Компоненты к + 1,..., п к-го столбца матрицы , равные компонентам вектора уже вычислены в (10). Столбец к вычисляется не по общим формулам (7) для сокращения количества арифметических операций и уменьшения вычислительной погрешности. 3. Поскольку в формуле (19) («у ')i=k+l,...,n,j=k+l,...,n — U(Хк)((1ц \=k+l,...,n,j=k+l,...,nU(Ak)’ (^0) К. Ю. Богачев Точные методы решения линейных систем
§15. ПРИВЕДЕНИЕ МАТРИЦЫ К ПОЧТИ ТРЕУГОЛЬНОМУ ВИДУ 78 то в силу леммы 1 на вычисление подматрицы (20) матрицы требуется 2(п — к}2 + О(п — к) мультипликативных и столько же аддитивных операций. Итак, на к-ом шаге алгоритма требуется выполнить п — к + 1 + 2(п — к}2 + О(п—к) = 2(п — к')2+О(п — к') мультипликативных операций, п—к + 1 + 2(п — к')2+ О(п — к) = 2(п — к}2 + О(п — к) аддитивных операций и 2 операции извлечения корня. Следовательно, всего для проведения алгоритма требуется выполнить п—2 У~)(2(п—/с)2+О(п—/с)) = 2((п—1)(п—2)(2п—3)/6)+О(п2) = |п3+О(п2) (п —> оо) к=1 мультипликативных операций, столько же аддитивных операций и 2(п — 2) опе- раций извлечения корня (которые по трудоемкости по порядку можно сравнить с операциями деления). Таким образом, на приведение матрицы к почти треугольному виду унитар- ным подобием методом отражений требуется |п3 + О(п2) (п —> оо) мульти- пликативных операций и столько же аддитивных операций. Заметим, что это количество операций в два с половиной раза меньше, чем требуется для приве- дения произвольной матрицы к почти треугольному виду унитарным подобием методом отражений и совпадает количеством операций, необходимым для реше- ния линейной системы методом отражений. Теорема 2. Всякая невырожденная самосопряженная матрица А может быть представлена в виде А = Q RQ1, где матрица Q - унитарная, а матрица R - трехдиагоналъная. Доказательство Совпадает с доказательством теоремы 1. Хранение матриц Q и R в памяти осуществляется одним из способов, из- ложенных при обсуждении алгоритма построения <2й-разложения для матрицы А методом отражений. Трудоемкость алгоритма построения описанного выше разложения скла- дывается из количества арифметических операций, необходимых для проведе- ния самого алгоритма, и количества арифметических операций, необходимых для построения матрицы Q. Подробные выкладки были проведены при обсу- ждении алгоритма построения <2й-разложения методом отражений. К. Ю. Богачев Точные методы решения линейных систем
79 Глава II. МЕТОДЫ НАХОЖДЕНИЯ СОБСТВЕННЫХ ЗНАЧЕНИЙ § 1. ТОЧНЫЕ И ИТЕРАЦИОННЫЕ МЕТОДЫ Определение. Метод решения линейной системы называется точным, если при отсутствии округлений точное решение системы находится этим методом за конечное число арифметических операций (например, для метода Гаусса это |п3 + О(п2)). На реальной вычислительной машине точный метод дает некоторое прибли- жение к точному решению системы. Мера близости оценена в § 1.3. Все описанные выше методы являются точными. Определение. Метод решения линейной системы называется итерацион- ным, если он состоит в вычислении последовательности {аД, сходящейся к точному решению: хь —> х при к —> оо. Итерационный метод за конечное число арифметических операций дает только некоторое приближение хь0 к точному решению. Теория итерационных методов будет изложена в курсе ” Численные методы”. Определение. Метод нахождения собственных значений называется итера- ционным, если он состоит в вычислении последовательности {А&}, сходящейся к точному собственному значению: Ад, —> А при к —> оо. Итерационный метод за конечное число арифметических операций дает только некоторое приближение Afc0 к точному собственному значению. Теорема 1. (Без доказательства.) Не может существовать точного мето- да нахождения всех собственных значений произвольной матрицы А Е М.п при п > 5. Другими словами, за конечное число арифметических операций нельзя найти все собственные значения произвольной матрицы А Е М.п при п > 5. К. Ю. Богачев Методы нахождения собственных значений
§2. ЛОКАЛИЗАЦИЯ СОБСТВЕННЫХ ЗНАЧЕНИЙ 80 § 2. ЛОКАЛИЗАЦИЯ СОБСТВЕННЫХ ЗНАЧЕНИЙ Для матрицы А Е Мп обозначим п J=1 о (А) = {Ах,..., Ап} - множество собственных значений. Теорема 1 (Гершгорин). Для всякой матрицы А Е Мп справедливо со- отношение: п a(A)G\J{zECn : \z - ай\ < Я'(А)} . (1) i=l Кроме того, если объединение k, 1 < к < п из этих кругов есть связная область, не пересекающаяся с остальными п — к кругами, то в ней находится ровно к собственных значений матрицы А. Доказательство. Пусть А - собственное значение матрицы А и х = (х\,... ,Хп) / 0 - соответствующий собственный вектор: Ах = Ах. Обозначим |а?р| = maxj=1;...;n |a?j| ф 0. Так как Ах = Ах, то п Ххр = (Хх)р = (Ах)р = 52 UpjXj и п *^р(А ^рр) 5 apjxj 3=1 зАр Следовательно, п п |а?р||А — арр\ < 52 \apjI\xjI — I^pI 52 \арз\ 3=1 3=1 зАр jAp и n |A — app\ < 52 \apjI j=i зАр Таким образом, собственное значение А Е <т(А) принадлежит объединению кру- гов в (1). Докажем второе утверждение теоремы. Положим А = D + В, где D = diag(an,... ,ann) Е Мп, В = А — D-, А£ = D + еВ , е > 0. Тогда Н'ДАЦ) = ВЦеВ} = eR'^A). Без ограничения общности мы можем считать что первые к К.Ю.Богачев Методы нахождения собственных значений
§2. ЛОКАЛИЗАЦИЯ СОБСТВЕННЫХ ЗНАЧЕНИЙ 81 кругов в (1) образуют связную область, не пересекающуюся с остальными п — к кругами. Обозначим к Gk(A) = U {z е Сп : \z-aii\ <Я'(А)}, г=1 п Сп-ЦА)= [J {zeCn : \z - ац\ < ЩАЦ , i=k+l причем по условию ^(А)Пб'/г_,(А) = 0. (2) Рассмотрим введенные множества для матрицы АЕ: к Gk(At) = U {z£ С" : |г - ац\ < еЯ'(А)} , г=1 п Gn-k{Ae)= [J {zECn : \z - aii\ < еЯ'(А)} . г=&+1 Тогда для всех е Е [0,1] СЦАЦ С = Gk(A'), Сп_ЦАе) с ^^(Ах) = Сп-ЦА). (3) причем множество СЦА1) = СЦА) связно по условию. В силу (2), (3) Gk(Ae) ПСп_ЦАе) = 0 для всех е Е [0,1]. Обозначим через АДАе) i-e собствен- ное значение матрицы Ае, <т(Ае) = {АДАе),..., An(Ae)} - спектр матрицы Ае. По построению АД Ах) = АДА) = Aj, АДА0) = ац. Собственное значение АДАе) матрицы Ае является корнем характеристиче- ского многочлена этой матрицы. Корни многочлена являются непрерывными функциями его коэффициентов. Следовательно, собственные значения АДАе) матрицы Ае являются непрерывными функциями элементов этой матрицы, ко- торые, в свою очередь, являются непрерывными фунциями параметра е. Таким образом, как композиции непрерывных функций, собственные значения АДАе) матрицы Ае являются непрерывными фунциями параметра е. По доказанному первому утверждению теоремы <т(Ае) с СЦА^ IJ Сп-ЦА^) для всех е Е [0,1], т.е. АДАе) е Gk(Ae) Сп_ЦАе). (4) По доказанному выше ^(А£)Г)Сп_,(А£) = 0 (5) для всех е Е [0,1], причем АДАХ) = АДА) = Aj, АДА0) = ац. Следовательно, АДА0) = ац Е СчДА0) для 1 < i < к, АДА0) = ац Е Сп_ЦАо) для к + 1 < i < п. (6) К. Ю. Богачев Методы нахождения собственных значений
§3. ОШИБКИ ПРИ НАХОЖДЕНИИ СОБСТВЕННЫХ ЗНАЧЕНИЙ 82 Поскольку Aj(Ae) - непрерывная функция и принимает все промежуточные зна- чения, то из (4), (5), (6) вытекает, что АДАе) е бДАе) для 1 < i < к, А,(Ае) = ац е Gn-ЙДД для к + 1 < i < п для всех е Е [0,1]. При е = 1 мы получаем второе утвеждение теоремы. § 3. ОШИБКИ ПРИ НАХОЖДЕНИИ СОБСТВЕННЫХ ЗНАЧЕНИЙ Пусть находятся собственные значения матрицы А Е Мп Пусть В- алгоритм нахождения собственных значений, а (А) = В (А) - полученный этим алгорит- мом спектр матрицы А. Этот спектр не совпадает с истинным значением ст (А) спектра матрицы А, поскольку в силу теоремы 1.1 найти все собственные зна- чения матрицы А за конечное число арифметических операций невозможно. Обозначим через А + Е матрицу, спектром которой является набор <т(А), т.е. а (А) = <т (А + Е). Оценим погрешность при нахождении собственных значений (т.е. <т(А) — <т(А)) через величину матрицы Е. Лемма 1. Пусть D = diag(Ai,..., Ап) - диагональная матрица, Е = (е^') Е Мп. Тогда для всякого А Е a(D + Е) - собственного значения матрицы D + Е, существует А = Ai Е сг(1У) - собственное значение матрицы D, такое, что IA-AI < ИШ (где || • Цоо - максимальная строчная норма матрицы, см. стр. 9). Доказательство. Применяя теорему Гершгорина к матрице D+E, находим, что существует такое i, 1 < i < п, что Так как |г - Ai - ец\ > \z - А,| - \ец\, то А е z е С" п I^-aj < 52 Ы >. j=i Но Поэтому п п 52 \еД < max 52 \еД = ||£||оо- j=i j=i А Е {z Е Сп : |z-Ad < Halloo} что доказывает утверждение леммы. К. Ю. Богачев Методы нахождения собственных значений
§4. СТЕПЕННОЙ МЕТОД 83 Теорема 1. Пусть А Е Мп - диагонализируемая матрица, т.е. существу- ют невырожденная матрица С и диагональная матрица Л = diag(A1?..., Ап) такие, что А = СЛС-1. Пусть Е = (е^') Е Мп. Тогда для всякого А Е а(А + Е) - собственного значения матрицы А + Е, существует А = A, Е <т(А) - собственное значение матрицы А, такое, что |А-А| <коо(С)||Е||оо где коо(С') - число обусловленности матрицы С относительно максимальной строчной нормы матрицы (см. стр. 13). Доказательство. Матрицы А + Е и С~\А + Е}С = АС~гЕС подобны и потому имеют одинаковые собственные значения. В силу леммы 1 для всякого А Е а(А + Е) = <т(Л + С~1ЕС) существует А = Aj е ст(Л) = <т(А) такое, что |А - А| < ЦС’^С'Ноо < ||С'-1||оо||Яоо||С'||оо = коо(С)||Е||оо- Теорема доказана. § 4. СТЕПЕННОЙ МЕТОД Степенной метод позволяет находить максимальное по модулю собственное значение и соответствующий ему собственный вектор диагонализируемой матри- цы А Е Мп. §4.1. Описание алгоритма Теорема 1 (Степенной метод). Пусть матрица А Е М.п имеет полную систему ортонормированных собственных векторов ei, i = 1,... ,п: Aei = AiCi, (ei,ej) = бу, причем |Ai| > |Аг| > |Аз| > ... > |An (т.е. вектора занумерованы в порядке убывания модуля собственного значения, причем собственное значение с максимальным модулем - не кратное). Тогда для всякого вектора х^ Е Сп такого, что (х^, ej 0, итерационный процесс x(k+1) = Ах^к\ (z(fc+1),z(fc)) 1 (z(*),zW) ’ (1) к = 0,1,... сходится к собственному значению Ах (собственному значению с максималь- ным модулем), причем (к —> оо), К. Ю. Богачев Методы нахождения собственных значений
§4. СТЕПЕННОЙ МЕТОД 84 (к} Х^> а величины е, = сходятся к собственному вектору, соответствующе- 1И}11 му Ах (с точностью до постоянного множителя): е? = е^е1 + О где е1^ - число, по модулю равное 1. Доказательство. Поскольку вектора е\,...,еп образуют базис в Сп, то Д°) = CjCj, причем по условию с± = (х^, ej 0. Вычислим г=1 х^ = Акх^ = Ак (£с^ =^СгАке, = ^Хке^ \г=1 / i=l i=l Поэтому х^ = cjAiCi + O (|Ак|) , = ciAi+1ei + 0 (|A^-1-11) . Далее, вычислим Ip’ll = (х<‘>, j(l>) = (ciAfei + О (|Л£|) , C1Ajei + О (|^|)) = |c1|2|A1|2‘ + 0(|Af||A‘|); (z(l+1>,х<‘>) = (C1Aj+1ei + О (|Aj+1|) .ciAfei + О (|А^|)) = A1(|c1|2|A1|2l + O(|Aj||A‘|)). Следовательно, Аналогично, где е11р = Торема доказана. К. Ю. Богачев Методы нахождения собственных значений
§5. МЕТОД ВРАЩЕНИЙ ЯКОБИ 85 Замечание 1. При реализации на реальной ЭВМ итерационный процесс (1) сходится, даже если условие (a?^°\ei) ф 0 не выполнено. Дело в том, что из-за присутствия округлений для некоторого ко будет выполнено (х^°\ ei) ф 0, даже если (x(°\ei) = 0. После этого описанный выше процесс работает, как если бы его начали с Д°) = . Замечание 2. Если |Ai| > 1, то ||ж^|| = ciA^ei + О (jAal) —* 00 ПРИ к оо; Если |Ai| < 1, то ||x^|| = ciA^ei + О (lA^l) —> 0 при к —> оо. Поэтому, чтобы не произошло переполнения или потери точности, надо через какое-то количество т итераций нормировать вектор х^ так, чтобы ЦД^Ц = 1. Практически это осуществляется так: если к делится на т нацело, то после вычисления и А) полагаем = , , Далее процесс продолжается, как если бы мы ||адй+1'|| его начали с Д°) = аД+Р . § 4.2. Оценка количества арифметических операций на один шаг алгоритма Для выполнения шага алгоритма (1) (т.е. вычисления вектора и вели- чины А^ требуется вычислить: 1) вектор аД+Р = Ах^ ; для этого требуется п2 + О (п) аддитивных и столько же мультипликативных опреаций (для вычисления произведения матрицы А на вектор х^; 2) скалярное произведение а = (х^\х^^); для этого требуется п + 0(1) ад- дитивных и столько же мультипликативных опреаций; 3) скалярное произведение b = (х^+1^, х^); для этого требуется п + 0(1) аддитивных и столько же мультипликативных опреаций; 4) отношение Ах = а/b; для этого требуется 1 мультипликативная опреация. Суммируя эти оценки, находим, что на один шаг алгоритма требуется п2 + О(п) аддитивных и столько же мультипликативных опреаций. § 5. МЕТОД ВРАЩЕНИЙ ЯКОБИ Метод вращений Якоби позволяет находить все собственные значения сим- метричной вещественной матрицы А Е Мп. § 5.1. Описание алгоритма Определение. Для всякой матрицы В = (ЬД) положим п £(в) = £|М2 К. Ю. Богачев Методы нахождения собственных значений
§5. МЕТОД ВРАЩЕНИЙ ЯКОБИ 86 - сумма квадратов внедиагольных элементов матрицы В. Пусть А = Е Mn(R), А = А* = А*. Всякая симметричная вещественная матрица диагонализируема в некотором евклидовом базисе, т.е. существует ор- тогональная матрица О Е О(п) и диагональная матрица А = diag(Ai,..., Ап) та- кие, что А = ОАО*. Отсюда А = О* АО = ОАО*, где обозначено О = О* Е О(п). Очевидно, что для диагональной матрицы Е(А) = 0 и для всякой матрицы В Е(В) > 0. Следовательно а) Е(ОАО*) > 0 для всякой О е О(п); б) ЩОАО*) = Е(А) = 0, если 0 = О*. Следовательно, матрица 0 = 0* является решением задачи минимизации функционала Е(ОАО*) на группе ортогональных матриц: ЩОАОА -> min . оео(п) Если мы найдем какое-то решение Oi этой задачи, т.е. Е(О1АО*) = 0, то матри- ца ЩОЩО*) диагональна и ортогонально подобна матрице А. Следовательно, на ее диагонали стоят искомые собственные значения матрицы А. Будем строить последовательность симметричных матриц А = Ао, Ai,..., Ak,... (1) такую, что для всякого к = 1, 2,...: 1) Следующая матрица ортогонально подобна предыдущей (и потому ортого- нально подобна исходной) Ак = ОкАкЩО*к, Ок Е О(п). (2) 2) Сумма квадратов внедиагональных элементов следующей матрицы строго меньше суммы квадратов внедиагональных элементов предыдущей матрицы: ЩАк) < ЩАкЩ (3) т.е. последовательность строго монотонно убывает, что в силу S(Afc) > 0 гарантирует существование предела lim S(Afc). к—>ос 3) Этот предел равен нулю: lim ЩАк) = 0. (4) А:—>оо Матрицы Ок Е О(п) в (2) подбираются на шаге к так, чтобы удовлетворить условиям (3), (4). Теорема 1. Пусть е > 0 - произвольно. Тогда в процессе (1) — (4) суще- ствует к = ко такое, что Е(Ад,0) < е. При этом для всякого собственного значения А матрицы А существует i, 1 < i < п, такое, что |А — < Дп — 1Дё, где (а^) - элементы матрицы Ако. Другими словами, диагональ матрицы Ако с точностью Дп — представляет собой набор собственных значений матрицы А. К.Ю.Богачев Методы нахождения собственных значений
§5. МЕТОД ВРАЩЕНИЙ ЯКОБИ 87 Доказательство. В силу (4) для всякого е > 0 существует к = ко, такое, что О < E(Afc0) < е. В силу (2) всякое собственное значение А матрицы А является собственным значением матрицы Ако. По теореме Гершгорина для всякого А - собственного значения матрицы Ако существует i, 1 < i < п, такое, что п |А- а?’! < =£|“w”)l < J=1 Л J=1 Л J=1 п El47’l2 < Vn - 1фДАко) < Дп - ly/s Теорема доказана. В методе вращений Якоби В качестве ортогональных матриц Ок в (2) ис- пользуются матрицы элементарного вращения (см. стр. 43): Ок = Тк = Угол подбирается так, чтобы удовлетворить (3), а индексы i и j - так, чтобы удовлетворить (4). § 5.2. Выбор угла вращения Вычислим для произвольной симметричной матрицы А и произвольной ма- трицы элементарного вращения Щ матрицу В = ЩАТк и выражение п Е(В) - Е(Л) = £ (6L - О- l,m=l 1pm При умножении А на Щ слева изменяются только строки i и j матрицы А, при умножении ЩА на Тк справа изменяются только столбцы i и j матрицы ЩА. Поэтому все элементы, не находящиеся в строках i, j'и столбцах i, j, у матриц А и В = ЩАТк совпадают: bim = акт при I ф i,j, m ф i,j. Следовательно, п п п п У (В) - S(A) = (b2m - a2im) + 52 (b2m - a2m) + ^2 _ aii) + 52 (tfj ~ aij) m=l m=l 1=1 1=1 m^i,j m^i,j l^i,j l^i,j + (% - a2,) + (^ - 4) n n = 52 ((^m + ~ (°Чт + ajm)) + 52 + “Fj)) + 2(^j - 4') m=l 1=1 m^i,j l^i,j (здесь мы использовали симметричность матриц А и В: = ац, Ъц = bji для всех i,j = 1,..., п). Без ограничения общности мы можем считать, что i < j. В силу строения матрицы Щ (см. (1.12.1)) и правил умножения матриц получаем для всех т, I = 1,..., п, т,1 ф i,j: bim \ = ( cosip — sin</? А / aim bjm / у sin COS (p I \ ttjm (5) К.Ю. Богачев Методы нахождения собственных значений
§5. МЕТОД ВРАЩЕНИЙ ЯКОБИ 88 л,ад = (««,ад (X" 17(6) Матрицы преобразования в (5) и (6) ортогональны и потому сохраняют длины (двумерных) векторов. Поэтому Ь1т + Ь]т=а1т + а]т т = 1, . . . , П, ТП / i, j; tfi + tfj =а2ц + аи l = Следовательно, S(B) - S(A) = 2(t>2 - а2Д (7) Это выражение будет минимально, когда Ьг] = 0. Определим угол вращения из уравнения </? = 0. Из выражения (7) вытекает, что достаточно рассмотреть 2x2 симметричные матрицы А и В: в = ( ьд \ hj | д _______ [ (^ii ®“ij | rp ______ [ COS (p sin (p \ „ Arpt )jj I \ ay ajj I J \sm</? cost/? I j v Вычислим / cos(рац — sin(paij cos(pa^ — sin(pajj v sin (рац + cos (paij sin (pa^ + cos (pajj и by = sin </?(cos (рац — sin + cos </?(cos tpa^ — sin (pajj) = sin (p cos (рац — sin2 ipa^ + cos2 tpa^ — sin (p cos (pajj 1 = - sin 2</?(cijj — ajj) + cos Zcpaij Li Из условия bij = 0 получаем уравнение 1 -sm2</?(cijj - ajj) Li + cos 2(paij = 0 откуда ' tg29,=-------‘Ei. Uiii C 7Г И =4’ 6СЛИ С1ц -f— Qjj) если — ajj. Будем выбирать (p E [— —, —]. Тогда cos2(/? > 0 и sign(sin(/?) = sign(tg2</?). Сле- довательно, C0S = (1 + tg2 21)1/2 и Zi f 1 \\1/2 cos*’“ (2 (1 + (l + tg2 2^1/2)) ’ /1/ 1 \\1/2 sn^ = 8‘8“(‘8ад (2 I? “ (l+tg22y)1/2)) К.Ю.Богачев Методы нахождения собственных значений
§5. МЕТОД ВРАЩЕНИЙ ЯКОБИ 89 Обозначим х = — 2a,ij, у = ац — ajj. Тогда tg 2^ = У cos 2</? = _ Л А , \у\ AV/2 . _ • / А \у\ W/2 COS (^2 V + (Т2 + 7/2)V2 )) ’ sm Й1§ПИ) |^2 (х2 + у2у/2 J J \у\ Однако при \у\ —> оо числа 1 и ——---- . могут оказаться близки и при вычи- (х2 + у2)ч2 большая вычислительная погрешность. Поэтому слении их разности возникает sin </? вычисляют по формуле sin 2(р tg 2(р cos 2(р 2 cos ср 2 cos ср X \у\ у (х2 + т/2)1/2 2 cost/? = zsign(?/) 2cost/? (х2 + у2)1/2 sign(x7/)|x| 2cost/? (х2 + у2)1/2 Окончательно, расчетные формулы имеют вид: cos</? = cos</? = 1 Ы >У/г (х2 + у2)1/2 J J 1 sign(x7/)|x| Sm<y9 2cost/? (х2 + у2)1/2 при у= О при уф О (8) (где х — 2aij, у — ац ajj). Таким образом, для выполнения условия (3) достаточно выбрать произволь- ный внедиагональный элемент a\j 0 и сделать преобразование ТДср) с углом </?, определенным по приведенным выше формулам. § 5.3. Стратегии выбора обнуляемого элемента Обеспечим выполнение условия (4) за счет выбора номера (г, J) обнуляемого элемента а:^{). Это можно сделать несколькими способами, которые называют стратегиями выбора обнуляемого элемента. Именно стратегия выбора обну- ляемого элемента в значительной степени определяет трудоемкость алгоритма метода вращений Якоби. К. Ю. Богачев Методы нахождения собственных значений
§5. МЕТОД ВРАЩЕНИЙ ЯКОБИ 90 § 5.3.1. Метод вращений с выбором максимального элемента В качестве 7 выбираем максимальный по модулю внедиагональный эле- мент матрицы Ak-i'. Х)| = max 1}| 1,т=1 1^т (9) Лемма 1. При выборе (9) обнуляемого элемента условие (4) выполнено. Доказательство. При любой стратегии выбора элемента а-к из (7) сле- дует, что ЩАк) = ЩАкЩ-\а^\2. (10) Пусть a^j выбран как (9). Тогда п п х < X |С1’|2 = П(П-1)|С1’|2. 1,т=1 1,т=1 1Дт 1Дт Следовательно, J п{п — 1) Поэтому из (10) S(Afc) < S(Afc_i)------т-Е(Лд;_1) = (1------у) S(Afc-i) п(п — 1) у п(п — 1)7 / 2 \ / 2\ ( 2 \к < 1-----7----рг 1---7-----TV j S(A-2) < < 1-7--ту I 2(Л0). У п(п — 1) J у п(п — 1)/ у щп ~4J Поскольку q = 1---------? 6 (0,1), то qk —> 0 при к —> оо, и п(п — 1) S(Afc) < ^Е(Л0) —> 0 при к —> оо. Следствие 1. При к —> оо диагональные элементы матрицы Ак сходятся к собственным значениям матрицы А. Доказательство следует из теоремы 1. К. Ю. Богачев Методы нахождения собственных значений
§5. МЕТОД ВРАЩЕНИЙ ЯКОБИ 91 Оценка количества арифметических операций на один шаг алгоритма Трудоемкость алгоритма складывается из трудоемкости построения матрицы Ttj(</?), трудоемкости умножения матрицы А на слева и 7)*-(</?) справа (не зависят от стратегии выбора обнуляемого элемента), а также трудоемкости выбора очередного обнуляемого элемента. 1) На выбор a-j по формуле (9) в силу симметричности матрицы А тре- п(п — 1) буется ------- операций сравнения, которые по порядку сложности равны ад- дитивным операциям. 2) На построение матрицы (т.е. определение cost/? и sin</?) по форму- лам (8) требуется не зависящее от п число операций (т.е. 0(1)). 3) На умножение матрицы А на Тц(</?) слева согласно лемме 1.12.5 требуется 4п умножений и 2п сложений. 4) На умножение матрицы ТцЩ)А на 7^-(</?) справа согласно лемме 1.12.5 требуется 4п умножений и 2п сложений. Следовательно, всего на вычисление матрицы 7)7(</?)АТ)* (</?) требуется 8п+ 0(1) аддитивных и 4п + 0(1) мультипликативных операций; на один шаг ал- горитма требуется 8п + 0(1) аддитивных, 4п + 0(1) мультипликативных и п(п — 1) . ------- операций сравнения (которые по порядку можно сравнить с аддитив- ными операциями). § 5.3.2. Метод вращений с циклическим выбором обнуляемого элемента Внедиагональные элементы матрицы нумеруются в следующем порядке: «12, «13, , Clin, ®23, 024, , «2/1, «34, . . . , «3^, . . . , an-ijn, и в качестве обнуляемого элемента на шаге к выбирается элемент с номером &(mod [ —------- | из этого списка. Другими словами, в качестве номера (i,f) обнуляемого элемента последовательно выбирают (1, 2), (1, 3),..., (1, п), (2, 3), (2,4),..., (2, п), (3,4),..., (3, п),..., (п — 1, п). Затем этот цикл повторяется, и так до тех пор, пока на некотором шаге ко не бедет выполнено условие Е(Ад,0) < е. Опыт показывает, что обычно нужно не более 5, 6 таких циклов для достиже- ния максимально возможной на данной ЭВМ точности (т.е. машинной точности). Оценка количества арифметических операций на один шаг алгоритма В этой стратегии не требуется дополнительных вычислений для определения очередного обнуляемого элемента. Следовательно, трудоемкость шага алгоритма равна трудоемкости вычисления матрицы 7,^(</?)А7)*-(</?), т.е. требуется 8п+0(1) К. Ю. Богачев Методы нахождения собственных значений
§5. МЕТОД ВРАЩЕНИЙ ЯКОБИ 92 аддитивных и 4п + 0(1) мультипликативных операций. Однако, из-за ненапра- вленного выбора обнуляемого элемента этот алгоритм требует значительного числа итераций для достижения требуемой точности. § 5.3.3. Метод вращений с выбором оптимального элемента (к — 1} В качестве обнуляемого элемента 7 выбираем максимальный по моду- лю внедиагональный элемент в строке матрицы А^-i, имеющей максимальную сумму модулей внедиагональных элементов. Другими словами, i определяется из условия п п Xl«!‘-I,|2 = ,nfax £|“Г’|2, J 1=1,....п J J=1 J=1 a j — из условия H-X)|= \aim Х)|- (П) т=1,...,п Для уменьшения вычислительных расходов поступают следующим образом. Кроме матрицы Ад, хранится вектор №, компоненты которого на к -м шаге равны п (12) J=1 ЗА Поскольку при переходе от матрицы A^_i к Д = ЩАкЩГк суммы квадратов внедиагональных элементов строки I, I ф i,j не изменяются (см. вычисления при получении формулы (7)), то при переходе от Ак_г к Ак = ЩАк_Дк надо заново пересчитывать по формуле (12) только числа и : для остальных компонент вектора справедливо равенство b^ = b^\ l = l,...,n, (13) С использованием вектора выбор очередного обнуляемого элемента a-j осуществляется следующим образом: i определяется из условия = max (14) 1=1,...,п a j — из условия (11). Оценка количества арифметических операций на один шаг алгоритма 1) На выбор очередного обнуляемого элемента требуется п сравнений в формуле (14) и п — 1 сравнение в формуле (11). 2) На вычисление матрицы ДД</?)А77-(</?) требуется 8п + 0(1) аддитивных и 4п + 0(1) мультипликативных операций (см. вычисления выше). К. Ю. Богачев Методы нахождения собственных значений
§6. МЕТОД БИСЕКЦИИ 93 3) На вычисление вектора № по формуле (12) (при г и j) и формуле (13) (для остальных компонент) требуется 2(п — 1) умножение и 2(п — 2) сложение. Таким образом, на шаг алгоритма требуется 10п+О(1) аддитивных, 6п+О(1) мультипликативных и 2п+О(1) операций сравнения (которые по порядку можно сравнить с аддитивными операциями). § 6. МЕТОД БИСЕКЦИИ Метод бисекции позволяет находить для произвольной действительной сим- метричной матрицы: 1) к-е по величине собственное значение, 2) все собственные значения на заданном интервале, 3) все собственные значения. Метод основывается на следующей теореме: Теорема 1. (Без доказательства.) Пусть А е Mn(R), А = А*, А = (а^) — невырожденная матрица, ( ап ... ац- \ Ак — е мк \ <41 <4к / и 6к = detTfc — главные угловые миноры матрицы А. Тогда количество от- рицательных собственных значений матрицы А равно S(A) — числу перемен знака в последовательности 1,61,62, ,6п. Положим п_(А) = S(A — XI). Тогда по теореме 1 п_(0) = 5(Л) — число отрицательных собственных значений матрицы А, п,- (А) — число собственных значений матрицы А, меньших А (поскольку собственные значения матрицы А — XI равны собственным значения матрицы А минус А). Следовательно, п_(А2) — n_(Ai) равно числу собственных значений матрицы А, принадлежащих интервалу (А1Д2) (здесь А,, А2 не могут быть выбраны равными собственным значениям матрицы А, так как тогда матрицы А — ХД, А — X2I вырождены и теорема 1 не применима). К. Ю. Богачев Методы нахождения собственных значений
§6. МЕТОД БИСЕКЦИИ 94 §6.1 . Алгоритм вычисления к-го по величине собственного значения методом бисекции Пусть требуется найти к-е по величине собственное значение матрицы А с точностью е > 0. 1) Зададимся Ьо > а0 такими, что п_(а0) < к, п_(&0) > к (например, возьмем а0 = —ЦАЦоо, Ьо = ЦАЦоо, тогда в силу леммы 1.1.4 п_(а0) = 0, п_(&0) = п). В силу сказанного выше на интервале (—оо, аЦ) находится меньше к соб- ственных значений, на интервале (&о,оо) — больше к собственных значе- ний. Следовательно, А^ Е (do,bo). 2) До тех пор, пока bj — щ > е (г = 0,1,...) будем вычислять Cj+1 = А_—1. Если n_(cj+i) < к, то полагаем dj+1 = Cj+1, bi+i = bi, иначе полагаем Oj-|_i di, Q+i 3) Переходим к пункту 2. 4) По окончании этого процесса (т.е. bi — di < с) в качестве ответа берем Ак = 1 + 1 (которое является (п_(^) — n_(cij))-кратным собственным значением). На каждом шаге i = &0 — dQ тервала bi — di = ——— 0,1,... выполнено Ак Е (di,bi), при этом длина ин- , i = 0,1,.... Следовательно, для достижения точно- сти е (т.е. bi — di < £) надо сделать число шагов т, определяемое из условия °2тй° < г, т.е. (Ьо - do)e~l < 2т, т > log2(b0 - d0)e~l = log2((60 - a0)£-1) = log2(&0 - CIq) + log2s-1. §6.2 . Алгоритм вычисления всех собственных значений на заданном интервале методом бисекции Пусть требуется найти все собственные значения матрицы А на интервале [а, Ь] с точностью е > 0. Существует несколько способов организовать последовательность вычисле- ний. § 6.2.1. Рекурсивный алгоритм В рекурсивной форме алгоритм формулируется наиболее просто и при пра- вильной реализации работает наиболее быстро. Алгоритм определения всех собственных значений на отрезке [а, Ь] с точно- стью е: К.Ю.Богачев Методы нахождения собственных значений
§6. МЕТОД БИСЕКЦИИ 95 Если b — а > е и п_(Ь) — пДа) 0 (т.е. число собственных значений на [а, Ь] не равно 0), то определить все собственные значения на отрезке г; определить все собственные значения на отрезке Е. а + Ь, а,----- с точностью ’ 2 J .а + Ь I- 2 ’ с точностью иначе, если п_(&) — пДа) ф 0, то —-— является (п_(&) — п_ (а))-кратным собственным значением, определенным с точностью е. иначе на отрезке [а, Ь] нет собственных значений. Однако, поскольку глубина рекурсии может достигать п и алгоритм обычно применяется к трехдиагональным матрицам, размерность которых может быть очень велика (сотни тысяч), то рекурсию в этом алгоритме следует орга- низовывать програмным путем. § 6.2.2. Алгоритм последовательного поиска собственных значений В этой формулировке алгоритм работает медленнее, чем предыдущий, но не требует рекурсии. Пусть n_(a) = ki, пДЬ) = Ц (т.е. на отрезке [а, Ь] находится ki-ki/Q собственных значений Afc1+i,..., А/^ с учетом кратности). Положим А^ = а. Для всех к = ki + l,...,k? будем находить к-е по величине собственное значение, используя алгоритм § 6.1, который начинаем с ао = X^-i, bo = b. § 6.3. Алгоритм вычисления всех собственных значений методом бисекции Положим а = — ЦАЦоо, b = ЦАЦоо, тогда в силу леммы 1.1.4 п_(а) = 0, п_(&о) = п,ина отрезке [а, Ь] находятся все собственные значений матрицы А. Для их нахождения применяем алгоритм из § 6.2. § 6.4. Вычисление числа перемен знака в последовательности главных миноров Для реализации этих алгоритмов надо уметь быстро вычислять функцию п_(А) = S(А — AI) — число перемен знака в последовательности 1,д2,... ,6п главных миноров матрицы А — XI. Эта функция может быть вычислена до- статочно быстро только для трехдиагональных матриц. Поэтому исходную сим- метричную матрицу А перед началом алгоритма метода бисекции приводят к трехдиагональному виду унитарным подобием одним из описанных выше спосо- бов (см.§ 1.14.2 и § 1.15.2). К. Ю. Богачев Методы нахождения собственных значений
§6. МЕТОД БИСЕКЦИИ 96 Для вычисления функции п_(А) для трехдиагональных симметричных ма- триц существуют несколько способов. § 6.4.1. Вычисление числа перемен знака в последовательности главных миноров с помощью LU-разложения Пусть требуется вычислить число перемен знака в последовательности 1, 51, 62,.. , 6п главных миноров трехдиагональной матрицы А (в алгоритме А:=А-А1). Построим для матрицы A LU-разложение (см. § 1.5.2, стр. 23). В силу опреде- ления перемножения матриц Ак = LkUk, где Ак, Lk, Uk — соответсвенно главные подматрицы матриц A, L, U. Следовательно, 8к = det Ак = det Lk det Uk. В силу п вида (1.5.2) треугольных матриц L и U получаем det Lk = П Ijj, det Uk = 1. По- j=i этому 6k = 1ц ... lkk и число перемен знака в последовательности 1, 51, 52,..., 6п равно числу перемен знака в последовательности 1,1ц, I22, , 1Пп Само LU-разложение матрицы А не строится, находятся лишь знаки 1ц. Па- мять под матрицы L и U не выделяется, так как согласно формулам (1.5.3) для вычисления очередных элементов 1ц, нужно знать лишь элементы li—1,г—1 > li,i— 1 ’ ^i—l,i Согласно доказанному в § 1.5.2 для построения LU-разложения требуется п — 1 аддитивных и 2(п — 1) мультипликативных операций. Поскольку для вы- числения числа перемен знака требуется еще не более п сложений (для сум- мирования знаков 1Д, то на вычисление функции S'(А) требуется 2п + 0(1) аддитивных и столько же мультипликативных операций. § 6.4.2. Вычисление числа перемен знака в последовательности главных миноров с помощью реккурентных формул Пусть требуется вычислить число перемен знака в последовательности 1, 51, 62,.. , 6п главных миноров трехдиагональной симметричной матрицы А (в алгоритме А := А — XT): \ Ъ“2 «3 5/1-2 5/1-2 on—i 5n—i 5/1—1 оп у Имеем: 51 = щ, 52 = oio2 — 5f. Пусть для некоторого к = 3,..., п — 1 дк = detAfc, 6k-i = detAfc_i уже вычислены. Вычислим 6k+i = detA^+i. Разложим К. Ю. Богачев Методы нахождения собственных значений
§6. МЕТОД БИСЕКЦИИ 97 det A/s+i по последнему столбцу: Эта формула позволяет вычислить все 6к, но может приводить к переполнению или потере точности. Поскольку требуются не сами числа 6к , а только их знаки, то эти формулы домножают на специально подобранные множители так, чтобы все числа 6 к были бы не слишком велики или малы. У матриц А и аА собственные значения различаются на множитель а и потому при а > 0 числа перемен знака в последовательности главных миноров совпадают. Возьмем ск = 4тах^ max {|сф}, max {|6j|}> и будем рассматривать матрицу А := а~1 2А. У этой матрицы все элементы по модулю не превышают 1/4. Если оказалось, что при некотором i элемент \bi\ < Smash (где Smash — машинная точность для данной ЭВМ), то полагаем bi = 0. При этом матрица распадается на две подматрицы, объединение набо- ров собственных значений которых дает набор собственных значений исходной матрицы. Поэтому мы можем считать, что все \bt\ > emash- Запишем для так преобразованной матрицы алгоритм вычисления числа пе- ремен знака т в последовательности главных миноров. 1) Полагаем х = а±, у = 1. Если sign(a??/) < 0, число перемен знака т = 1, иначе т = 0. 2) Для всех к = 2, 3,..., п вычисляем: a) d cik, b bk—Y^ б) 7 = (l/smasft)/max{|z|, |&(fa/)|}; в) и = 7(шг — b^y), v = ух; г) если sign(wx) <0,то т = т + 1; д) х = и, у = v. В этих формулах в начале к-го шага х равен 5^-1, умноженному на некото- рое положительное число у к, У равен 6к-2, умноженному на у к Множитель 7 подбирается для обеспечения максимальной вычислительной устойчивости. К. Ю. Богачев Методы нахождения собственных значений
§7. LR АЛГОРИТМ 98 § 7. LR АЛГОРИТМ LR алгоритм позволяет находить все собственные значения матрицы А Е М„. § 7.1. LR-разложение, используемое в LR алгоритме Теорема 1. (О LR-разложении) Если все главные угловые миноры матри- цы А Е Мп отличны от нуля, то матрица А допускает представление А = LR, где L Е LT(n) cl на главной диагонали, R Е RT(n). Доказательство. Для матрицы А* все главные угловые миноры отличны от нуля. По теореме 1.4.1 для матрицы А* осуществимо LH-разложение А* = LU, где L Е LT(n), U Е RT(n) с 1 на главной диагонали. Следовательно, А = [AL* = LR, где L = IT Е LT(n) с 1 на главной диагонали, R = L* Е RT(n). Теорема доказана. § 7.1.1. Алгоритм построения LR-разложения для произвольной матрицы Алгоритм построения LR-разложения матрицы А Е Мп очень похож на алгоритм построения LH-разложения (см. стр. 19). Пусть требуется найти нижнюю треугольную матрицу L = (1^) с единицами на главной диагонали и верхнюю треугольную матрицу R = такую, что А = LR, т.е. п ) lij Ok ^ikj L k 1, . . , П. (1) J=1 Поскольку lij = 0 при i < j, Ijj = 1, = О при j > k, то (1) есть система из n2 уравнений относительно n(n — 1)/2 неизвестных 1^, i > j и п(п + 1)/2 неизвестных j < к, всего п(п+ 1)/2 + п(п — 1)/2 = п2 неизвестных. Получим формулы для решения системы (1), которые и составляют алгоритм нахождения LR-разложения. В силу lij = 0 при i < j, Tjk = 0 при j > к сумма в (1) имеет вид min{z,fc} ) lij Ok ^ikj L к 1, . . , П, J=1 ИЛИ Li lij Ок Oki j=l к Li lij Ok — ^iki . j=L к > i, i,k = 1,..., n, к < i, i,k = 1,... ,n. К.Ю.Богачев Методы нахождения собственных значений
§7. LR АЛГОРИТМ 99 Выделим в первой из этих сумм отдельно случай i = 1, а во второй - случай к = 1, и учтем, что 1ц = 1 для всех i = 1,..., п, f I fc — СЦ/с > к — 1, . . . , 72, i—1 Е lij ^'jk “I” Ok ®4к, А/ 7 1, 7, к 2, . . . , 71. L j=l lilOl 2, . . . , 71, fc-1 E lij Tjk 4" lik^kk ^iki 1 < к i, i, к 2, . . . ,71, L L J=1 Перегруппируем эти формулы: Ок — ^Iki & — 1, . . . , 71, lil Оц/Гц, 2, . . . , 71, Г г—1 /оч Ок = Uik - Е Ок, k>i>l, i,k = 2,...,n, (2) j=i fc-i lik {flik E lij fjk^/fkki 1 < к i, i, к 2, . . . ,71. L L J=1 Процесс вычислений по этим формулам строится следующим образом: вначале по первой из формул (2) вычисляются неизвестные элементы первой строки матрицы R: г и, к = затем по второй из формул (2) вычисляются неизвестные элементы первого столбца матрицы L: liY, i = 2,... ,п, (напомним, элемент 1п известен, он равен 1). Далее в вычислениях участвуют только третья и четвертая из формул (2). По третьей формуле (2) вычисляются неизвестные элементы второй строки матрицы R: г?к, к = 2,... ,п (напомним, т~21 = 0, так как R -верхняя треугольная) Ок = (Ок ~ hlOk, к = 2, . . . ,71. По четвертой формуле (2) вычисляются неизвестные элементы второго столбца матрицы L: /,2, I = 3,..., п (напомним, /|2 = 0, так как L -нижняя треугольная, /22 = 1, так как L имеет единичную главную диагональ) li2 = («г2 — 1ц Т12)/т22, 7 = 3, . . . , 71. Затем по третьей формуле (2) вычисляются неизвестные элементы третьей стро- ки матрицы R : г3к, к = 3,... ,п и так далее, а по четвертой формуле (2) вычи- сляются неизвестные элементы третьего столбца матрицы L : i = 4,..., п, и так далее. Замечание 1. Организация хранения матриц L и R в памяти. Форму- лы (2) таковы, что при вычислении элемента 1ц или гц используются значения элемента ац и вычисленных ранее элементов lkm, m < j и rkm, к < i. Это позво- ляет хранить нижнюю треугольную матрицу L (без единичной главной диаго- нали) на месте нижнего треугольника матрицы А: = ац, i > j, i,j = l,...,n, а вернюю треугольную матрицу R — на месте верхнего треугольника матрицы А: гц = ац, i < j, i,j = 1,... ,7i. К. Ю. Богачев Методы нахождения собственных значений
§7. LR АЛГОРИТМ 100 Оценка количества арифметических операций в алгоритме построения LR-разложения 1. При фиксированном i = 1,... ,п вычисление элементов гц. для всех к = г,... ,п по третьей формуле (2) требует — 1) = (п — г + 1)(г — 1) мультипли- кативных и столько же аддитивных операций. Следовательно, вычисление всех элементов матрицы R требует г + 1)(г — 1) = тг ^2"=1(г —1) — ^2"=1(г —I)2 = n22"=o J ~ 22"=о J2 = п2(п — 1)/2 — (п — 1)п(2п — 1)/6 = п3/2 — п3/3 + О(п2) = п3/6 + О(п2) (п —> оо) мультипликативных и столько же аддитивных операций. 2. При фиксированном к = 1,...,п вычисление элементов для всех i = к + 1,... ,п по четвертой формуле (2) требует к = (п — к)к муль- типликативных и — 1) = (п — к}(к — 1) аддитивных операций. Сле- довательно, вычисление всех элементов матрицы R требует (п ~ = п2(п+ 1)/2 — п(п + 1)(2п + 1)/6 = п3/6 + О(п2) (п —> оо) мультипликативных и 52"=i(n—&)(& —1) = n2(n —1)/2 —n(n+l)(2n+l)/6-|-n(n-|-l)/2 = п3/6+О(п2) (п —> оо) аддитивных операций. Таким образом, алгоритм построения Тй-разложения требует для своего проведения выполнения п3/3+О(п2) (п —> оо) мультипликативных и столько же аддитивных операций, а в сумме — (2/3) п3 + О(п2) (п —> оо) арифметических операций. § 7.1.2. Алгоритм построения L.R-разложения для почти треугольной матрицы Рассмотрим случай, когда матрица А Е Мп в приведенном выше алгоритме почти треугольная. Из определения произведения матриц вытекает, что матрица L в £/?.-разложении будет двухдиагональной: L = / 1 hi 1 I32 1 (3) "п,п—1 Формулы (2), следовательно, примут вид T1 к — СЦ/с > к — 1, . . . , 72, l"ik — Тк li,i—l fi—l,k^ ^i,i—l 1 / ^1—1,1—!•> к > i > 1, i = 2,..., n. i,k = 2,..., n, (4) Алгоритм построения Ай-разложения по этим формулам требует для своего проведения выполнения п2/2 + О(п) (п —> оо) мультипликативных и столько же аддитивных операций. К. Ю. Богачев Методы нахождения собственных значений
§7. LR АЛГОРИТМ 101 § 7.1.3. Алгоритм построения L/Z-разложения для трехдиагональной матрицы Рассмотрим случай, когда матрица А Е М,п в приведенном выше алгоритме трехдиагональная. Из определения произведения матриц вытекает, что матрицы L и R в LR-разложении будут двухдиагональными: L = ( 1 ^21 1 1з2 1 , R = 1 Гц Г12 Г22 Г23 1 \ 1п,п— 1 1 ) \ Гп—1,п f"nn / (5) Формулы (4), следовательно, примут вид G'lkj 1; 2, Гк Тк ^i—ljkj к = i,i + 1, i = 2,..., n, i = 2,..., n. (6) Алгоритм построения Ай-разложения по этим формулам требует для своего проведения выполнения Зп+О(1) (п —> оо) мультипликативных и п+О(1) (п —> оо) аддитивных операций. § 7.2. LR алгоритм нахождения собственных значений Будем строить для матрицы А Е М.п последовательность {А&} матриц Ак Е М.п по следующим правилам: 1) А1=А; 2) для всех к = 1, 2,... матрица A^+i получается из матрицы Ак следующим образом: а) строим Ай-разложение матрицы Ак: Ак = LkRk , б) вычисляем матрицу А^+i как произведение матриц Rk и Lk: A^+i = R-kLk Здесь мы предполагаем, что для каждого к = 1, 2,... LR-разложение матрицы А& существует, т.е. для нее выполнены условия теоремы 1. Если это не так, то алгоритм не применим. Лемма 1. Для всех к = 1, 2,... матрица Ак подобна А. Доказательство. Имеем: Ак+1 = RkLk = = LkvAkLk. Следовательно, матрица Ак+± подобна Ак. Поскольку Аг = А, то по индукции получаем, что Ак подобна А для всех к = 1,2,..., причем Ak+i = Li1... Lk 1 AiLk ... Li = (Lk ... Li) 1A(Lk ... Li). К.Ю. Богачев Методы нахождения собственных значений
§7. LR АЛГОРИТМ 102 Следствие 1. Матрицы Ак, к = 1,2,... имеют те же собственные зна- чения, что и матрица А. Теорема 2. (Без доказательства.) Пусть матрица А Е Мп такова, что на каждом шаге k = 1, 2,... LR-алгоритма осуществимо LR-разложение для матрицы Ак, и собственные значения {Aj} матрицы А таковы, что |Ai| > |Л2| > ... > |АП|. Тогда Lk —> I при к —> оо, Rk —> Ак при к —> оо (по норме в пространстве матриц). Тем самым диагональные элементы матрицы Ак = (аг-^) сходятся к собственным значениям матрицы А, причем в правильном порядке: —> Xi при к —> оо, i = 1, 2,..., п. Скорость сходимости матрицы Ак к треугольной дается соотношением при к —> оо, i > j. Применение алгоритма к матрице А Е Мп произвольного вида требует слиш- ком большого числа арифметических операций: (2/3) п3 + О(п2) (п —> оо) на построение LR-разложения матрицы Ак и не более п3 + О(п2) (п —> оо) на вы- числение матрицы Ak+i как произведения двух треугольных матриц. Поэтому LR-алгоритм никогда не применяется к матрицам произвольного вида. § 7.2.1. LR алгоритм нахождения собственных значений для почти треугольной матрицы Лемма 2. Если матрица А — почти треугольная, то все матрицы Ак, к = 1, 2,... в LR-алгоритме — почти треугольные. Доказательство. Матрица Лх = А — почти треугольная. Предположим, что матрица Ак — почти треугольная. Тогда в LR-разложении Ак = LkRk матрица Lk имеет вид (3) (т.е. является двухдиагональной), Rk Е RT(n). Из определения произведения матриц вытекает, что матрица Ак+\ = RkLk является почти треугольной матрицей. Лемма доказана. Эта лемма позволяет значительно ускорить работу LR-алгоритма. Перед его применением исходная матрица А приводится к почти треугольному виду Л' унитарным подобием одним из алгоритмов, описанных в § 1.14 и § 1.15. Затем к матрице Л' применяется LR-алгоритм. К. Ю. Богачев Методы нахождения собственных значений
§7. LR АЛГОРИТМ 103 Алгоритм вычисления произведения матриц R и L Произведение матриц А = RL, где R Е RT(n), L имеет вид (3), может быть вычислено значительно быстрее, чем произведение произвольных треугольных матриц. По определению произведения матриц (Цк Гк 4“ fijk+A-^k+A-jk> Z, Z Н- 1, . . . , 71 1, i 1, 2, . . . , П O'in — — 1, 2, . . . , 7г (7) — 2, 3, . . . , 71 Вычисление произведения А = RL по этим формулам требует тг2/2 + О(п) (тг —> оо) мультипликативных и столько же аддитивных операций. Оценка количества арифметических операций на один шаг LR-алгоритма для почти треугольной матрицы 1) Построение LR-разложения матрицы А^ = L^Rk по формулам (4) требует тг2/2 + О(п) (тг —> оо) мультипликативных и столько же аддитивных операций. 2) Вычисление произведения = RkLk по формулам (7) требует тг2/2 + О(тг) (тг —> оо) мультипликативных и столько же аддитивных операций. Следовательно, один шаг алгоритма для почти треугольной матрицы требует тг2 + О(тг) (тг —> оо) мультипликативных и столько же аддитивных операций. § 7.2.2. LR алгоритм нахождения собственных значений для трехдиагональной матрицы Лемма 3. Если матрица А — трехдиагоналъная, то все матрицы А^, к = 1,2,... в LR-алгоритме — трехдиагональные. Доказательство. Матрица А± = А — трехдиагональная. Предположим, что матрица А^ — трехдиагональная. Тогда в LR-разложении А^ = L^R-k матри- цы Lk и Rk имеют вид (5) (т.е. являются двухдиагональными). Из определения произведения матриц вытекает, что матрица Л^+i = RkLk является трехдиаго- нальной матрицей. Лемма доказана. Эта лемма позволяет значительно ускорить работу LR-алгоритма для само- сопряженной матрицы. Перед его применением исходная матрица А приводится к трехдиагональному виду А' унитарным подобием одним из алгоритмов, опи- санных в § 1.14 и § 1.15. Затем к матрице А' применяется LR-алгоритм. Замечание 2. LR-алгоритм сохраняет трехдиагональный вид матрицы, но не ее самосопряженность. Другими словами, если матрица Ak была самосопря- женной, то после шага алгоритма матрица Ak+i может не быть самосопряжен- ной. К. Ю. Богачев Методы нахождения собственных значений
§7. LR АЛГОРИТМ 104 Алгоритм вычисления произведения матриц R и L Произведение матриц А = RL, где R и L имеют вид (5), может быть вы- числено значительно быстрее, чем произведение произвольных треугольных ма- триц. По определению произведения матриц ®г,г+1 ^г,г+1> О”пп — f пп г = 1, 2, . . . , П — 1 i = 1, 2, . . . , П — 1 i = 2, 3,..., п (8) Вычисление произведения А = RL по этим формулам требует 2п+О(1) (п —> оо) мультипликативных и п + 0(1) (п —> оо) аддитивных операций. Оценка количества арифметических операций на один шаг L-R-алгоритма для трехдиагональной матрицы 1) Построение L.R-разложения матрицы А/,. = LkR-к по формулам (6) тре- бует Зп + 0(1) (п —> оо) мультипликативных и п + 0(1) (п —> оо) аддитивных операций. 2) Вычисление произведения A^+i = RkL^ по формулам (7) требует 2п + 0(1) (п —> оо) мультипликативных и п + 0(1) (п —> оо) аддитивных операций. Следовательно, один шаг алгоритма для трехдиагональной матрицы требует 5п + 0(1) (п —> оо) мультипликативных и 2п + 0(1) (п —> оо) аддитивных операций. § 7.3. Ускорение сходимости алгоритма Рассмотрим способы, применяемые для ускорения сходимости последователь- ности матриц {АД к треугольной матрице. Эти способы одинаковы как для £/?,-алгоритма, так и для рассматриваемых ниже алгоритма Холецкого и QR- алгоритма нахождения собственных значений. Поскольку все эти алгоритмы ни- когда не применяются для матриц произвольного вида, всюду ниже мы будем считать, что исходная матрица уже приведена унитарным подобием к почти тре- угольному или трехдиагональному виду. Таким образом, начальная матрица Ах — почти треугольная (или трехдиагональная). По доказанному выше это озна- чает, что все матрицы Ак — почти треугольные (трехдиагональные). Замечание 3. Описанные ниже приемы не только ускоряют сходимость ал- горитмов нахождения собственных значений, но и расширяют множество ма- триц, для которых они сходятся. Другими словами, при использовании этих приемов алгоритмы нахождения собственных значений часто работают для ма- триц, для которых не выполнены условия приведенных теорем о сходимости алгоритмов. К. Ю. Богачев Методы нахождения собственных значений
§7. LR АЛГОРИТМ 105 Замечание 4. Без использования описанных ниже приемов скорость сходи- мости алгоритмов нахождения собственных значений оказывается весьма низ- кой, а множество матриц, для которых они применимы, достаточно узким. По- этому эти приемы всегда применяются при вычислениях по этим алгоритмам. § 7.3.1. Исчерпывание матрицы На к-ом шаге матрица имеет вид ! (£) «и (*) «21 (fc) «12 (fc) «22 (fc) «1,г (fc) «2,/ (fc) «1,71-2 (fc) «2,тг—2 (fc) «l,n—1 w «2,71-1 (fc) «In (к) a2n (fc) «32 Ак — (fc) «г,г (fc) «г+1,г (fc) «2,71 — 2 (fc) «г,п—1 (fc) n} ' (fc) «n—2,n—2 (fc) «n—l,n—2 (fc) «/1 — 2,71 — 1 (fc) «71—1,71—1 ^71,71—1 (fc) «n—2,n „(*) “n—l,n \ aT) unn / Если для некоторого ?, г = 1,2,...,п—1 выполнено условие J < гЦА^Цоо, где е — точность, с которой требуется найти собственные значения, то полагаем <4+1 i = 0. Поскольку собственные значения являются непрерывными функци- ями элементов матрицы, то собственные значения матрицы Ак изменятся при этой замене на величину порядка е. Новая матрица Ак имеет блочную струк- туру: f (fc) «11 (fc) «21 (fc) «12 (fc) «22 (fc) «1,г (к) U2,i (fc) «1,г+1 ‘ ‘ ‘ (fc) «2,г+1 (fc) «1,гг-2 (fc) «2,тг-2 (fc) «1,гг—1 (fc) «2,тг-1 (к) _(*) «32 AV №) Л) Afc — \ Gj^ i 0 «г,г+1 (к) «г+1,г+1 (fc) «г+2,г+1 «г.гг—2 (fc) «г+1,гг-2 (fc) «гг—2,тг—2 (fc) «71—1,71—2 «г.гг—1 (fc) «г+1,гг-1 (fc) «гг—2,тг—1 «гг—1,гг—1 ^i.n (к) «г+1,гг (fc) «гг—2,тг ^71 — 1,71 unn / и ее множество собственных значений равно объединению множеств собствен- ных значений подматриц (а^)7-,г=1,2,..,г бМ; и е Следо- вательно, можно применить алгоритм к каждой из этих подматриц по отдель- ности. К. Ю. Богачев Методы нахождения собственных значений
§7. LR АЛГОРИТМ 106 Часто для уменьшения вычислительных затрат вместо условия | i | < £ 11 А к 11 оо используют условие < ^||-Ai||оо § 7.3.2. Сдвиги Для матрицы А—XI собственные значения равны Aj—A, А, - собственные зна- чения матрицы А. Скорость сходимости поддиагональных элементов i к ну- „ п ( Aj+i — А \ лю для этой матрицы по теореме о сходимости алгоритма есть О —---— Если А близко к Aj+i, то скорость сходимости элемента j к нулю будет очень высокой. Модифицированный £/?,-алгоритм, основанный на этой идее, выглядит сле- дующим образом. Будем строить для матрицы А Е Мп последовательность {АД матриц Ак Е Мп по следующим правилам: 1) А1=А; 2) для всех к = 1, 2,... матрица A^+i получается из матрицы Ад, следующим образом: а) определяем требуемый сдвиг зк (его оптимальный выбор - отдельная задача), б) строим £й-разложение матрицы А& — зк1: А& — skI = LkRk , в) вычисляем матрицу A^+i как произведение матриц Rk и Lk плюс зк1: А/;_|_Х - RkLk Н” 8к1 Здесь мы предполагаем, что для каждого к = 1, 2,... LR-разложение матрицы Afc — skI существует, т.е. для нее выполнены условия теоремы 1. Если это не так, то надо изменить значение сдвига зк. На практике условия теоремы 1 не про- веряют, а выполняют алгоритм построения £й-разложения. Если в алгоритме требуется осуществить деление на 0, то немного изменяют значение сдвига зк и заново выполняют алгоритм построения LR-разложения. Нетрудно проверить, что матрица A^+i подобна Ак: A^+i = RkLk + skI = Lk^RkLk -|- skI) Lk {LkRk)Lk -|- skLkI Lk (LkRk -|- skT)Lk Lk AkLk и, следовательно, все матрицы Ак, к = 1, 2,... имеют те же собственные значения, что и матрица А. § 7.3.3. Практическая организация вычислений в LR алгоритме Пусть требуется определить все собственные значения матрицы А Е М.п с точностью Е. Вначале приводим матрицу к почти треугольному виду Ai унитарным подо- бием одним из алгоритмов, описанных в§1.14и§1.15. К. Ю. Богачев Методы нахождения собственных значений
§8. МЕТОД ХОЛЕЦКОГО 107 Затем к матрице Ai применяем Ай-алгоритм со сдвигами. На шаге к в качестве сдвига Sk возьмем , т.е. Sk = Поскольку > Хп, то Sk является приближением к Хп и скорость сходимости к нулю элемента а^_1 бу- дет очень высокой. Как только на некотором шаге к будет выполнено условие l^n-il < ^ШНоо, в качестве Хп берем и применяем алгоритм к подматрице £ Mn_i на 1 меньшей размерности. Так поступаем до тех пор, пока размерность матрицы не станет равной 2. Для этой матрицы собственные значения определяются как решения соответствующего квадратного уравнения. § 8. МЕТОД ХОЛЕЦКОГО Метод Холецкого позволяет находить все собственные значения самосопря- женной положительно определенной матрицы А Е М.п за вдвое меньшее коли- чество арифметических операций, чем Тй-алгоритм. § 8.1. Разложение Холецкого, используемое в методе Холецкого Теорема 1. (О разложении Холецкого) Если матрица А = А* > 0 — са- мосопряженная положительно определенная, то она допускает представление А = LL*, где матрица L — нижняя треугольная с вещественными положи- тельными элементами на главной диагонали. Доказательство. Согласно теореме 1.10.1 и замечаниям 1.10.2,1.10.3 матрица А допускает представление в виде А = R*R, где R — верхняя треугольная матрица с вещественными положительными элементами на главной диагонали. Положим L = R* Е LT(n). Тогда А = LL* и матрица L — нижняя треугольная с вещественными положительными элементами на главной диагонали. Теорема доказана. § 8.1.1. Алгоритм построения разложения Холецкого для произвольной самосопряженной матрицы Алгоритм построения разложения Холецкого самосопряженной матрицы А Е М.п очень похож на алгоритм построения разложения Холецкого, используемого в методе Холецкого решения линейных систем с самосопряженной матрицей (см. стр. 36). Пусть для самосопряженной матрицы А = (щД) (А* = А, т.е. сЩ = а:),) требуется найти нижнюю треугольную матрицу L = (Цу) с вещественными по- ложительными элементами на главной диагонали (1ц > 0 для всех i = 1,..., п), такую, что А = LL*, т.е. п ) likljk — ^iji i,j — 1, . . . , 71. (1) fc=l К. Ю. Богачев Методы нахождения собственных значений
§8. МЕТОД ХОЛЕЦКОГО 108 Поскольку матрицы А и LL* - самосопряженные, то уравнение с номером (J, ?) получается из уравнения с номером (i,f) путем комплексного сопряжения и не дает ничего нового. Поэтому система (1) эквивалентна системе } likljk — Б j — 1, . . . , 71. k=l (2) Таким образом, (2) представляет собой систему из п(п+ 1)/2 уравнений с п(п + 1)/2 неизвестными Itj, i > j (напомним, L Е LT(n) и = 0 при i < j, при этом 1кк > 0)- Получим формулы для решения системы (2), которые и составляют алгоритм нахождения разложения Холецкого. Перепишем (2) в виде (3) Поскольку матрица L - нижняя треугольная, то = 0 при i < к и вторая из сумм в (3) равна нулю. Следовательно, система (2) эквивалентна следующей ikljk + liilji — Tj? < Ф С j — 1, . . . , 71, к=1 (здесь считается, что сумма вида равна нулю, если верхний предел сум- мирования меньше нижнего; это позволяет не рассматривать отдельно случай i = 1). Применим к этим уравнениям комплексное сопряжение и учтем, что аД = a,ji и 1ц - вещественный элемент: ikljk H” liilji — г <j, i,j = l,...,7i, k=l Выделим в здесь отдельно случай i = j: — ^ii 2Z \lik k=l i—1___ г <j, i,j = 1,...,ti, — X "ikljk k=l Отсюда получаем расчетные формулы: i = (4) г <j, i,j = l,...,7i. Процесс вычислений по этим формулам строится следующим образом: вначале вычисляются неизвестные элементы первого столбца матрицы L: ^11 — ~\/ЙЦ > > Ijl — djl/lllj j — 2, . . . ,71, К. Ю. Богачев Методы нахождения собственных значений
§8. МЕТОД ХОЛЕЦКОГО 109 потом по формулам (4) при i = 2 вычисляются неизвестные элементы второго столбца матрицы L: ^22 — у «22 — 1^2112> Zj2 = («j2 — ^21^1)/^22; 3' = 3, . . . ,П', затем по формулам (4) при i = 3 вычисляются неизвестные элементы третьего столбца матрицы L и так далее. Замечание 1. Организация хранения матриц А и L в памяти. По- скольку для самосопряженной матрицы ajt = аД, то можно вместо всей ма- трицы А хранить только ее нижний треугольник: а^, i > j, i,j = Формулы (4) таковы, что при вычислении элемента Iji используются значения элемента aji и вычисленных ранее элементов lmk, к < i. Это позволяет хранить нижнюю треугольную матрицу L на месте нижнего треугольника матрицы А: Iji = djij j, — 1,... ,n. Оценка количества арифметических операций в алгоритме построения разложения Холецкого Вычисление элемента 1ц по формулам (4) требует одной операции извлечения корня и i — 1 мультипликативных и столько же аддитивных операций. При фиксированном i = 1,..., п вычисление элементов Iji для всех j = i + 1,..., п по формулам (4) требует 1+Е7=г+1(4 —1) = (п—г)(г —1) + 1 мультипликативных и — 1) = (п — ?) (г — 1) аддитивных операций. Следовательно, вычисление всех элементов матрицы L требует п операций извлечения корня, £)"=1((п — г)(г — 1) + (г — 1) + 1) = п3/6 + О(п2) (п —> оо) мультипликативных и £)"=1((п — г)(г — 1) + (г — 1)) = п3/6 + О(п2) (п —> оо) аддитивных операций (подробное вычисление см. при подсчете количества арифметических операций для метода Холецкого решения линейных систем). § 8.1.2. Алгоритм построения разложения Холецкого для трехдиагональной матрицы Рассмотрим случай, когда самосопряженная матрица А Е Мп в приведенном выше алгоритме трехдиагональная. Из определения произведения матриц выте- кает, что матрица L в разложении Холецкого А = LL* будет двухдиагональной: / ац «12 \ / 1и \ А = «21 «22 «32 «23 «33 hi I22 I32 I33 (5) L = «л— 1,п «л,л—1 ®пп п,п—1 Кп ] К.Ю.Богачев Методы нахождения собственных значений
§8. МЕТОД ХОЛЕЦКОГО ПО Формулы (4), следовательно, примут вид ki — |^г,г—112 — 1, . . . , П, (g) . k-f-l,i ®г+1,г/^гг 1, . . . , 72 1. Алгоритм построения разложения Холецкого по этим формулам требует для своего проведения выполнения п операций извлечения корня, 2п — 1 мульти- пликативных и п аддитивных операций. § 8.2. Метод Холецкого нахождения собственных значений Будем строить для самосопряженной положительно определенной матрицы А Е Мп последовательность {А^} матриц Ак Е Мп по следующим правилам: 1) А1=А; 2) для всех к = 1, 2,... матрица A^+i получается из матрицы Ак следующим образом: а) строим разложение Холецкого матрицы Ак: Ак = LkLk, б) вычисляем матрицу A^+i как произведение матриц Lk и Lk: A^+i = LlLk. Лемма 1. Для всех к = 1, 2,... матрица Ак подобна А. Доказательство. Имеем: Ak+i — LkLk — (Lk1Lk)LkLk — Lkr(LkLk)Lk — LkvAkLk. Следовательно, матрица Ak+± подобна Ak. Поскольку Ar = A, to no индукции получаем, что Ак подобна А для всех к = 1,2,..., причем A^+i = Li1... Lk 1 AiLk ... Li = (Lk ... Li) XA(L^ ... Li). Следствие 1. Матрицы Ak, к = 1,2,... имеют me же собственные зна- чения, что и матрица А. Лемма 2. Для всех к = 1,2,... Ак - самосопряженная положительно определенная матрица. Доказательство. Действительно, Ах = А - самосопряженная положитель- но определенная матрица. Пусть сделано к = 1,2,... шагов описанного выше процесса. Матрица Ак = (Lk-i Li')~1A(Lk-i... Li) подобна матрице А и име- ет те же собственные значения. Поскольку Ak = Ь*к_Дк-1 и Ак = = Ак, то Ак - самосопряженная матрица. По лемме 1.9.3 все собственные значения матрицы А вещественны и положительны. Следовательно, все собственные зна- чения матрицы Ак вещественны и положительны. По лемме 1.9.3 это означает, что Ак - самосопряженная положительно определенная матрица. Лемма 3. Разложение Холецкого осуществимо для всякого к = 1,2,.... К.Ю.Богачев Методы нахождения собственных значений
§8. МЕТОД ХОЛЕЦКОГО 111 Доказательство. Действительно, по лемме 2 Ак - симметричная положи- тельно определенная матрица, и для нее разложение Холецкого существует по теореме 1. Теорема 2. (Без доказательства.) Пусть А Е Мп — симметричная поло- жительно определенная матрица, и собственные ее значения {АД матрицы А таковы, что Ai > А2 > ... > Хп. Тогда Ak —> diag[A1;..., Ап] при к —> оо (по норме в пространстве матриц). Другими словами, диагональные элементы матрицы Ак = (off) сходятся к собственным значениям матрицы А, причем в правильном порядке: —> Xi при к —> оо, i = 1, 2,..., п. Скорость сходимости матрицы Ак к диагональной дается соотношением (fc) (А) aij = aji = при к —> оо, i > j. Применение алгоритма к произвольной самосопряженной матрице А Е Мп требует слишком большого числа арифметических операций: п3/3 + О(п2) (п —> оо) на построение разложения Холецкого матрицы Ак и не более п3+О(п2) (п —> оо) на вычисление матрицы Ak+i как произведения двух треугольных матриц. Поэтому метод Холецкого никогда не применяется к матрицам произвольного вида. § 8.2.1. Метод Холецкого нахождения собственных значений для трехдиагональной матрицы Лемма 4. Если матрица А — трехдиагоналъная, то все матрицы Ак, к = 1,2,... в методе Холецкого — трехдиагональные. Доказательство. Матрица = А — трехдиагональная. Предположим, что матрица Ак —трехдиагональная. Тогда в разложении Холецкого Ак = ТкЦ ма- трица Lk имеет вид (5) (т.е. является двухдиагональной). Из определения произ- ведения матриц вытекает, что матрица Ak+i = LkLk является трехдиагональной матрицей. Лемма доказана. Эта лемма позволяет значительно ускорить работу метода Холецкого. Перед его применением исходная матрица А приводится к трехдиагональному виду А! унитарным подобием одним из алгоритмов, описанных в § 1.14 и § 1.15. Затем к матрице А! применяется метод Холецкого. К. Ю. Богачев Методы нахождения собственных значений
§8. МЕТОД ХОЛЕЦКОГО 112 Алгоритм вычисления произведения матриц L* и L Произведение матриц А = L*L, где L имеет вид (5), может быть вычислено значительно быстрее, чем произведение произвольных треугольных матриц. По определению произведения матриц O"i,i—1 ^гйг,г—1> «гг \ki\ Т |^г+1,г| > ®г,г+1 ^гг^г,г+1> . Ап | ^пп| г = 2, 3,..., п i = 1, 2,..., п — 1 i = 1, 2,..., п — 1 (7) Вычисление произведения А = L*L по этим формулам требует 4п + 0(1) (п —> оо) мультипликативных и п + 0(1) (п —> оо) аддитивных опера- ций. Оценка количества арифметических операций на один шаг метода Холецкого для трехдиагональной матрицы 1) Построение разложения Холецкого матрицы А/,. = ЦЦ. по формулам (6) требует п операций извлечения корня, 2п + 0(1) (п —> оо) мультипликативных и п + 0(1) (п —> оо) аддитивных операций. 2) Вычисление произведения A^+i = по формулам (7) требует 4п + 0(1) (п —> оо) мультипликативных и п + 0(1) (п —> оо) аддитивных операций. Следовательно, один шаг алгоритма для трехдиагональной матрицы требует п операций извлечения корня, 6п + 0(1) (п —> оо) мультипликативных и 2п+ 0(1) (п —> оо) аддитивных операций. § 8.3. Ускорение сходимости алгоритма Рассмотрим способы, применяемые для ускорения сходимости последователь- ности матриц {Ад,} к диагональной матрице. Как отмечалось выше (см. стр. 104), эти способы во многом схожи со способами ускорения сходимости LR- и QR- алгоритмов. Также справедливы замечания 7.3 и 7.4. Поскольку метод Холецкого никогда не применяется для матриц произволь- ного вида, всюду ниже мы будем считать, что исходная матрица уже приведе- на унитарным подобием к трехдиагональному виду. Таким образом, начальная матрица — трехдиагональная. По доказанному выше это означает, что все матрицы Ак — трехдиагональные. § 8.3.1. Исчерпывание матрицы Идея исчерпывания матрицы для метода Холецкого та же, что и для LR- алгоритма (см. стр. 105). К. Ю. Богачев Методы нахождения собственных значений
§8. МЕТОД ХОЛЕЦКОГО 113 § 8.3.2. Сдвиги Идея использования сдвигов для метода Холецкого та же, что и для LR- алгоритма, (см. стр. 106). Модифицированный метод Холецкого, основанный на этой идее, выглядит следующим образом. Будем строить для матрицы А Е Мп последовательность {АД матриц Ак Е М.п по следующим правилам: 1) А1=А; 2) для всех к = 1, 2,... матрица А^+х получается из матрицы А^ следующим образом: а) определяем требуемый сдвиг зк (его оптимальный выбор - отдельная задача), б) строим разложение Холецкого матрицы Ак — skI: Ак — зД = LkLk , в) вычисляем матрицу А^+х как произведение матриц Lk и Lk плюс зД: Afc+i = L*kLk + зД. Здесь мы предполагаем, что для каждого к = 1, 2,... разложение Холецкого ма- трицы Ак — зД существует, т.е. для нее выполнены условия теоремы 1. Если это не так, то надо изменить значение сдвига sk На практике условия теоремы 1 проверить невозможно, поэтому выполняют алгоритм построения разложения Холецкого. При этом, если в алгоритме требуется извлечь корень из отрица- тельного числа или осуществить деление на 0, то немного изменяют значение сдвига sk и заново выполняют алгоритм построения разложения Холецкого. Нетрудно проверить, что матрица Ак+± подобна Ак: Ак+± = LkLk + зД = (Ък 1 L/c)(L^L/c + зД) = Lk r(LkLfyLk + зДД = Lk r(LkLk + skT)Lk = Lk {АДк и, следовательно, все матрицы Ак, к = 1, 2,... имеют те же собственные значения, что и матрица А. § 8.3.3. Практическая организация вычислений в методе Холецкого Пусть требуется определить все собственные значения самосопряженной по- ложительно определенной матрицы А Е М.п с точностью е. Вначале приводим матрицу к трехдиагональному виду Ах унитарным подо- бием одним из алгоритмов, описанных в§1.14и§1.15. Затем к матрице Ах применяем метод Холецкого со сдвигами. На шаге к в качестве сдвига sk возьмем , т.е. sk = . Поскольку > Хп, то sk является приближением к Хп и скорость сходимости к нулю элемента а^п_1 будет очень высокой. Как только на некотором шаге к будет выполнено условие l^n-il < ^ЦАЦоо, в качестве Хп берем и применяем алгоритм к подматрице (aij)i5j=x,2,...,zi—х £ Mn-i на 1 меньшей размерности. Так поступаем до тех пор, пока размерность матрицы не станет равной 2. Для этой матрицы собственные значения определяются как решения соответствующего квадратного уравнения. К. Ю. Богачев Методы нахождения собственных значений
§9. QR АЛГОРИТМ 114 § 9. QR АЛГОРИТМ QR алгоритм позволяет находить все собственные значения матрицы А Е М„. § 9.1. QR-разложение, используемое в QR алгоритме В QR-алгоритме используется то же QR-разложение, что строилось в методе вращений (см. § 1.12, теорема 1.12.1) и в методе отражений решения линейных систем (см. § 1.13, теорема 1.13.1). § 9.1.1. Алгоритм построения QR-разложения для произвольной матрицы Алгоритм построения QR-разложения для произвольной матрицы был опи- сан ранее, см. § 1.12.4, “Построение QR-разложения методом вращений”, с. 50, или § 1.13.4, “Построение Q.R-разложения методом отражений”, с. 59. Там же подсчитана вычислительная сложность этих алгоритмов. § 9.1.2. Алгоритм построения QR-разложения для почти треугольной матрицы Рассмотрим случай, когда матрица А Е Мп в алгоритме построения QR- разложения почти треугольная: ( an «12 «l,n-2 <11,n—1 «In «21 «22 ®2,i O2,n-2 «2,n—1 «2n «32 А = ^i,n—2 «i,n— 1 «i,n ^n—2,n—2 «n—2,n—1 «n—2,n V-n- l,n—2 «n— l,n—1 «n—l,n ^п,п— 1 Лт Алгоритм построения QR-разложения для почти треугольной матрицы методом вращений Обозначим ai = (ац, 021,0,..., 0)* Е Rn - первый столбец матрицы А. Со- гласно лемме 1.12.3 существует матрица Т12 = Т12(^12), такая, что T12ai = ||ai|| ei К. Ю. Богачев Методы нахождения собственных значений
§9. QR АЛГОРИТМ 115 (причем значение угла </?12 определяется леммами 1.12.2, 1.12.3). Умножим ма- трицу А на Т12 слева, получим матрицу АО = Т12А, С и«1Н Г12 О,п-1 On Д1) ап Д1) °22 a2,n-1 ®2тг АС) = Д1) ы32 а3,п-1 дп а3п 1 Д1) “71,71 — 1 a(i) (1) Далее процесс применяется к подматрице (ajp)i;J=2,...,n. Пусть сделаны к — 1, к = 1,... ,п — 1 шагов этого процесса, т.е. матрица преобразована к виду — П Ti)i+iA, i=k — l (2) где (1Ы1 Г12 Г13 Г1,к-1 Г1к Г1гП_! Г1п Г23 Г2,к-1 Г2к Г2гП_! Г2п нА II ... Гз,к-1 Гзк r3,n-i ТЗп IIAAl fk—l,k акк ак+1,к fk — l,n,— l uk,n-l uk+l,n-l Гк — 1,п акп uk+l,n (3) \ —1 1 (здесь П означает, что сомножители берутся в порядке к — 1,..., 1). i=k—1 Обозначим о?-1’ = (А-1’АД о,..., 0)‘ е R-‘+1 (4) - первый столбец подматрицы (a^j 1'>)ij=k,...,n- Согласно лемме 1.12.3 существует матрица Tkjk+1 = Тм+1(</?м+1), такая, что гр (к—1) и (к—1) 11 (n—fc+1) Tk,k+ia{ = ||Д || el (5) (значения угла <pkjk+i определяются леммами 1.12.2, 1.12.3), здесь (1,0,... ,0)* 6Rm. Умножим матрицу (3) на Tkjk+i слева, получим А^ =Тк,к+1А^ = П7Д+1А, (6) i=k К.Ю.Богачев Методы нахождения собственных значений
§9. QR АЛГОРИТМ 116 где = / нм Г12 Ill’ll Г13 Г23 н42)|| • Г2,*-1 ГЗЛ_! Г1к Г2к Гзк г1,к+1 г2,к+1 Гз,А:+1 Г2,п-1 On Г2п ГЗп Н«Г2,|| fk—l,k rfc-l,fc+l fk—l,n—l fk—Y,n (fc) ak+l,k+l (fc) °W2,A:+1 'k'kjn—l w ak+l,n-l w ak+2,n-l Tkn (k) ak+l,n (k) ak+2,n (7) Отметим, что в (6) матрица элементарного вращения Т^^+х умножается только на подматрицу матрицы А^-1^ размера п — к + 1 (остальная часть в преобразовании (6) не участвует). Следовательно, матрица получается из А^-1^ изменением двух строк (А;-ой и (к +1)-ой) длины п — к + 1. После п— 1 шагов этого процесса (т.е. перехода от матриц (3) к (7)), матрица примет вид R = А^ = П Ti;i+1A, (8) i=n— 1 где 1 I°1 1 r12 Г13 Tx,n-2 Г1,п-1 Tin Ill’ll Г23 r2,n-2 Г2,п-1 T2n Il42,ll T3,n-2 Гз,п-1 ГЗп R = \ ll«C3)ll Г/i—2,n— 1 ll«(r2’ll Tn—2,n Tn—l,n unn J (9) (напомним, определения векторов к = 1,... ,п — 1 даются в (4), где счи- (о) \ таем, что = Ох). Так как матрицы вращения ортогональные, то = T*i+1 и из (8) полу- чаем п—1 А = П Ц!+1я = QR (Ю) г=1 — искомое Q-R-разложение. Хранение матриц Q и R в памяти. Матрица R хранится на месте верхне- го треугольника матрицы А и получается из нее последовательным применением К. Ю. Богачев Методы нахождения собственных значений
§9. QR АЛГОРИТМ 117 элементарных вращений (как описано выше). Для хранения матрицы Q выде- ляются два вектора длины п — 1. В первом векторе хранятся значения cos , i = 1, 2,..., п — 1, во втором векторе — значения sin, г = 1, 2,... ,п — 1. Оценка количества арифметических операций Оценим трудоемкость к-го шага алгоритма, а затем просуммируем получен- ные оценки по всем к = 1,... ,п — 1. 1. На вычисление матрицы Т^+1, участвующей в (6), согласно лемме 1.12.2 требуется 4 мультипликативные, одна аддитивная и одна операция извлечения корня. 2. На вычисление компонент к,...,п к-го столбца матрицы , равных компонентам вектора || еО_/г+1^ требуется (для вычисления длины век- тора (4)) две операции умножения, одна операция сложения и одна операция извлечения корня. Столбец к вычисляется именно этим способом (а не по об- щим формулам (6)) для сокращения количества арифметических операций и уменьшения вычислительной погрешности. 3. Поскольку в формуле (6) матрица элементарного вращения умножается на подматрицу (d-j V>}i=k,...,n,j=k+i,...,n матрицы размера (п — к + 1) х (п — к) (&-й столбец матрицы уже вычислен в пункте 2), то согласно лемме 1.12.5 на это требуется 4(п — к) умножений и 2(п — к) сложений. Итак, на к-ом шаге алгоритма требуется выполнить 4 + 2 + 4(п — к) = 4(п — к) + 6 мультипликативных операций, 1 + 1 + 2(п — к) = 2(п — к) + 2 аддитивных операций и две операции извлечения корня. Следовательно, всего для проведения алгоритма требуется выполнить п—1 У~)(4(п — к) + 6) = 4п(п — 1)/2 + 6(п — 1) = 2п2 + О(п) (п —> оо) к=1 мультипликативных операций, ^2^zJ(2(n — /с)+ 2) = п2 + О(п) (п —> оо) аддитив- ных операций и E)fc=i 2 = О(п) (п —> оо) операций извлечения корня (которые по трудоемкости по порядку можно сравнить с операциями деления). Алгоритм построения QR-разложения для почти треугольной матрицы методом отражений Обозначим «1 = (ац, «21, 0,..., 0)* Е Rn - первый столбец матрицы А. Со- гласно лемме 1.13.9 существует вектор а^1) 6 С", равный (1) = , ai ~ llai|lei 11«1 - 1ЫЫГ такой, что U(x^)a,i = ||ai||ei, где ei = (1,0, ...,0) Е С", Ui = - ма- трица отражения. Отметим, что у вектора а^1) только первые две компоненты отличны от нуля. Следовательно, матрица U(x^) отличается от единичной ма- трицы только блоком 2x2, стоящим на главной диагонали. Умножим матрицу К. Ю. Богачев Методы нахождения собственных значений
§9. QR АЛГОРИТМ 118 А на U(x^) слева, получим матрицу = U(x^)A вида (1). Далее процесс применяется к подматрице (ajp)i;J=2,...,n- Пусть сделаны к — 1, к = 1,... ,п шагов этого процесса, т.е. матрица пре- образована к виду А^ = П UiA, (12) i=k — 1 где матрица имеет вид (3), Ui = ( 0 U(x®) ) ’ (13) здесь Ij_i 6 Mj_i - единичная матрица размера (г — 1) х (г — 1), U(x^) Е Mn_j+i - матрица отражения размера (п — г + 1) х (п — г + 1), построенная по вектору (г)____________IIй! IIе!_______ рп-г+1 - || (г-1) и (г-1) и (п-г+1)ц ’ 11«1 - ||«1 IIе! II где е!т) = (1,0,... ,0) Е Ст. Введем обозначение (4) для первого столбца подматрицы (azj-1^)j,j=A:,...,n Со- гласно лемме 1.13.9 существует матрица отражения (1.13.5) такая, что выполне- но соотношение (1.13.6). Введем матрицу Uk вида (1.13.7). Соотношения (1.13.8) и (1.13.9) показывают, что матрица Uk унитарна и самосопряжена. Отметим, что у вектора х^ в (1.13.5) только первые две компоненты отличны от нуля. Следо- вательно, матрица Uk отличается от единичной матрицы только блоком 2x2, стоящим на главной диагонали. Умножим матрицу (3) на Uk слева, получим 1 А^> = UkA^-V = Д UiA, (14) i=k где А^ имеет вид (7). Отметим, что в (14) матрица Uk умножается только на подматрицу (a-j 1'>)ij=k,...,n матрицы А^-1^ размера п — к + 1 (остальная часть A(fe_1) в преобразовании (14) не участвует). Поскольку матрица Uk отличается от единичной матрицы только блоком 2x2, стоящим на главной диагонали в строках к и к + 1, то матрица получается из А^-1^ изменением двух строк (А;-ой и (к + 1)-ой) длины п — к + 1. Вычисления по формулам (1.13.5) осуществляются следующим образом: вна- чале вычисляются числа = |4‘+Д|2, (!&) = 7|°£_1,12 + (16) затем - вектор = At1’ - lAAlA+uA, ••••>)' е c”-‘+i (it) К. Ю. Богачев Методы нахождения собственных значений
§9. QR АЛГОРИТМ 119 и его норма 11 11 = л/l^i*0 |2 + (18) Теперь можно вычислить искомый вектор х^ : := (4^/||^)||;4^/||^)||;о,...,о) е cn-fc+1. (19) После п шагов этого процесса (т.е. перехода от матриц (3) к (7)), матрица примет вид 1 R = А(/г-1) = П UiA, (20) i=n где матрица R имеет вид (9). Так как матрицы Uk унитарные и самосопряженные, то U^1 = U* = U и из (20) получаем п A=Y[UiR=QR (21) i=l — искомое Q-R-разложение. Хранение матриц Q и R в памяти. Матрица R хранится на месте верхне- го треугольника матрицы А и получается из нее последовательным применением матриц отражения (как описано выше). Для хранения матрицы Q выделяются два вектора длины п. В первом векторе хранятся первые ненулевые компоненты векторов х^, г = 1, 2,..., п, во втором векторе — вторые ненулевые компоненты векторов х^ , г = 1, 2,..., п. Оценка количества арифметических операций Оценим трудоемкость к-го шага алгоритма, а затем просуммируем получен- ные оценки по всем к = 1,..., п. 1. На вычисление матрицы U(xk) по формулам (1.13.5) требуется а) 1 умножение для вычисления Sk в (15); б) одно умножение, одно сложение и одна операция извлечения корня для вычисления ||а^-1^|| в (16); в) одно вычитание для построения вектора х^ в (17); г) одно умножение, одно сложение и одна операция извлечения корня для вычисления ||ж^|| в (18); д) 2 деления для построения вектора х^ в (19). Всего для построения матрицы U(xk) требуется 1+1+1+2=5 мультипли- кативных, 1 + 1 + 1 = 3 аддитивные операции и 1 + 1 = 2 операции извлечения корня. 2. Компоненты к,...,п к-то столбца матрицы , равные компонентам вектора || вх"'-уже вычислены в (16). Столбец к вычисляется не по общим формулам (20) для сокращения количества арифметических операций и уменьшения вычислительной погрешности. 3. Поскольку в формуле (20) матрица Uk вида (1.13.5) умножается на матрицу АД-1) вида (3), то при вычислениях по (20) надо умножить матрицу отражения К. Ю. Богачев Методы нахождения собственных значений
§9. QR АЛГОРИТМ 120 U(x^) e Mn_fc+1 на подматрицу (d-j ^)i=k,...,n,j=k+i,...,n матрицы A^k размера (n — к + 1) x (n — k) (к-й столбец матрицы уже вычислен в пункте 2). Поскольку матрица отличается от единичной матрицы только блоком 2x2, стоящим на главной диагонали в строках 1 и 2, то то при вычислениях по (20) надо умножить матрицу отражения Е Mn_fc+1 на подматрицу (dij~1'>)i=kjk+i,j=k+i,...,n матрицы размера 2х(п—к). Согласно лемме 1.13.11 на это требуется (п — &)(2-2 + 1) = 5(п — к) умножений и (п — /с)(2-2 — 1) = 3(п — к) сложений. Итак, на к-ом шаге алгоритма требуется выполнить 5 + 5(п — к) = 5(п —/с + 1) мультипликативных операций, 3 + 3(п — к) = 3(п — к + 1) аддитивных операций и 2 операции извлечения корня. Следовательно, всего для проведения алгоритма требуется выполнить 5(п — к + 1) = 5п(п + 1)/2 = (5/2)п2 + О(п) (п —> оо) к=1 мультипликативных операций, ^=13(п — к + 1) = (3/2)п2 + О(п) (п —> оо) аддитивных операций и ^=1 2 = О(п) (п —> оо) операций извлечения корня (которые по трудоемкости по порядку можно сравнить с операциями деления). § 9.1.3. Алгоритм построения QR-разложения для трехдиагональной матрицы Рассмотрим случай, когда матрица А Е Мп в приведенном выше алгоритме трехдиагональная. Алгоритм построения QR-разложения для трехдиагональной матрицы методом вращений Обозначим di = (ац, а21, 0,..., 0)* Е Rn - первый столбец матрицы А. Со- гласно лемме 1.12.3 существует матрица Т12 = ТЪ^ш), такая, что ТЪоц = Цоц|| (причем значение угла <р12 определяется леммами 1.12.2, 1.12.3). Умножим ма- трицу АЪ на Т12 слева, получим матрицу (НМ Г12 А1) ы22 Г13 ы23 А(1) = Т|2А = \ ы32 А1) ызз А1) и,п,п—1 А1) “71—1,71 А1) “7171 (22) Далее процесс применяется к подматрице (ajp)i;J=2,...,n- К. Ю. Богачев Методы нахождения собственных значений
§9. QR АЛГОРИТМ 121 Пусть сделаны к — 1, к = 1,... ,п — 1 шагов этого процесса, т.е. матрица преобразована к виду (2), где / ||сц|| г12 г13 \ Ill’ll f к-2,к-1 ll«(C2’ll Тк-1,к Тк—1,к+1 (fc-1) (к-1) акк ак,к+1 ак+1,к -о “71—1,71 ипп (23) Введем обозначение (4) для первого столбца подматрицы Со- гласно лемме 1.12.3 существует матрица 7^,fc+i = Tk^+i^Tk^+i), такая, что выпо- лено соотношение (5) (значения угла <fk,k+i определяются леммами 1.12.2,1.12.3). Умножим матрицу (23) на Tk,k+i слева, получим (6), где = / НМ г12 г13 \ Ill’ll ’ ’’A:—2,Jfc—1 ^fc-2,fc ||af“2)|| Гк-1,к Гк-1,к+1 Ц4*-1)|| Гк,к+1 Tk,k+2 (k) (k) ak+l,k+l ak+l,k+2 (k) ak+2,k+l ' ^71—1,71 —1 ^71—1,71 \ “S / (24) Отметим, что в (6) матрица элементарного вращения Тк,к+1 умножается только на подматрицу (azj-1^)j,j=A:,...,7i матрицы А^-1^ размера п — к + 1 (остальная часть в преобразовании (6) не участвует). Следовательно, матрица получается из А^-1^ изменением двух строк (к-ой и (к +1)-ой) длины п — к + 1, имеющими не более трех ненулевых элементов. После п— 1 шагов этого процесса (т.е. перехода от матриц (23) к (24)), матрица примет вид (8), где 1 НМ Г12 Г13 lA’ll Tn—2,п—1 Тп—2,п 114п-2)ц rn_ljn \ / (25) К. Ю. Богачев Методы нахождения собственных значений
§9. QR АЛГОРИТМ 122 (напомним, определения векторов к = 1,..., п — 1 даются в (4), где счи- (о) \ таем, что (ц' = <+). Так как матрицы вращения ортогональные, то Тг~^л = T^i+1 и из (8) полу- чаем искомое QR-разложение (10). Хранение матриц Q и R в памяти. Матрица А хранится в виде трех век- торов, задающих ненулевые диагонали матрицы. Матрица R хранится на месте матрицы А и получается из нее последовательным применением элементарных вращений (как описано выше). Для хранения матрицы Q выделяются два векто- ра длины п — 1. В первом векторе хранятся значения cos </9г,г+1, i = l,2,...,n — 1, во втором векторе — значения sin </9г,г+1, г = 1, 2,..., п — 1. Оценка количества арифметических операций Оценим трудоемкость к-го шага алгоритма, а затем просуммируем получен- ные оценки по всем к = 1,... ,п — 1. 1. На вычисление матрицы Т^+1, участвующей в (6), согласно лемме 1.12.2 требуется 4 мультипликативные, одна аддитивная и одна операция извлечения корня. 2. На вычисление компонент к,...,п к-го столбца матрицы , равных компонентам вектора ||а^ требуется (для вычисления длины век- тора (4)) две операции умножения, одна операция сложения и одна операция извлечения корня. Столбец к вычисляется именно этим способом (а не по об- щим формулам (6)) для сокращения количества арифметических операций и уменьшения вычислительной погрешности. 3. Поскольку в формуле (6) матрица элементарного вращения умножается на подматрицу (d-j V>}i=k,...,n,j=k+i,...,n матрицы размера (п — к + 1) х (п — к) (&-й столбец матрицы уже вычислен в пункте 2), имеющими не более двух ненулевых элементов, то согласно лемме 1.12.5 на это требуется не более 4-2 = 8 умножений и 2-2 = 4 сложений. Итак, на к-ом шаге алгоритма требуется выполнить не более 4 + 2 + 8 = 14 мультипликативных операций, 1 + 1+4 = 6 аддитивных операций и две операции извлечения корня. Следовательно, всего для проведения алгоритма требуется выполнить не бо- лее 22/Д1 14 = 14(п — 1) мультипликативных операций, 6(п — 1) аддитивных операций и 2(п — 1) операций извлечения корня (которые по трудоемкости по порядку можно сравнить с операциями деления). Алгоритм построения QR-разложения для трехдиагональной матрицы методом отражений Обозначим щ = (ац, «21,0,..., 0)* Е Rn - первый столбец матрицы А. Согласно лемме 1.13.9 существует вектор а^1) 6 С", вида (11), такой, что = || ai||ei, где ex = (1,0,...,0) Е С", Ui = U(x^) - матрица отра- жения. Отметим, что у вектора а^1) только первые две компоненты отличны от нуля. Следовательно, матрица U(x^) отличается от единичной матрицы только К. Ю. Богачев Методы нахождения собственных значений
§9. QR АЛГОРИТМ 123 блоком 2x2, стоящим на главной диагонали. Умножим матрицу А на U(x^) слева, получим матрицу А^1) = U(x^)A вида (22). Далее процесс применяется к подматрице . Пусть сделаны к — 1, к = 1,... ,п шагов этого процесса, т.е. матрица пре- образована к виду (12) где матрица имеет вид (23), матрица U построена в (13). Введем обозначение (4) для первого столбца подматрицы (azj-1^)j,j=A:,...,n Со- гласно лемме 1.13.9 существует матрица отражения (1.13.5) такая, что выполне- но соотношение (1.13.6). Введем матрицу Uk вида (1.13.7). Соотношения (1.13.8) и (1.13.9) показывают, что матрица Uk унитарна и самосопряжена. Отметим, что у вектора х^ в (1.13.5) только первые две компоненты отличны от нуля. Следо- вательно, матрица Uk отличается от единичной матрицы только блоком 2x2, стоящим на главной диагонали. Умножим матрицу (3) на Uk слева, получим (14), где имеет вид (24). От- метим, что в (14) матрица Uk умножается только на подматрицу (azj-1^)j,j=A:,...,n матрицы А^-1^ размера п — к + 1 (остальная часть А^-1^ в преобразовании (14) не участвует). Поскольку матрица Uk отличается от единичной матрицы только блоком 2x2, стоящим на главной диагонали в строках к и к +1, то матрица получается из А^-1^ изменением двух строк (А;-ой и (к +1)-ой) длины п — к + 1, имеющими не более трех ненулевых элементов. После п шагов этого процесса (т.е. перехода от матриц (23) к (24)), матрица примет вид (20), где матрица R имеет вид (25). Так как матрицы Uk унитарные и самосопряженные, то СД1 = U* = Ui и из (20) получаем искомое Q.R-разложение (21). Хранение матриц Q и R в памяти. Матрица А хранится в виде трех век- торов, задающих ненулевые диагонали матрицы. Матрица R хранится на месте матрицы А и получается из нее последовательным применением матриц отра- жения (как описано выше). Для хранения матрицы Q выделяются два вектора длины п. В первом векторе хранятся первые ненулевые компоненты векторов х^ , г = 1,2,... ,п, во втором векторе — вторые ненулевые компоненты векторов х^ , i = 1, 2,..., п. Оценка количества арифметических операций Оценим трудоемкость к-го шага алгоритма, а затем просуммируем получен- ные оценки по всем к = 1,..., п. 1. На вычисление матрицы U(xk) по формулам (1.13.5) требуется Ц-Ц-Ц-2 = 5 мультипликативных, 1 + 1 + 1 = 3 аддитивные операции и 1 + 1 = 2 операции извлечения корня. 2. Компоненты к,...,п к-го столбца матрицы А^, равные компонентам вектора ||а^ х^|| уже вычислены в (16). Столбец к вычисляется не по общим формулам (20) для сокращения количества арифметических операций и уменьшения вычислительной погрешности. К. Ю. Богачев Методы нахождения собственных значений
§9. QR АЛГОРИТМ 124 3. Поскольку в формуле (20) матрица Uk вида (1.13.5) умножается на матрицу вида (23), то при вычислениях по (20) надо умножить матрицу отражения U(x^) е Mn_fc+1 на подматрицу (azj-1^)j=A:,...,n,j=A:+i,...,?i матрицы Л^-1) размера (п — к + 1) х (п — к) (&-й столбец матрицы уже вычислен в пункте 2). Поскольку матрица отличается от единичной матрицы только блоком 2x2, стоящим на главной диагонали в строках 1 и 2, то то при вычислениях по (20) надо умножить матрицу отражения Е Mn_fc+i на подматрицу (aij ^)i=k,k+i,j=k+i,...,n матрицы Л^-1) размера 2 х (п — к), где в каждой строке не более двух ненулевых элементов, Согласно лемме 1.13.11 на это требуется 2(2 • 2 + 1) = 10 умножений и 2(2 • 2 — 1) = 6 сложений. Итак, на к-ом шаге алгоритма требуется выполнить 5 + 10 = 15 мультипли- кативных операций, 3 + 6 = 9 аддитивных операций и 2 операции извлечения корня. Следовательно, всего для проведения алгоритма требуется выполнить не бо- лее 15 = 15п мультипликативных операций, 9п аддитивных операций и 2п операций извлечения корня (которые по трудоемкости по порядку можно сравнить с операциями деления). § 9.2. QR алгоритм нахождения собственных значений Будем строить для матрицы Л Е М.п последовательность {А&} матриц Ак Е М.п по следующим правилам: 1) А=Л; 2) для всех к = 1, 2,... матрица Л^+i получается из матрицы Ак следующим образом: а) строим QR-разложение матрицы Ак: Ак = QkRk, б) вычисляем матрицу Л^+i как произведение матриц Rk и Qk: Л^+i = -R-kQk Лемма 1. Для всех к = 1, 2,... матрица Ак унитарно подобна А. Доказательство. Имеем. Л/;_|_1 — RkQk — [QkQk)RkQk — Qk[QkRk)Qk — QkAkQk. Следовательно, матрица Ак+± унитарно подобна Ак. Поскольку Лх = А, то по индукции получаем, что Ак унитарно подобна А для всех к = 1, 2,..., причем Ак+1 = Q*... Q^ArQk ...Q1 = (Qk... QiYA(Qk ... Qx) Следствие 1. Матрицы Ак, к = 1,2,... имеют те же собственные зна- чения, что и матрица А. Теорема 1. (Без доказательства.) Пусть собственные значения {Aj} ма- трицы А Е М.п таковы, что |Ах| > |А2| > ... > |АП|. К. Ю. Богачев Методы нахождения собственных значений
§9. QR АЛГОРИТМ 125 Тогда в некотором смысле (детали выходят за рамки настоящего курса) Qk —> I при к —> оо, Rk —> Ак при к —> оо. Тем самым диагональные элементы матрицы Ак = (off) сходятся к собственным значениям матрицы А: —> Aj0 при к —> оо, г = 1,2, . ,.,п при некотором щ (т.е. порядок собственных значений может нарушаться). Скорость сходимости матрицы Ак к треугольной имеет порядок О но нельзя утверждать, что при к —> оо, i > j. Замечание 1. (Без доказательства). Если для матрицы А осуществим LR- алгоритм, то при применении <2й-алгоритма собственные значения А получа- ются в правильном порядке > Xi при к —> оо, г = 1,2, ...,п, и скорость сходимости матрицы Ак к треугольной дается соотношением при к —> оо, i > j. Замечание 2. Q/?,-алгоритм сходится при существенно менее ограничитель- ных условия, чем это указано в теореме 1. Применение алгоритма к матрице А Е М.п произвольного вида требует слиш- ком большого числа арифметических операций (Сп3 + О(п2), константа С за- висит от метода построения <2й-разложения). § 9.2.1. QR алгоритм нахождения собственных значений для почти треугольной матрицы Лемма 2. Если матрица А — почти треугольная, то все матрицы Ак, к = 1, 2,... в QR-алгоритме — почти треугольные. Доказательство. Согласно (10) или (21) Q = П T?i+1 или Q = П Ui (по г=1 ’ г=1 утверждаемой в теоремах 1.12.1) и 1.13.1) единственности Q.R-разложения эти матрицы совпадают). Если матрица А - почти треугольная и А = QR - ее QR-разложение, то матрица RQ будет почти треугольной, так как умножение треугольной матрицы R на матрицу T*i+l или U справа заменяет ее г-й и i + 1 К. Ю. Богачев Методы нахождения собственных значений
§9. QR АЛГОРИТМ 126 столбцы на их линейную комбинацию, что в результате дает почти треугольную матрицу. Эта лемма позволяет значительно ускорить работу <2й-алгоритма. Перед его применением исходная матрица А приводится к почти треугольному виду А' унитарным подобием одним из алгоритмов, описанных в § 1.14 и § 1.15. Затем к матрице А' применяется <2й-алгоритм. Оценка количества арифметических операций на один шаг QR-алгоритма для почти треугольной матрицы для метода вращений 1) Построение Q/?,-разложения матрицы Ак = QkRx требует 2п2+О(п) (п —> оо) мультипликативных операций, п2 + О(п) (п —> оо) аддитивных операций и О(п) (п —> оо) операций извлечения корня (которые по трудоемкости по порядку можно сравнить с операциями деления). 2) Подсчитаем затраты на вычисление произведения (10). Так как умноже- ние треугольной матрицы R на матрицу T*i+l справа изменяет ее г-й и i + 1 столбцы, имеющие не более i + 1 ненулевой элемент, то согласно лемме 1.12.5 на это требуется 4(г + 1) умножений и 2 (г + 1) сложений. Следовательно, на вы- числение произведения (10) требуется 4(г + 1) = 4п(п + 1)/2 = 2п2 + О(п) (п —> оо) мультипликативных операций и п2 + О(п) аддитивных операций. Следовательно, один шаг алгоритма для почти треугольной матрицы требует 4п2 + О(п) (п —> оо) мультипликативных и 2п2 + О(п) (п —> оо) аддитивных операций. Оценка количества арифметических операций на один шаг QR-алгоритма для почти треугольной матрицы для метода отражений 1) Построение <2й-разложения матрицы Ак = QkRn требует (5/2)п2 + О(п) (п —> оо) мультипликативных операций, (3/2)п2 + О(п) (п —> оо) адди- тивных операций и О(п) (п —> оо) операций извлечения корня (которые по трудоемкости по порядку можно сравнить с операциями деления). 2) Подсчитаем затраты на вычисление произведения (21). Так как умножение треугольной матрицы R на матрицу Ui справа изменяет ее г-й и i + 1 столбцы, имеющие не более i + 1 ненулевой элемент, то Согласно лемме 1.13.11 на это требуется 5(г+1) умножений и 3(г+1) сложений. Следовательно, на вычисление произведения (21) требуется ^(г + 1) = 5(п + 1)(п + 2)/2 = (5/2)п2 + О(п) (п —> оо) мультипликативных операций и (3/2)п2 + О(п) аддитивных операций. Следовательно, один шаг алгоритма для почти треугольной матрицы требует 5п2 + О(п) (п —> оо) мультипликативных и Зп2 + О(п) (п —> оо) аддитивных операций. § 9.2.2. QR алгоритм нахождения собственных значений для самосопряженной трехдиагональной матрицы К. Ю. Богачев Методы нахождения собственных значений
§9. QR АЛГОРИТМ 127 Лемма 3. Если матрица А — самосопряженная, то все матрицы Ак, к = 1,2,... в QR-алгоритме — самосопряженные. Доказательство. Действительно, пусть Ак = QkRk - самосопряженная, т.е. А*к = R*kQ*k = Ак. Тогда Ак+\ = RkQk и в силу унитарности Qk имеем Л£+1 = QlR't = ОрЩ = Q^RKQpQt) = QP(R'tQ't'iQk = QpA-tQt = Q^AkQk, т.е. матрица Л^+i унитарно подобна самосопряженной матрице Ак и потому само- сопряжена. Лемма 4. Если матрица А — самосопряженная трехдиагоналъная, то все матрицы Ак, к = 1,2,... в QR-алгоритме — самосопряженные трехдиаго- налъные. Доказательство. В силу леммы 3 все матрицы Ак, к = 1,2,... — самосопря- женные. Поскольку трехдиагональная матрица А является почти треугольной, то в силу леммы 2 все матрицы Ак, к = 1,2,... — почти треугольные. Итак, для всякого к = 1,2,... матрица Ак является самосопряженной и почти тре- угольной, и, следовательно, трехдиагональной. Эти леммы позволяют значительно ускорить работу Q-R-алгоритма для са- мосопряженной матрицы. Перед его применением исходная матрица А приво- дится к трехдиагональному виду А' унитарным подобием одним из алгоритмов, описанных в § 1.14 и § 1.15. Затем к матрице А! применяется <2й-алгоритм. Шаг Q.R-алгоритма для самосопряженной трехдиагональной матрицы Для целей QR-алгоритма описанное выше построение QR-разложения для трехдиагональной матрицы (см. стр. 120) может быть значительно ускорено. 1) В матрице R (25) элементы Из, Г24,..., тп_2,п не вычисляются и не хранят- ся, поскольку, если А = QR — самосопряженная трехдиагональная, то матрицу RQ можно вычислить, не используя эти элементы. Действительно, поскольку при переходе от матрицы (23) к матрице (24) изменяются только к -я и (к + 1)-я строки матрицы Л^-1\ то невы- числение элемента г к,к+2 не окажет влияния на остальные элементы матрицы п—1 п А^к>. Далее, согласно (10) или (21) Q = П Ткк+1 или Q = П Uk, а умно- fc=i ’ fc=i жение R на Ткк+1 или Uk справа изменяет только к-й и (к + 1)-й столбцы матрицы R вида (25). Поэтому нижний треугольник произведения RQ можно вычислить, не используя элементы г^+2, i = 1,2, ...,п — 2. По лемме 4 ма- трица RQ — самосопряженная, поэтому ее верхний треугольник получается из нижнего транспонированием и комплексным сопряжением. Это наблюдение всегда используют при реализации QR-алгоритма для са- мосопряженной трехдиагональной матрицы, поскольку оно не только ускоряет вычисления и экономит память ЭВМ, но обеспечивает сохранение самосопря- женности матрицы вне зависимости от вносимой вычислительной погрешности. К. Ю. Богачев Методы нахождения собственных значений
§9. QR АЛГОРИТМ 128 2) При проведении QR-алгоритма для самосопряженной трехдиагональной матрицы нет необходимости хранить все матрицы, составляющие матрицу Q, достаточно хранить только последнюю (т.е. после к -го шага построения QR- разложения достаточно помнить только матрицу Тк fc+1 или Uk. Действительно, после перехода от матрицы (23) к матрице (24) в алгоритме участвует только подматрица и столбцы 1, 2,..., к в дальнейших вычислениях не изменяются. Поэтому можно сразу умножить на матрицу Тк_г к или Uk-i справа (это изменяет только (к — 1)-й и &-й столбцы матрицы А^). На последнем шаге (к = п — 1) надо умножить еще и на матрицу п или Un-i справа. В результате такого процесса матрица Ак в QR-алгоритме нахождения собственных значений сразу перейдет в матрицу Ak+i (без построения QR- разложения матрицы Ак в явном виде). Оценка количества арифметических операций на один шаг Q Л-алгоритма для самосопряженной трехдиагональной матрицы для метода вращений 1) Построение Q/?,-разложения матрицы Ак = QkRx требует 14п+О(1) (п —> оо) мультипликативных операций, 6п + 0(1) (п —> оо) аддитивных операций и 2п + 0(1) (п —> оо) операций извлечения корня (которые по трудоемкости по порядку можно сравнить с операциями деления). 2) Подсчитаем затраты на вычисление произведения (10). Так как умноже- ние трехдиагональной матрицы R на матрицу T*i+l справа изменяет ее г-й и i + 1 столбцы, имеющие не более трех ненулевых элементов, из которых один мы не вычисляем, то согласно лемме 1.12.5 на это требуется 8 умноже- ний и 4 сложения. Следовательно, на вычисление произведения (10) требуется 8 = 8(п—1) мультипликативных операций и 4(n —1) аддитивных операций. Следовательно, один шаг алгоритма для трехдиагональной матрицы требует 22п+О(1) (п —> оо) мультипликативных, 10п+О(1) (п —> оо) аддитивных опера- ций и 2п + О(1) (п —> оо) операций извлечения корня (которые по трудоемкости по порядку можно сравнить с операциями деления). Оценка количества арифметических операций на один шаг Q Л-алгоритма для самосопряженной трехдиагональной матрицы для метода отражений 1) Следовательно, всего для проведения алгоритма требуется выполнить не более 15п мультипликативных операций, 9п аддитивных операций и 2п опера- ций извлечения корня (которые по трудоемкости по порядку можно сравнить с операциями деления). 2) Подсчитаем затраты на вычисление произведения (21). Так как умножение трехдиагональной матрицы R на матрицу U справа изменяет ее г-й и i + 1 столбцы, имеющие не более трех ненулевых элементов, из которых один мы не вычисляем, то согласно лемме 1.13.11 на это требуется 10 умножений и 6 К. Ю. Богачев Методы нахождения собственных значений
§9. QR АЛГОРИТМ 129 сложений. Следовательно, на вычисление произведения (21) требуется Ю = 10п мультипликативных операций и 6п аддитивных операций. Следовательно, один шаг алгоритма для трехдиагональной матрицы требует 25п+О(1) (п —> оо) мультипликативных, 15п+О(1) (п —> оо) аддитивных опера- ций и 2п + О(1) (п —> оо) операций извлечения корня (которые по трудоемкости по порядку можно сравнить с операциями деления). §9.3. Ускорение сходимости алгоритма Рассмотрим способы, применяемые для ускорения сходимости последователь- ности матриц { А&} к диагональной матрице. Как отмечалось выше (см. стр. 104), эти способы во многом схожи со способами ускорения сходимости LR-алгоритма и алгоритма Холецкого. Также справедливы замечания 7.3 и 7.4. Поскольку Q7?,-алгоритм никогда не применяется для матриц произвольно- го вида, всюду ниже мы будем считать, что исходная матрица уже приведена унитарным подобием к почти треугольному или трехдиагональному виду. Таким образом, начальная матрица Ai — почти треугольная (или трехдиагональная). По доказанному выше это означает, что все матрицы Ak — почти треугольные (трехдиагональные). § 9.3.1. Исчерпывание матрицы Идея исчерпывания матрицы для QR-алгоритма та же, что и для LR- алгоритма (см. стр. 105). § 9.3.2. Сдвиги Идея использования сдвигов для (^й-алгоритма та же, что и для LR- алгоритма, (см. стр. 106). Модифицированный (^й-алгоритм, основанный на этой идее, выглядит следующим образом. Будем строить для матрицы А Е М.п последовательность {А^} матриц Ак Е М.п по следующим правилам: 1) А1=А; 2) для всех к = 1, 2,... матрица A^+i получается из матрицы А^ следующим образом: а) определяем требуемый сдвиг sk (его оптимальный выбор - отдельная задача), б) строим Q.R-разложение матрицы А& — skI: А& — skI = Q^Rk > в) вычисляем матрицу A^+i как произведение матриц Rk и Qk плюс S]~I A/;-|-i — RkLk -|- 8к1. К. Ю. Богачев Методы нахождения собственных значений
§10. МЕТОД ОБРАТНОЙ ИТЕРАЦИИ 130 Нетрудно проверить, что матрица A^+i (унитарно) подобна Ак: A^+i = RkQk + Ski = {Qk 1Qk)(RkQk + вД) = Qk 1 (QkRkfQk + SkQkI = Qk4QkRk + skQQk = Qk VA-kQk и> следовательно, все матрицы Ак, к = 1,2,... имеют те же собственные значения, что и матрица А. § 9.3.3. Практическая организация вычислений в QR алгоритме Пусть требуется определить все собственные значения матрицы А Е М.п с точностью е. Вначале приводим матрицу к почти треугольному виду Ак унитарным подо- бием одним из алгоритмов, описанных в§1.14и§1.15. Затем к матрице Ак применяем Q-R-алгоритм со сдвигами. На шаге к в качестве сдвига sk возьмем , т.е. sk = . Поскольку > Хп, то sk является приближением к Хп и скорость сходимости к нулю элемента а^_1 бу- дет очень высокой. Как только на некотором шаге к будет выполнено условие l^n-il < ^ШНоо, в качестве Хп берем и применяем алгоритм к подматрице (%•)«,на 1 меньшей размерности. Так поступаем до тех пор, пока размерность матрицы не станет равной 2. Для этой матрицы собственные значения определяются как решения соответствующего квадратного уравнения. § 10. МЕТОД ОБРАТНОЙ ИТЕРАЦИИ НАХОЖДЕНИЯ СОБСТВЕННЫХ ВЕКТОРОВ Метод обратной итерации позволяет найти собственный вектор, соответству- ющий однократному собственному значению А диагонализируемой матрицы А Е Мп, если известно достаточно хорошее приближение А к собственному значению А. Теорема 1 (Метод обратной итерации). Пусть матрица А Е М.п име- ет полную систему ортонормированных собственных векторов ei, i = 1,..., п: Aei = XiCi, {ei, еД = 6ij, причем собственное значение Xm, m = 1,2,... ,n одно- кратное. Пусть Xm Xm - достаточно хорошее приближение к Хт: max i=l,2,...,n г^т = q < 1- (1) Тогда для всякого вектора х^ Е Сп такого, что (Д°\ет) 0, итерационный процесс лу(/с + 1) vG — решение уравнения vG ЦжМ|Г (А — AmI)x^+1^ = х^ /с = 0,1,... (2) е(&+1) сходится к собственному вектору ет (с точностью до постоянного множи- теля): е$ —> егч>ет при к —> оо К. Ю. Богачев Методы нахождения собственных значений
§10. МЕТОД ОБРАТНОЙ ИТЕРАЦИИ 131 (где ег1р - число, по модулю равное 1). При этом существует такое ко > О, что для всех к > к0 выполнено неравенство Н41)-лт||<сЛ (з) где постоянная С не зависит от к. Доказательство. Поскольку вектора ei,...,en образуют базис в Сп, то ^(о) = CjCj, причем по условию ст = (х^, ет) ф 0. Поскольку г=1 ^(*+1) = (Л- Хт1)-Д^\ = (А-Ат1)“М0). Так как собственные значения матрицы А — Ат1 равны A, — Ат, i = 1,2,... ,п, то собственные значения матрицы (А — AmI)-1 есть (А$ — Am)-1, ? = l,2,...,n, а матрицы (А — AmI)-1 — (Aj — Ат)~к, i = 1, 2,..., п. Следовательно, п п г=1 i=l (Аг — An) В силу ортонормированности базиса {е^} В силу (1) и равенства ||х^°^||2 = £ 1сг|2 получаем г=1 (А™ - Ага)‘ - 11 11 - (Ага - Ат)‘ \ Ы2 ) или Л , АА>у1/2 < Ы 1 .. (. Ы2 ’ J - (Am-Ara)‘11^’11 “ Вычислим 'г(^) р (с 1 С \ FW " Ыет " l(Am-Am)feFW " ы;ет п 1 / \ _ \ . /хт IM^II (Am - Am? Cm \ Аг - Am К.Ю.Богачев Методы нахождения собственных значений
§10. МЕТОД ОБРАТНОЙ ИТЕРАЦИИ 132 В силу (1), (2) и равенств ||ej|| = 1, i = 1,2, обозначив ег1р = ст/\ст\, находим ||ей> - е-ега|| < (1 - (1 + + t М 1к • \ X lCml / / г=1 lGml 1д£т Так как п / п \ I/2 ^2\ci\<Vn ЕЫ2 =vMk(0)||, г=1 \г=1 / ТО В силу (1) найдется к0 > 0, такое, что для всех к > к0 выполнено а = —^~q2k < 1- Тогда (1 — ск)-1/2 > 1 — ск/2 и 1 — (1 — ск)-1/2 < ск/2 < о<1/2/2. \ст\2 Поэтому для всех к > ко справедливо неравенство ||е^ - e^em|| < ^у(1/2 + qk. \^т | Это неравенство является требуемой оценкой (3). К. Ю. Богачев Методы нахождения собственных значений
133 ПРОГРАММА КУРСА 1. Матричные нормы. Подчиненые матричные нормы. 2. Максимальная строчная и максимальная столбцовая нормы. Их подчинен- ность. 3. Спектральная норма и ее свойства. Спектральный радиус и его свойства. 4. Обратимость матрицы, близкой к обратимой (теорема Банаха). 5. Оценка относительной погрешности решения линейной системы через от- носительные погрешности в матрице системы и в правой части. Число об- условленности . 6. Оценка относительной погрешности решения линейной системы через не- вязку. Свойства числа обусловленности. 7. Метод Гаусса. Оценка числа арифметических операций. 8. Представление метода Гаусса в виде последовательности элементарных преобразований. LU-разложение. 9. Алгоритм построения LU-разложения. Оценка числа арифметических опе- раций. 10. Критерий осуществимости метода Гаусса. 11. Метод Гаусса для ленточных матриц. Оценка числа арифметических опе- раций. 12. Алгоритм построения LU-разложения для трехдиагональных матриц. Оценка числа арифметических операций. Организация хранения матриц в памяти ЭВМ. 13. Метод прогонки для трехдиагональных матриц. Оценка числа арифмети- ческих операций. Организация хранения матриц в памяти ЭВМ. 14. Задача обращения матрицы. Обращение матрицы с помощью LU-разложе- ния. Оценка числа арифметических операций. К. Ю. Богачев Программа курса
ПРОГРАММА КУРСА 134 15. Метод Гаусса с выбором главного элемента. Критерий осуществимости. Способы программной реализации. 16. Метод Жордана (Гаусса-Жордана) решения систем линейных уравнений. Оценка числа арифметических операций. 17. Положительно определенные матрицы. Осуществимость LU-разложения для положительно определенных матриц. 18. Теорема о разложении Холецкого для самосопряженной матрицы. 19. Метод Холецкого (квадратного корня) решения систем линейных уравне- ний. Организация процесса вычислений и хранения матриц в памяти ЭВМ. Оценка числа арифметических операций. 20. Метод ортогонализации решения систем линейных уравнений. Оценка чи- сла арифметических операций. 21. Матрица элементарного вращения и ее свойства (геометрический смысл, затраты на вычисление произведений на вектор и матрицу). 22. Метод вращений решения систем линейных уравнений. Осуществимость. Оценка числа арифметических операций. 23. Теорема о построении QR-разложения методом вращений. Единственность разложения. Способы хранения матриц Q и R в памяти ЭВМ. Оценка чи- сла арифметических операций, необходимых для построения QR - разло- жения. 24. Матрица отражения и ее свойства (геометрический смысл, затраты на вы- числение произведений на вектор и матрицу). 25. Метод отражений решения систем линейных уравнений. Осуществимость. Оценка числа арифметических операций. 26. Теорема о построении <2й-разложения методом отражений. Единствен- ность разложения. Способы хранения матриц Q и R в памяти ЭВМ. Оценка числа арифметических операций, необходимых для построения QR -разложения. 27. Приведение матрицы к почти треугольному виду унитарным подобием ме- тодом вращений. Осуществимость. Оценка числа арифметических опера- ций. 28. Приведение симметричной матрицы к трехдиагональному виду унитарным подобием методом вращений. Осуществимость. Оценка числа арифметиче- ских операций. К. Ю. Богачев Программа курса
ПРОГРАММА КУРСА 135 29. Приведение матрицы к почти треугольному виду унитарным подобием ме- тодом отражений. Осуществимость. Оценка числа арифметических опера- ций. 30. Приведение симметричной матрицы к трехдиагональному виду унитарным подобием методом отражений. Осуществимость. Оценка числа арифмети- ческих операций. 31. Локализация собственных значений. Теорема о кругах Гершгорина. 32. Оценка погрешности нахождения собственных значений через погрешность в матрице системы для диагонализируемых матриц. 33. Степенной метод поиска максимального собственного значения. Достаточ- ные условия сходимости. Оценка числа арифметических операций на один шаг алгоритма. 34. Общий вид методов нахождения собственных значений, минимизирующих сумму квадратов внедиагональных элементов матрицы. Теорема о сходи- мости таких методов (достаточное условие окончания итераций). 35. Преобразование элементарного вращения, используемое в методе вращений Якоби. Вид формул, обеспечивающий меньшее накопление вычислитель- ной погрешности. 36. Стратегии выбора очередного обнуляемого элемента в методе Якоби. Оцен- ка скорости сходимости в случае обнуления максимального по модулю вне- диагонального элемента. Оценка числа арифметических операций на один шаг алгоритма для каждой из стратегий. 37. Вычисление к -го по величине собственного значения методом бисекции. Оценка количества итераций. Способы вычисления числа перемен знака в последовательности главных миноров. Организация процесса вычислений для предотвращения переполнения или потери точности. 38. Вычисление всех собственных значений матрицы на заданном интервале методом бисекции. Оценка количества итераций. Способы вычисления чи- сла перемен знака в последовательности главных миноров. Организация процесса вычислений для предотвращения переполнения или потери точ- ности. 39. Теорема о LR-разложении. Тй-алгоритм поиска собственных значений, его осуществимость. Достаточные условия сходимости (без доказатель- ства) . 40. Алгоритм построения Тй-разложения. Сохранение почти треугольного ви- да матрицы в LR-алгоритме нахождения собственных значений. К. Ю. Богачев Программа курса
ПРОГРАММА КУРСА 136 41. Алгоритм построения Ай-разложения для почти треугольной матрицы. Расчетные формулы LR-алгоритма нахождения собственных значений для почти треугольной матрицы. Оценка числа арифметических операций на один шаг алгоритма. 42. Ускорение сходимости LR-алгоритма с помощью исчерпывания матрицы и сдвигов (без доказательства). Пример выбора сдвига и исчерпывания ма- трицы. 43. Теорема о разложении Холецкого, используемом в методе Холецкого поис- ка собственных значений симметричной матрицы. Метод Холецкого поиска собственных значений симметричной матрицы, его осуществимость. Доста- точные условия сходимости (без доказательства). 44. Алгоритм построения разложения Холецкого, используемом в методе Хо- лецкого поиска собственных значений симметричной матрицы. Сохранение трехдиагонального вида матрицы в методе Холецкого поиска собственных значений симметричной матрицы. 45. Алгоритм построения разложения Холецкого, используемом в методе Хо- лецкого поиска собственных значений симметричной матрицы, для трех- диагональной матрицы. Расчетные формулы метода Холецкого поиска соб- ственных значений для трехдиагональной матрицы. Оценка числа арифме- тических операций на один шаг алгоритма. 46. Ускорение сходимости метода Холецкого поиска собственных значений с помощью исчерпывания матрицы и сдвигов (без доказательства). Пример выбора сдвига и исчерпывания матрицы. 47. Q-R-алгоритм поиска собственных значений, его осуществимость. Доста- точные условия сходимости (без доказательства). 48. Сохранение почти треугольного вида матрицы в QR-алгоритме нахожде- ния собственных значений. 49. Алгоритм построения Q-R-разложения для почти треугольной матрицы. Расчетные формулы Q-R-алгоритма нахождения собственных значений для почти треугольной матрицы. Оценка числа арифметических операций на один шаг алгоритма. 50. Ускорение сходимости Q-R-алгоритма с помощью исчерпывания матрицы и сдвигов (без доказательства). Пример выбора сдвига и исчерпывания ма- трицы. К. Ю. Богачев Программа курса
137 ЛИТЕРАТУРА 1. Практикум по алгебре. Под ред. Н.С. Бахвалова, А.И. Кострикина. Изд.-во МГУ, 1983. 2. Ю.П. Размыслов, С.Я. Ищенко. Практикум по вычислительным методам ал- гебры. Изд.-во МГУ, 1988. 3. Н.С. Бахвалов, Н.П. Жидков, Г.М. Кобельков. Численные методы. М., ’’На- ука”, 1987. 4. Д.К. Фаддеев, В.К. Фаддеева. Вычислительные методы линейной алгебры, 1963. 5. Дж.Х. Уилкинсон. Алгебраическая проблема собственных значений. М., ’’На- ука”, 1970. 6. Р. Хорн, Ч. Джонсон. Матричный анализ. М., ’’Мир”, 1989. 7. А.А. Самарский, А.В. Гулин. Численные методы. М., ’’Наука”, 1989. 8. С. Писсанецки. Технология разреженных матриц. М., ’’Мир”, 1988. К. Ю. Богачев Список литературы