ЕГЭ и ОГЭ
Хочу знать
Главная > Математика > Численные методы
<< Предыдущий параграф
Следующий параграф >>
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
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
<< Предыдущий параграф Следующий параграф >>
Макеты страниц

§ 2. Эрмитовы матрицы

1. Метод отражения.

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

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

Рис. 31.

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

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

Это преобразование вектора можно записать в канонической форме умножения на матрицу отражения

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

Заметим, что равенства (24)-(25) в координатной форме записываются следующим образом:

Исследуем свойства матрицы отражения. Эта матрица эрмитова, что непосредственно вытекает из следующей цепочки преобразований:

Возведем матрицу отражения в квадрат:

Преобразуем последний член правой части, используя ассоциативность умножения матриц и условие нормировки (23):

Тогда последний член сократится с предпоследним, и мы получим

т. е. матрица отражения равна своей обратной. А сравнивая (27) и (28), убедимся, что , так что матрица отражений унитарна.

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

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

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

Покажем, что для произвольной матрицы А можно подобрать такую конечную последовательность отражений, которая приводит матрицу к верхней почти треугольной форме. Для этого очередное отражение должно уничтожать самый длинный ненулевой столбец в нижней части матрицы А. Действие первых двух отражений показано на рис. 32, где жирными точками обозначены ненулевые элементы матрицы, а кружками — нулевые; третье отражение обращает в нуль обведенные элементы третьего столбца.

Будем считать, что уже уничтожен столбец, и разобьем матрицу А на клетки, как показано на рис. .32. Квадратная клетка есть верхняя почти треугольная матрица, а в прямоугольной клетке только последний столбец отличен от нуля.

Сделаем отражение при помощи вектора , у которого первые q компонент нулевые:

(дальше верхний индекс вектора будем обычно опускать). Тогда видно, что если матрицу отражения разбить на клетки того же размера, что у матрицы А, то недиагональные клетки будут нулевыми:

Рис. 32.

Из курса линейной алгебры известно, что если матрицы одинаковым образом разбиты на клетки, то они перемножаются по таким же формулам, как если бы эти клетки были обыкновенными элементами. Тогда искомое преобразование подобия принимает следующий вид:

Левая верхняя клетка результирующей матрицы В имеет нужную нам форму — верхнюю почти треугольную. Поскольку у клетки только последний столбец отличен от нуля, то у клетки элементы последнего столбца равны

где

остальные же элементы этой клетки равны нулю.

Нам надо так подобрать вектор w, чтобы обратились в нуль все элементы столбца (31), кроме верхнего. Очевидно, для этого надо положить

(33)

и найти, чему равна постоянная а. Заметим, что умножение вектора w на множитель не меняет матрицы отражения; тогда из (32) следует, что а также определена только с точностью до этого множителя. Его всегда можно выбрать так, чтобы а была вещественной положительной, что будем предполагать выполненным.

Из (31) следует, что

(34)

Подставляя (33)-(34) в условие нормировки (23), получим

Подстановка тех же выражений в формулу (32) дает

Последнее слагаемое в правой части этого равенства должно быть вещественным, поскольку остальные члены вещественны. Поэтому должно выполняться соотношение где k — любое целое число. Для улучшения счетной устойчивости алгоритма выгодно полагать : тогда последний член в правой части (36) будет положительным, и величина, а никогда не станет близкой к нулю. Таким образом,

Учитывая этот выбор аргумента и приравнивая друг другу правые части равенств (35) и (36), получим

Заменяя в (36) сумму при помощи равенства (38) и учитывая (37), упростим выражение для а:

Формулы (37)-(39) и (33)-(34) полностью определяют матрицу очередного отражения. Эти формулы составлены так, что для вещественной матрицы А при вычислениях не возникает комплексных величин, а формула (37) для вычисления аргумента принимает при этом вид

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

Рассмотрим, как экономно организовать вычисления. Формулы для определения матрицы отражения не требуют большого объема расчетов.

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

Вместо того, чтобы перемножать две матрицы, мы пользуемся ассоциативностью умножения и сводим вычисление к двукратному умножению матрицы на вектор, что примерно в раз быстрее. Умножение на W слева выполняется аналогично. Заметим, что если матрица А эрмитова, то возможна дополнительная экономия: тогда так что клетку можно вообще не вычислять, а в клетке достаточно найти только нижнюю половину элементов.

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

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

Вычисления по этой формуле также надо делать экономично, выполняя каждое умножение на очередную матрицу как два умножения на вектор по формуле (24).

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

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

Для неэрмитовых матриц метод отражения менее выгоден, ибо результирующая матрица является верхней почти треугольной, а для нее описанный в § 1 метод нахождения собственных значений, довольно трудоемок. В итоге такой подход требует около арифметических действий для вычисления всех собственных значений и еще действий для нахождения всех собственных векторов. Зато численная устойчивость алгоритма хорошая.

<< Предыдущий параграф Следующий параграф >>
Оглавление