Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

книги / Линейная алгебра

..pdf
Скачиваний:
35
Добавлен:
12.11.2023
Размер:
13.06 Mб
Скачать

4

0

0

 

0

0

= Л.

0

0

—4i

 

Матрица А\ = Л - диагональная, матрица Т = 2\з- По диагональ­ ным элементам матрицы Л выписываем искомые собственные значе­ ния А* = 4, Аг = 4г, Аз = —4» матрицы А, а по столбцам матрицы Т - собственные векторы

= (0, 1, 0)J е3 =

^

матрицы А .

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

Метод вращений хорошо реализуется на ЭВМ. Причем существует большое количество вычислительных схем для его реализации. При любой из таких схем метод вращений представляет собой исключи­ тельно компактную процедуру, которая обеспечивает высокую точ­ ность вычислений. Точность нахождения собственных значений и собственных векторов этим методом оказывается сравнимой с дли­ ной машинного слова. Стандартные программы к методу вращений приведены в [29].

Примечание. Другим надежным и быстро сходящимся методом отыскания собственных значений и собственных векторов положи­ тельно определенной симметрической (эрмитовой) матрицы может быть, как уже отмечалось в п. 6.10, итерационный процесс (см. [18], [29], [37]) получения сингулярного разложения А = QEP* такой ма­ трицы косвенным путем с помощью отражений и вращений с после­ дующим выписыванием из этого разложения собственных значений (диагональных элементов матрицы Е) и соответствующих им соб­ ственных векторов (столбцов матрицы Р). В случае произвольной симметрической (эрмитовой) матрицы А этот процесс дает модули собственных значений матрицы А.

9.3.ф Я -ал гори тм

фЯ -ал гори тм — это наиболее употребительный в настоящее вре­ мя итерационный метод отыскания характеристических чисел дей­ ствительных и комплексных матриц. Стандартные программы к это­ му методу содержатся в [29]. С?Я-алгоритм состоит в следующем.

Для данной матрицы А = Ао строят (см. п. 6.9) фЯ-разложение

А= Q OR Q. В полученном разложении меняют местами множители. Это приводит к матрице А\ = RoQo, с которой поступают анало­ гично и т.д. В результате получают последовательность матриц

Ао , А \, А2, . •., Ak , ...

Эти матрицы подобны, так как

М = Q0 1AoQo, А2 = Qi lAiQi и т.д.

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

Для ускорения фЯ-алгоритма желательно, чтобы на каждом его шаге быстро строилось фЯ-разложение очередной матрицы А*. Для этого следует исходную матрицу с помощью ортогональных (унитар­ ных) преобразований привести к подобной матрице Ао = U^AU более простого вида, например, почти треугольного вида или трех­ диагональной формы. О приведении матрицы к подобной матрице почти треугольного вида см. п. 6.7 и [3, с. 182-184.]. фЯ-алгоритм практически всегда применяется к почти треугольным матрицам, а в симметрическом случае — к трехдиагональным.

Другим важным приемом ускорения фЯ-алгоритма является ис­ пользование сдвигов <Tk для повышения скорости убывания по абсо­ лютной величине элементов, лежащих ниже главной диагонали. С этой целью на + 1)-м шаге вместо матрицы А* разлагают в QR- разложение матрицу А* — ст^Е. Пусть А* — ст^Е = QkRk - QR- разложение этой матрицы. Тогда строят матрицу А*+1 = Rk Qk + (TkE. Такой переход от А* к А*+1 не меняет характеристических чисел, поскольку матрицы А* и А*+1 подобны. Действительно,

Q

k — Q k l { QhRh + <rkE)Qk = RkQk + (TkE = A *+i.

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

Пусть в результате некоторого числа шагов фД-алгоритма при­

шли к матрице вида

 

 

/ *

*

* \

*

 

(9.27)

 

 

\0

е

К /

с пренебрежимо малым по абсолютной величине числом е. Тогда при­ нимают Ап = Уп и переходят вычислению характеристического чи­ сла An_i. При этом фактически работают уже с матрицей (п — 1)-го порядка, расположенной в матрице (9.27) в ее левом верхнем углу. Причем за сдвиг о** теперь каждый раз принимают элемент, стоя­ щий в правом нижнем углу матрицы (п — 1)-го порядка, с которой работают. После того, как вычислено An_i, аналогично поступают при вычислении Ап_2 и т.д. Если матрица действительная, то Q R - алгоритм можно реализовать в вещественной арифметике (см. [34, с. 142]).

Пример. С помощью QД-алгоритма найти характеристические чи­

сла матрицы

(1 1 о \

Л = 0 2 1

V 0 2 3 /

Решение. Для того, чтобы показать, как проводятся циклы QR- алгоритма без сдвига и со сдвигом, начнем с того, что первый цикл проведем без сдвига. Поэтому будем строить QД-р азложение мат­ рицы Ао = А. Сначала эту матрицу вращениями приведем к тре­ угольному виду. Начнем с зануливания элемента азг = 2. Для этого составим матрицу вращения

 

1

О

О

Т32 =

О

cos у?

— sin у?

 

О

sin

cos <р

и найдем cosy? и sin у? из равенства нулю в позиции (3.2) элемента матрицы T32(A I Е )ут.е. из равенства

022 sin у? + <*32 cos у? = 2 sin у? + 2 cos у? = 0.

Отсюда получается tg= — 1. Поэтому

 

 

cosy?

=

 

1

1

 

tg¥>

- 1

 

 

 

 

 

V 2 ’

 

\А + tg V

 

 

ч/1

 

/

1

0

0

\

И

 

Т32 =

0

1/ ^/ 2

1 /V2

 

 

 

I

-1 /V 2

1 /V2

)

 

 

 

V о

 

 

 

=

 

0

0

\ / ' 1

1

 

Т3 2 А 0

0

1 /V2

1/V5

0

2

 

 

(

- 1 /V2

1/V2

k 0

2

 

 

V о

\

 

 

 

 

О

4/V 2

4/V2

= До.

 

 

 

 

О

0

2/уД )

 

 

 

Из этого равенства получается фД-разложение

Ао — Гзг'До — 1 з2Яо

 

 

 

 

1

О

О

1

О

О

 

О

1Д/2

-1 Д /2

О

4/л/2

4/V 5

= С?оДо-

О 1/уД

1/уД

О

0

2/л/2

 

В заключение цикла строим матрицу

 

 

 

 

1

О

О

1

О

О

А\ = RoQo =

О

4/л/2

4/V 2

О

1/V2

-1/V2

 

0

0

2/уД

О

1/V2

1/у/2

 

1

1Д/2

-1 /V 2

 

 

 

 

0

4

0

 

 

 

 

0

1

1

 

 

 

Следующий цикл проведем со сдвигом с

=

= 1.

Поэтому будем

строить QR- разложение матрицы

 

 

 

 

 

 

( 0 1Д/2 -1 Д /2

0

 

 

 

0

3

 

О

1

0

Сначала эту матрицу вращениями приведем к треугольному виду. Здесь следует занулить лишь элемент = 1. Для этого составим

матрицу вращения

(

1

0

0

\

Гэг = I

О

сову»

—sinу»

I

\

0

sin^

сову»

/

и найдем сову» и sin у» из равенства нулю элемента матрицы T^{Ai Е) в позиции (3,2), т.е. из равенства

 

022 sin у» + 032 сов = 3 8Ш у» +

СОву» = 0.

 

 

Отсюда получим tgy? = —1/3. Поэтому

 

 

 

 

 

 

сову» =

1

 

 

вту» =

 

 

 

 

- 1

 

л/1 + tg2y>

Д О ’

 

\ /l + tg2y>

Д

о ’

 

 

 

 

 

О

о

 

 

 

 

 

 

 

 

Т32 =

 

З/ДО

1/Дб

 

 

 

 

 

 

 

 

1/л/То з/До

 

 

 

 

 

 

 

 

 

1

0

 

0

\

/

о

1/Д

-1 /Д

Тз2(Лх -

Е)

0

з/До

 

i/Д о

I

3 0

 

0

 

 

0

- 1/л/То

з/До

/

1

 

0

 

 

0

1/л/2

-

i/ Д \

=

Яъ

 

 

 

 

 

0

•До

 

о

 

 

 

 

 

0

0

 

О

 

 

 

 

 

 

Из этого равенства получаем QiZ-разложение

 

 

 

А\ — Е

=

Т22 R\ = 1Z2R\ — QiRi —

 

 

1/Д

-1 /Д

 

=

( 1

0

 

0

\

1 0

 

о

з/До

- i /Д о

 

 

0

До

 

0

 

 

V о

i/Д о

 

з/До

/

 

0

 

0

 

 

 

V о

 

В заключение цикла строим матрицу

 

 

 

 

 

 

А2 =

R\Qi + Е =

 

 

 

 

 

 

 

 

 

 

о

1

- 1

о

 

о

 

о

 

 

 

о

До

о

 

з/До

- 1/vTo

+ Е =

 

0

0

о

 

О 1/лДО

з/До

 

 

О 1/Д

-2/V5

 

1

о

о

 

 

 

 

0

3

-1

 

 

0

1 0

1 =

 

 

0

0

о

О О 1

/

1

1/л/5

-2/V 5

\

=

0

4

- 1

 

V о

0

1

)

Эта матрица уже треугольная с характеристическими числами Ai = 1, Аг = 4, Аз = 1. Эти же числа являются характеристическими числами матрицы А .

9.4.С тепенной м етод

При отыскании наибольшего по абсолютной величине собствен­ ного значения Ai матрицы А и соответствующего ему собственного вектора Х\ = (xi, •••, хп)т можно пользоваться следующим ите­ рационным методом, называемым степенны м .

В качестве нулевого приближения к искомому вектору Х\ берут

«

v-(O)

/ (0)

(°)

(0)\Т

 

произвольный вектор Х\ ' =

(х^

, х\

... , Хп у) и последовательно

строят следующие приближения:

 

 

 

= Лх£0),

х { 2) = Л2Х {0),

 

Х [к).= Л*х£0),

. (9.28)

Если эта последовательность векторов сходится при к —►оо к век­ тору X i, то он будет искомым собственным вектором, а для соот­ ветствующих координат векторов последовательности (9.28) будут выполняться соотношения

Й 2 , ; р > = А‘ <9 И »

при всех i = 1,п, при которых отношения, стоящие под знаком пре­ дела, имеют смысл.

За вектор Х\ приближенно можно принять вектор х [ к^= Акх[°^ при достаточно большом значении к или ему пропорциональный век­ тор, а за собственное значение Ai - любое из имеющих смысл отно­ шений

*(*)

___

 

 

*'=!.»»•

(9.30)

ХХ

Причем процесс приостанавливают, когда в А ^ стабилизируется до­ статочное число десятичных знаков после запятой.

Если процесс окажется несходящимся (последнее легко заметить по сильно ’’ прыгающим” значениям соотношений (9.30) при измене­

нии Л), то следует изменить начальный вектор и процесс повто­ рить.

Чтобы избежать чрезмерного роста по абсолютной величине ко­ ординат векторов А 'Х ? \ к = 1,2 , , иногда целесообразно все их координаты умножать на какие-либо числа а*. Например, удоб­

ным является деление всех координат векторов АкХ ^

на модуль

их первых координат или нормирование этих векторов.

При этом

вместо последовательности векторов (9.28) получают последователь­ ность векторов

Yi = a iАХ[°\ У2 = а2А2х{°\ У* = акАкх{°\

Для получения Ai в этом случае следует брать отношения координат векторов AYk и У*, а за вектор Х\ — вектор У*. Более подробные рекомендации об этом можно найти в книгах [3], [32]. Там же можно познакомиться с различными модификациями степенного метода и с обратным степенным методом.

Пример 1. Для матрицы

i4 =

степенным методом найти наибольшее по абсолютной величине соб­ ственное значение Ai и соответствующий ему собственный вектор

Хг.

Решение. За нулевое приближение вектора Х\ примем вектор X = = (1,1,1)т Далее построим векторы АкХ ^ при к = 1 ,1Q. Резуль­ таты приведены в следующей таблице:

 

А Х ™ ~

А2Х <? )

 

А4Х\0)

 

1

2

11

24

85

238

1

5

21

49

169

477

1

6

19

52

165

482

^ 3 ^

^ 3 ^

л8* Г

А9Х\0)

Аюх т

735

2180

6569

19674

59059

1469

4361

13137

39349

118117

1463

4368

13129

39358

118107

2 1 - 1 3 0 7

Теперь вычислим Ai по формуле (9.30) при к = 9, 10; i = 3:

А(х9) = 2,997791,

А(х10) = 3,000838.

Мы видим, что Ах9\и Ах10) мало отличаются одно от другого. По­ этому, округляя до второго десятичного знака, можно принять Ai = 3,00,

Хх~ Х х(10) = Л10Х х(0) = (59059, 118117, 118107)т

Естественно Х\ заменить ему пропорциональным вектором, на­ пример, вектором

 

А 10х (0) _ ^ 2) 2)т

 

*i = 59059

или ортом

Хх = (0,333333, 0,666666, 0,666666)т

 

1*11

При переходе, например, от А9Х х°^ к А 10АГХ°\ чтобы избежать больших по абсолютной величине координат, вместо вектора можно было взять вектор

У9 = ig^74^9* i 0) = (!. 2,0000508, 2,0005082)т

Тогда вместо A lQX ^ имели бы

AY9 = (3,0018804, 6,0037100, 6,0032018)т

и

ч(10) _

3,0018804

Al "

3,0018804.

 

1

Степенной метод можно приспособить к отысканию других соб­ ственных значений и собственных векторов матрицы. Так, для отыс­ кания собственного значения А2 и соответствующего ему собствен­ ного вектора Хъ можно комбинировать степенной метод с методом исчерпывания (см. [3], [10]), т.е. поступать следующим образом.

Найти степенным методом или из системы (АТ XiE)U = 0 соб­ ственный вектор U\ матрицы А т , принадлежащей собственному зна­ чению Ai, и положить

W ,U x Y

Так, построенный собственный вектор Х[ матрицы А т удовлетво­ ряет условию (Xi, Х[) = Х~[Х[ = X ^ X i = 1. Если матрица А сим­ метрическая, то за вектор Х[ принимают нормированный по длине вектор Х\. Далее следует составить матрицу

Аг = А - ХгХгХ?

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

Все собственные векторы Х \ 9 Хъ, ..., Х п матрицы А являются также собственными векторами матрицы А\, и наоборот. Причем со­ ответствующие собственные значения сохраняются, за исключением Ai, которому в матрице А\ соответствует нулевое собственное зна­

чение.

 

Наибольшее значение

и ему принадлежащий собственный век­

тор Vi матрицы А\ (их опять можно найти степенным методом) явля­ ются соответственно собственным значением Аг и ему принадлежа­ щим собственным вектором Хъ матрицы А. С матрицей А\ можно поступать аналогично и т.д. В итоге можно найти все собственные значения и собственные векторы матрицы А. Поясним такой подход на примере.

Пример 2. Для матрицы

найти собственные значения и собственные векторы.

Решение. Найдем степенным методом для матрицы А собственное значение Ai и ему принадлежащий собственный вектор Х\. Для этого за нулевое приближение вектора Х\ примем, например, вектор -Xj0^= = (1, 1, 1)т и построим векторы при к = 1,2, 3,4. Результаты вычислений приведены в следующей таблице:

^ p j~ ~ ^ р г

л 2х р ;

А3Х [0)

 

1

5

25

125

625

1

5

25

125

625

1

5

25

125

625

21*

Теперь по формуле (9.30) при к = 4 находим

^.’=4§н

и за вектор X i примем вектор

X !

л 4х { 0)

= (1, 1, 1)Т

625

 

 

Чтобы найти собственное значение Аг и собственный вектор X 2 матрицы А у сначала из системы (Ат —■AiE)JJ = 0 или степенным методом найдем собственный вектор U\ = (1, —1, 1)т матрицы Ат , принадлежащий собственному значению Ах = 5 и положим

х ' = Ш Ж ) = ^ - 1' 1)Т

Затем сконструируем матрицу

/

1

\

/

о

1

- 1

\

Аг = А - Хг ХхХ? = А - Ь I

1

I (1, -1,

1) = I

- 3

6

- 3

1

Для матрицы А\ степенным методом найдем собственное значение /хх и ему принадлежащий собственный вектор V\. Для этого за нуле­ вое приближение собственного вектора V\ примем, например, вектор Vi(0) = (0, 1, 1)т (брать Vx = (1,1,1)т здесь нельзя, так как получи­ лось бы А\V} = (0,0,0)т , что невозможно для дальнейшего проведе­ ния степенного метода) и построим векторы A\v[°^ при к = 1,2,3,4. Результаты вычислений приведены в следующей таблице:

V ™ -

A V ^

A2V,m

A4yW

0

0

0

0

0

1

3

9

27

81

1

3

9

27

81

По формуле (9.30) при & = 4 и г = 2 и З

находим

 

и за вектор V\ примем V\ =

A\V^ =

(0,81,81)т

Поэтому для ма­

трицы А Аг = 3, и за вектор X* можно принять вектор

Х2 = ш = (0, h 1)Т