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



все ее коэффициенты равны нулю. Поэтому из (19) следует

Видно, что если Я/?«Я/, то коэффициент у будет очень большим; в противном случае он невелик. Рассмотрим следствия из этого в трех основных случаях.

Первый с л у ч а й - собственное значение Я; простое. Тогда из всех коэффициентов Еу, 1 s/sgn, только один коэффициент Е; оказывается очень боЛьшим. Это означает, что найденный вектор X почти совпадает с собственным вектором Xi (с точностью до нормировочного множителя), что и требовалось доказать. Заметим, что поскольку найденный вектор х оказывается очень большим, то его обычно нормируют.

Из (20) видно, что при обратной итерации (т. е. при переходе от & к л:) компонента р,- усиливается по сравнению с другими компонентами р,- примерно во столько раз, во сколько погрешность данного собственного значения меньше разности соседних собственных значений. Поэтому чем точнее найдено Я; (очевидно, хорошая точность особенно важна при наличии близких собственных значений), тем ближе х будет к Х{. Если собственные значения найдены слишком грубо, или случайно вектор b выбран неудачно, так что Рг очень мало, то разница между X я Xi может оказаться заметной. Тогда подставляют найденный вектор jc в правую часть уравнения (17) вместо b и организуют итерационный процесс

{A-liE)x = x-\ л;() = &. (21)

Обычно он сходится настолько быстро, что двух итераций вполне достаточно. Напомним, что на каждой итерации обязательно надо нормировать найденные л;, чтобы не получать в расчетах слишком больших чисел, вызывающих переполнение на ЭВМ.

Замечание 1. Очень эффективен один простой способ выбора Ь. В качестве его компонент в декартовых координатах возьмем последовательные многоразрядные псевдослучайные числа (см. § 4 главы IV). Тогда вероятность того, что Р; окажется очень малым, будет ничтожна.

Второй с л у ч а й - собственное значение Я; кратно; например, Я1 = Я2 = . .. = Яр, 1<;р=££п. Напомним, что в этом случае собственные векторы х, х, Хр определены неоднозначно; любая их линейная комбинация удовлетворяет уравнению

А i 2 ajXi = 2 iAXj = \ ajXi j = i J 1=1 /=1

и является собственным вектором. Т. е. они порождают р-мерное



подпространство, любой базис которого можно взять в качестве системы искомых собственных векторов.

Теперь из (20) следует, что большими оказываются коэффициенты li, 1р. причем степень их усиления одинакова; остальные коэффициенты остаются малыми. Значит, найденный из (17) вектор л: будет приближенно линейной комбинацией х,

лга.....Хр, а тем самым - искомым собственным вектором. Если

точность полученного приближения недостаточна, то обратную итерацию повторяют снова по формуле (21).

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

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

Третий случай -когда матрица имеет кратные корни, но число ее собственных векторов меньше п -выходит за рамки нашего доказательства. Однако метод обратных итераций здесь также применим в той форме, - которая описана для кратных корней. Разница лишь в том, что если р-кратному собственному значению соответствуют всего q собственных векторов {q<p), то из полученных обратной итерацией векторов jc* только q будут линейно-независимыми. Это выясняется при их ортогонализации: первые q векторов ортогонализуются «без приключений», а при ортогонализации следующих векторов их компоненты обранщются почти в нуль (в пределах погрешности расчета).

Каков объем расчетов в методе обратной итерации? Нахождение собственного вектора требует (при одной итерации) не более

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

В некоторых частных случаях расчеты существенно упрощаются и ускоряются. Наиболее важен случай трехдиагональной матрицы. При этом линейная система уравнений (17) для определения компонент собственных векторов также будет трехдиагональной, и ее решают экономичным методом прогонки по несложным формулам (5.10) - (5.12). Для вычисления одного собственного вектора в этом случае требуется 10/г, а для всех -10п арифметических действий.



Для почти треугольной матрицы в методе обратных итераций требуется решать линейную систему с почти треугольной матрицей, что делается специальным вариантом метода исключения. Если учесть, что случайный вектор в правой части (17) можно задавать уже после приведения матрицы в методе исключения Гаусса к треугольной форме, то нахождение каждого собственного вектора требует /jn действий (тот же прием для трехдиагональной матрицы позволяет сократить число действий до 7п). А для нахождения всех собственных векторов 1ребуется соответственно /п арифметических действий.

Отметим одну суш,ественную деталь. Поскольку det (Л - я«0, то при нахождении собственных векторов в формулах прямого хода метода исключений (прогонки) на главной диагонали появится хотя бы один очень малый элемент. Чтобы формально можно было вести расчёт, диагойальные элементы не должны обращаться в нуль; для этого надо, чтобы погрешность собственного значения была не слишком мала, т. е. составляла бы 10-15 последних двоичных разрядов числа на ЭВМ. Если корни характеристического многочлена находят методом парабол (или секущих), то такая погрешность получается естественно, ибо из-за ошибок округления эти методы перестают сходиться в очень малой окрестности корня. Но если корни определялись методом Ньютона, то при этом могли быть найдены верно все знаки собственного значения; тогда, чтобы избежать деления на нуль, приходится специально вносить в Я,- небольшие погрешности.

Пример. Возьмем жорданову подматрицу С4 четвертого порядка (3) и приближенное собственное значение % = а-е. В качестве b выберем вектор с единичными декартовыми координатами. Тогда уравнение (17) примет вид

8 1 О Oi

О 8 1 О

О О S 1

О О О 8

exg+Xi .

\ e.v:4 /

(22а)

Последовательно находим компоненты вектора х:

Xi = e-1, - 8"2-j-8~l,

Хз = 8-3 -8-2 + 8-1,

Xi = - + 6- - е-3 + 8-1. Затем нормируем вектор, умножив все компоненты на - 8-*:

Xi = l+0(e), Х2 = 0(8), Хз = 0(г% Xi = 0(z).

(226)

(22в),

Полученный вектор д:=е+0(г) приближенно равен собственному вектору жордановой матрицы (см. п. 1), что нам и требовалось. Попутно заметим, что в промежуточных выкладках (226) возникали высокие обратные степени пог* решности 8, чего не бывает у матриц с п собственными векторами. Это пока-.зьшает, что случай матриц, содержащих жордановы подматрицы высокого порядка, труден для численных расчетов на ЭВМ, ибо в них легко возникают переполнения,



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.0335