Главная Численные методы при исследовании физических задач



преобразовании подобия (57) с матрицей она останется нижней почти треугольной. В самом деле, клетка при этом преобразовании не меняется; В клетке А ненулевым был только левый нижний элемент а, y+ii из формул (60) видно, что в клетке тоже только он будет отличен от нуля, причем bg g+i = agg+j. Клетка В4 также имеет нужную форму; в этом нетрудно убедиться, произведя поэлементное умножение.

Мысленно транспонируем все преобразования первого хода; согласно правилам матричной алгебры для этого надо транспонировать все матрицы, а во всех произведениях изменить порядок перемножения матриц на обратный. При транспонировании N (и) получим матрицу

о 1 о о

-Eql О :

- 19 + 3

(65)

• Х[Х X X X

• eiX X X X

• (• • •)

"о" • 1 • •

0 о<» • • •

о о,о • • •

0 ОЮ 0 • •

Рис. 35.

Причем M-(v) = M (-v). Тогда предыдущий вывод принимает такую форму: если для верхней почти треугольной матрицы производится преобразование подобия при помощи матрицы (65), то результирующая матрица остается верхней почти треугольной.

Применим цепочку преобразований подобия М~АМ к матрице, полученной в результате первого хода. На каждом шаге элементарную матрицу М (v) будем подбирать так, чтобы аннулировать элементы правой половины очередной строки (см. рис. 35, где точками обозначены ненулевые элементы, кружками-элементы, обращаемые в нуль на первом ходе, крестиками - обращаемые в нуль на начальных шагах второго хода; элементы, аннулируемые на очередном шаге, обведены). Благодаря такому выбору результирующая матрица должна стать нижней почти треугольной. Но в силу сказанного выше она одновременно остается верхней почти треугольной. Тем самым она будет трехдиагональной, что и требовалось.

Все формулы второго хода легко получить, применяя описанное выше транспонирование к формулам первого хода. Например, пусть аннулированы первые q-l строк, и надо аннулировать -ю строку. Тогда подбор элементов искомого преобразования производится аналогично формуле (59):

У/ = при (7 + 2</<п,

д + 1

(66)

И Т. д. Поскольку на втором ходе в клетке Лд имеется только



ОДИН ненулевой элемент, а в клетке Л4 около половины элементов-нулевые, то преобразование подобия почти треугольной матрицы к трехдиагональной форме требует всего п/З арифметических действий, т. е. является очень быстрым.

Однако, если на некотором шаге второго хода ведущий элемент Оу, г+1 окажется очень малым, то расчет становится неустойчивым. А улучшать устойчивость перестановкой строк и столбцов здесь уже нельзя, ибо такая перестановка нарушает структуру матрицы (она перестает быть верхней почти треугольной). Поэтому, чтобы ослабить влияние ошибок округления, нередко производят расчет второго хода и вычисление характеристического многочлена трехдиагональной матрицы с двойной точностью. В отдельных случаях и это не помогает; тогда производят какую-либо перестановку столбцов исходной матрицы и такую же перестановку строк и повторяют расчет с самого начала. Правда, на практике срывы процесса довольно редки.

Всего двухходовой метод элементарных преобразований требует 2п действий для приведения матрицы к трехдиагональной форме, около 60ft2 действий для нахождения всех собственных значений и собственных векторов трехдиагональной матрицы, и еще 2rf действий для преобразования этих векторов в собственные векторы исходной матрицы. Это всего лишь в 7-8 раз больше, чем нужно для решения очень простой задачи - линейной системы того же порядка!

Таким образом, метод элементарных преобразований является очень быстрым и в большинстве случаев устойчивым.

2. Итерационные методы. Существует много методов, основанных на бесконечной последовательности преобразований подобия, приводящей матрицу к некоторым специальным формам, для которых полная проблема собственных значений легко решаегся. Итерационные методы сложнее прямых, а для матриц произвольного вида заметно уступают прямым методам по скорости (и зачастую-по устойчивости). Но поскольку известные прямые методы не совсем удовлетворительны, то пренебрегать итерационными методами не следует. Ниже даны краткие сведения о наиболее известных итерационных методах; подробное - изложение их алгоритмов имеется, например, в монографиях [5, 41].

Метод обобщенных сращений (развитый Эберлейн и В. В. Воеводиным в 1962-1965 гг.) основан на преобразовании матрицы к квазидиагональной форме, когда по главной диагонали расположены клетки, порядки которых равны кратности соответствующих собственных значений, а все остальные элементы матрицы равны нулю (разумеется, приближенно, ибо процесс итерационный). Если все собственные значения простые, то процесс сходится к диагональной матрице.

Для клеток, соответствующих кратным собственным значениям, надо находить собственные значения и собственные векторы специальным алгоритмом, т. е. в метод включаются дополнительные процедуры. Это неудобство имеется во всех итерационных методах. Но поскольку порядок таких клеток обычно невелик, то это не вызывает серьезных затруднений.

Шаг процесса состоит из двух .частей. На первом полушаге делается элементарное- преобразование матрицей типа N или М, в которой только одна из компонент v отлична от нуля; ее величина подбирается так, чтобы как



можно сильнее уменьшить А \\. Поскольку для любой матрицы А

2 I Я; причем только для нормальных матриц имеет место равенство, (=1

то такое преобразование приближает матрицу к нормальной. Второй полушаг - это вращение типа Якоби; для вещественной матрицы угол поворота ф определяется из условия

tg 2ф = (uki + aik)l{akk - ац).

Процесс организован так, что полный шаг для эрмитовых матриц точно совпадает с циклическим вариантом метода Якоби. Значит, вычисления в общем случае требуют более 50п» арифметических действий, т. е. метод довольно медленный. Зато он является одним из наиболее устойчивых.

Ортогональный степенной метод (предложенный В. В. Воеводиным в 1962 г.) основан на преобразовании матрицы к квазитреугольной форме, когда на главной диагонали стоят клетки, а ниже их все элементы равны нулю. У таких матриц собственные значения равны собственным значениям диагональных клеток, но собственные векторы определяются сложней и значительно менее точно.

Ортогональный степенной метод устойчив и веегда сходится. Скорость сходимости линейная, со знаменателем типа [х = тах , где Х; -собственные значения, расположенные в порядке возрастания модулей (причем кратные значения считаются за одно). Следовательно, требуемое число итераций довольно велико, особенно если среди собственных значений есть близкие. Одна итерация требует (10/3) арифметических действий, так что метод оказывается весьма медленным.

Треугольный степенной метод (предложен Бауэром в 1957 г.) также основан на преобразовании матрицы к квазитреугольной форме. Сходимость его тоже линейная, но одна итерация требует всего (5/3) действий, а при небольшом усложнении алгоритма-даже (2/3) действий. Зато этот метод менее устойчив, чем ортогональный степенной метод, особенно если собственные значения комплексные, или в расчетах появляются матрицы с близкими к нулю главными минорами. Зачастую для сохранения устойчивости приходится видоизменять алгоритм.

ЛР-алгори/пж (предложен Рутисхаузером и Бауэром в 1955 г.) тоже содержит преобразование матрицы к квазитреугольной форме. Он разработай только для вещественных матриц с вещественными собственными значениями. Метод всегда сходится, причем вблизи решения квадратично; одна итерация требует (7/3) действий. Таким образом, по скорости этот метод превосходит ортогональный степенной; зато он уступает ему по устойчивости.

QR-алгоритм (предложен В. Н. Кублановской и Френсисом в 1961 г.) основан на преобразовании матрицы к квазитреугольной форме. По устойчивости и характеру сходимости он аналогичен ортогональному степенному методу. Этот метод очень выгоден для верхних почти треугольных матриц: в ходе преобразований их структура не разрушается, и благодаря этому одна итерация требует всего 6«2 арифметических действий (т. е. время расчета уменьшается в л/2 раз по сравнению с общим случаем). Детали этого алгоритма хорошо отработаны, и существуют основанные на нем стандартные программы.

LP-алгоритм (предложен Рутисхаузером в 1955 г.) рассчитан только на вещественные матрицы с вещественными собственными значениями. Он близок к треугольному степенному методу, не очень устойчив и сходится медленно (построены даже примеры зацикливания процесса). Зато для почти треугольных матриц он требует всего 2rfi действий на одну итерацию, а для ленточных матриц дает еще большую экономию.

3. Некоторые частные случаи. Косоэрмитова матрица А умножением на i превращается в эрмитову матрицу B = iA; для эрмитовой же матрицы проблема собственных значений решается



0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 [61] 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170


0.0156