Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Численные методы методичка 3.pdf
Скачиваний:
60
Добавлен:
02.02.2015
Размер:
754.71 Кб
Скачать

1.4.Розклад матриці на добуток ортогональної та трикутної

Будемо вважати, що матриця А приведена до майже трикутного вигляду (1). Знайдемо розкладання матриці А в добуток

A QR

(11)

де Q – ортогональна матриця, R – верхня трикутна матриця.

Визначимо матрицю е ле ме нта р ни х п о во р о т ів Гі в енса Pi , яка відрізняється від одиничної матриці чотирма елементами, що стоять на перетині i та i 1 рядків та стовпців

 

 

i

i 1

 

 

1

 

 

 

 

 

 

0

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

P

sin i

cos i

i .

i

 

 

 

 

 

cos i

sin i

 

 

i 1

 

 

 

1

 

 

 

0

 

 

 

 

 

 

 

 

1

 

 

 

 

 

Часто матриці поворотів Гівенса записують скорочено

 

 

sin i

P

 

i

 

cos i

 

 

cos

 

s

c

sin

i

 

i

i .

 

 

c

s

 

i

 

i

i

Можна перевірити, що Pi , i 1, n 1, є ортогональними матрицями. Виконуючи множення матриці А вигляду (1) на матрицю P1 , одер-

жимо:

 

 

sin

cos

 

 

a

a

 

a

a

 

 

 

 

1

1

0

 

 

11

12

 

 

1,n 1

 

1n

 

 

 

 

cos

sin

 

a

21

a

22

a

2,n 1

a

2n

 

 

 

1

1

 

 

 

 

 

 

 

 

 

A P A

 

 

1

 

 

 

 

 

 

 

 

 

1 1

 

0

 

 

 

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

an 1,n

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

ann

 

16

 

 

a s a c

 

a s a c

 

a s a c

 

 

 

a s a

c

 

 

 

11 1

 

21 1

12 1

22 1

13 1

 

 

 

 

23 1

 

 

 

 

 

1n 1

 

2n 1

 

 

a11c1 a21s1

 

a12c1 a22s1

a13c1 a23s1

a1nc1 a2ns1

 

 

 

 

 

 

 

 

 

 

 

 

a

 

 

 

 

 

a

 

.

 

 

 

0

 

 

 

 

 

 

 

 

32

 

 

 

 

 

 

 

 

 

3n

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

an 1,n

ann

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Виберемо кут

 

1 таким, щоб піддіагональний елемент у першому

стовпці став дорівнювати нулю, тобто

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

a11 cos 1 a21sin 1

0 .

 

 

 

 

 

 

 

 

Звідси

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

a

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

arctg

11

 

.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

a21

 

 

 

 

 

 

 

 

 

 

 

 

Замість розрахунку кута повороту 1 можна безпосередньо обчисли-

ти параметри c1 і s1

 

за формулами

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

t tg

a11

;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

1

 

a21

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

c1

1

 

 

 

;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1 t

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

s1 t1c1.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Якщо елемент

 

a21

 

, де ε – деяке суттєво мале порогове значення,

 

 

 

то можна вважати, що c 0

і s 1 , тобто

P E .

 

 

 

 

 

 

 

 

 

 

 

 

1

1

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

Другий проміжний крок виконують аналогічно. Матрицю A2 P2 A1

отримають з попередньої A1

за допомогою матриці поворотів

P2 , яка від-

різняється від матриці P тим, що матриця

 

s

 

c

 

 

зсувається на одну

 

 

2

s

2

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

c

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

2

 

 

 

 

 

позицію вздовж діагоналі, а кут повороту 2

підбирають так,

щоб у мат-

риці

A

занулити елемент a

2 .

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

 

 

32

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Таким чином, у результаті множення матриці А на матриці поворотів

P , P , , P

 

і відповідного вибору кутів поворотів

 

 

i

всі піддіагональні

1

2

n 1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

17

елементи матриці А можна перетворити на нулі. В загальному випадку параметри ci та si на i-му проміжному кроці ( i 1, 2, , n 1) обчислюють за формулами

 

ti tgi

a i 1

;

 

ii

 

 

 

 

 

 

 

 

 

 

 

 

 

a i 1

 

 

 

 

 

 

 

i 1i

 

 

ci

1

 

;

si tici ,

 

 

 

 

 

 

 

 

 

1 t 2

 

 

 

 

 

 

 

 

 

i

 

 

 

 

де a 0 a .

 

 

 

 

 

 

ij

ij

 

 

 

 

 

 

В результаті проведення процесу перетворень Гівенса отримаємо

верхню трикутну матрицю R

 

 

 

 

 

 

P

P

P A R .

(12)

n 1

n 2

 

1

 

З (12) маємо

 

 

 

 

 

A QR ,

 

де

 

 

 

 

Q PT PT

PT ,

 

 

1

2

n

 

тобто отримали (11). При цьому матриця Q буде ортогональною як добуток ортогональних матриць.

При реалізації QR-розкладу на ЕОМ можна використовувати так звану ко мп а кт ну схе му збе р іга н ня , що передбачає зберігання матриці R на місці верхньої частини матриці А, а замість матриці Q – тільки інформації, що задає перетворення Гівенса, яка записується замість елементів, що занулюються. Оскільки на кожному кроці занулюється тільки один елемент, для зберігання інформації про параметри достатньо одного машинного слова. Воно використовується наступним чином: якщо si ci ,

то в пам'ять замість елемента матриці a i 1

i-му кроці записується число

 

 

i 1i

 

sign si

 

 

s sign c , у протилежному випадку – число

 

, де функція sign x

 

 

i

i

 

 

ci

 

 

 

 

 

 

 

 

 

 

1, при x 0

 

 

показує знак змінної x, тобто

sign x

 

 

 

. Позначимо пара-

 

 

1, при x

0

 

 

 

 

 

 

 

 

метр, що зберігається, через pi . Тоді числа ci та si

можуть бути віднов-

18

лені наступним чином. Якщо

 

p

 

1 ,

то

s

p

,

c

1 s2 , у протилеж-

 

 

 

 

 

 

 

 

 

i

 

 

 

 

i

i

 

i

i

 

1

 

 

 

 

ному випадку c

,

s

1 c2 . В деяких випадках замість вихідної

 

i

pi

 

i

 

 

 

i

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

пари ci , si може бути відновлено пару ci , si

, що є еквівалентною для

обчислювального процесу.

 

 

 

 

 

 

 

 

 

 

 

Загальна кількість арифметичних операції для реалізації QR-розкладу

при використанні компактної схеми зберігання при

n становить ве-

 

4

 

 

3

 

 

 

 

 

 

 

 

 

 

 

 

личину порядку O

 

n

 

.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

5

 

4

 

3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Приклад 3.

Для матриці

 

A

4

 

5

2

з прикладу 1, приве-

 

 

 

 

 

 

 

 

 

 

 

3

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

деної до форми Хессенберга, знайти її QR-розклад.

Р о з в ' я з а н н я . Майже трикутна форма матриці така

 

 

 

 

 

 

 

 

 

 

 

5

 

 

 

 

5

 

 

 

 

 

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

A

5

 

 

 

 

5,48

 

 

1,36 .

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

 

 

1,36

0,52

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Побудуємо матрицю поворотів

 

P

так,

 

щоб занулити на першому кроці

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

елемент a21 матриці А. Для цього обчислимо параметри

 

 

 

 

 

 

 

 

 

 

 

 

 

t

 

 

a11

 

 

 

5

1;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

a21

 

5

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

c

 

 

1

 

 

 

 

 

 

1

 

 

s .

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

1 t12

 

2

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

1

1

0

 

P

 

 

1

 

 

 

 

1

 

 

 

 

 

 

 

1

 

 

 

1 1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

 

 

 

 

 

 

 

0

 

.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

2

 

 

 

 

2

 

 

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

0

2

 

 

 

 

 

0

 

 

 

 

 

 

0

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

19

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

1

 

 

 

 

 

0 5

 

 

 

 

5

 

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

A1 P1 A

 

 

 

 

 

 

1

 

 

1

 

 

 

 

 

0 5

 

 

 

 

5,48

 

1,36

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

 

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1,36 0,52

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2 0

 

 

 

 

 

 

 

 

 

 

 

10

 

10,48

 

 

 

 

 

 

 

 

1,36

 

 

7,071 7,41

0,962

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

 

0,48

 

 

 

 

 

 

 

 

1,36

 

 

 

 

 

0

 

 

 

 

 

0,339

 

0,962 .

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1,36

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1,36

 

 

 

 

 

 

 

 

 

 

 

2

 

 

0,52 2

 

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0,52

 

 

Побудуємо матрицю поворотів P2 , зануливши елемент a32

матриці A1 .

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

a 1

 

 

 

 

 

 

 

 

 

 

0,48

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

t

 

 

 

 

 

 

22

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

;

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

a321

 

 

 

 

 

 

 

1,36

4

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

c

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

4

 

 

 

;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

 

 

17

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

4

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

s

 

t

 

c

 

1

 

 

4

 

 

 

 

 

 

1

 

.

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

2

 

 

 

 

 

 

4

 

 

17

 

 

 

 

 

 

 

 

17

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

 

 

 

 

 

 

 

 

 

1

 

 

 

0

 

 

 

 

 

 

 

 

 

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

17

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

4

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

P

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

 

 

1

4 .

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

 

 

 

 

17

 

 

 

 

 

17

 

 

 

 

 

 

 

 

 

 

17

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

 

 

4

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

4

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

17

 

 

 

17

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Обчислимо верхнє трикутну матрицю

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

7,071

 

 

0,962

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

17

 

 

 

0

 

 

 

 

 

0

 

7,41

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

R A

 

P A

 

 

 

 

 

 

0

 

 

 

1

 

4

 

 

 

 

 

 

0

 

 

 

 

0,339

 

0,962

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

2

1

17

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

 

 

4

 

 

 

 

 

 

 

 

 

 

 

 

0

 

 

 

 

 

1,36

 

0,52

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

7,071

7,41

 

 

 

0,962

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

 

 

1,402

 

0,737

 

.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

 

 

 

 

0

 

 

 

 

0,807

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Обчислимо ортогональну матрицю

20

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

17

0

0

 

 

 

 

 

 

 

 

 

 

1

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Q PT PT

 

 

 

 

 

 

 

 

 

 

 

1 1

 

 

0

 

0

1

4

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

 

17

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

0

0

 

 

2

0

4

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0,707

 

 

 

0,686

 

 

 

 

 

 

 

17

 

 

 

1

 

 

 

4

 

 

0,171

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

17

 

 

 

1

 

 

4

 

 

 

0,707

0,171

0,686 .

 

 

2

 

17

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0,242

 

 

 

 

 

0

 

 

 

 

4 2

 

 

2

 

 

0

 

0,97

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1.5.QR-алгоритм визначення власних значень

Нехай матриця А приведена до майже трикутного вигляду (1). Якби піддіагональ в (1) мала властивість

a*

a*

 

 

 

 

0,

i 2, n 1,

i,i 1 i 1,i

 

 

 

 

тобто в матриці А були б відсутні сусідні ненульові піддіагональні елементи, то матриця А мала б блочно-трикутну форму

A*

A*

 

A*

 

 

11

12

 

1n

 

 

 

A*

 

A*

(13)

A*

0

22

 

2n

 

 

 

 

 

 

 

 

*

 

 

 

 

 

Ann

 

Тут Aii* – квадратні блоки 1-го або 2-го порядку, причому блоки другого порядку відповідають ненульовим елементам піддіагоналі.

У зв’язку з тим, що матриці А и A* мають однакові власні значення, то блоки Aii* 1-го порядку – це власні значення матриці А. Власні значення блоків Aii* 2-го порядку будуть також власними значеннями матриці А, але

серед них є комплексні числа.

Таким чином, приведення матриці А до форми (13) повністю вирішує проблему власних значень. Власні вектори після приведення до форми (13) також легко визначаються.

Однак для матриці А, загалом кажучи, не існує кінцевого обчислювального процесу над її елементами, що приводить А до форми (13).

QR-алгоритм дає послідовність матриць A k майже трикутного вигляду (1) таких, що

21

lim a k

a k

0 .

k

i,i 1 i 1,i

 

 

 

 

Коли збіжні до нуля піддіагональні елементи матриць Aii* будуть мати величину менше заданої точності, QR-алгоритм завершується.

 

Кожний кр о к QR - а л го р и тму складається в переході від матриці

A k

до матриці A k 1 ,

k 0, 1, , де A 0 A за наступним п р а ви ло м .

 

1. Матриця

A k

розкладається на добуток ортогональної й трикут-

ної матриць за схемою (12):

 

 

 

 

A k Q k R k

(14)

 

2. Матриця

A k 1 визначається перестановкою

співмножників у

(14):

 

 

 

 

A k 1 R k Q k , k 0,1, 2, .

З (14) визначимо

R k Q k 1 A k Q k T A k .

Отже,

A k 1 Q k 1 A k Q k

або

A k 1 Q k 1 Q 0 1 A Q 0 Q k .

Позначимо через P k Q 0 Q k . Тоді QR-алгоритм можна записати у формі

1

T

(15)

A k 1 P k

AP k P k AP k

Це співвідношення показує, що

власні значення матриць A k

і А

збігаються.

 

 

Співвідношення (14) і (15) дозволяють одержати наслідок з

QR -

а л го р и т му . Розглянемо добуток правих трикутних матриць

 

R k R k 1 R 0 U k .

22

Маємо

P k U k

P k 1 Q k R k U k 1 P k 1 R k 1 Q k 1 U k 1

P k 1

P k 1 1 AP k 1 U k 1 A P k 1 U k 1 Ak .

 

 

 

 

Тобто для будь-якого проміжного кроку k матриці P k і U k є ортогональними й правими трикутними співмножниками у відповідних степенях матриці А.

Кожний крок QR-алгоритму, якщо матриця попередньо приведена до форми (1), вимагає 6n2 арифметичних операцій. При цьому верхня форма Хессенберга зберігається QR-ітерацією. Спочатку отримають майже трикутну матрицю Q k , множення якої ліворуч на верхню трикутну матрицю R k не змінює форму матриці A k 1 R k Q k .

Сформулюємо т в е р д ж е н н я п р о зб і жн іс ть Q R - а л го р и т му .

Нехай матриця А – невироджена, має різні власні значення i , i 1, n ,

модулі яких i , за винятком комплексно-спряжених, також різні й упо-

рядковані в порядку незростання. Тоді при k

a k a k O i 1

i,i 1 i 1,i

i 1

, i 2, n 1.

5

4

3

 

 

 

 

 

 

Приклад 4. Для матриці A

4

5

2 з прикладу 1, попе-

 

3

2

1

 

 

 

редньо приведеної до форми Хессенберга, виконати дві ітерації QRалгоритму для пошуку власних значень.

Ро з в ' я за н ня . Майже трикутна форма матриці буде наступною (див. приклад 2)

5

5

0

 

 

 

 

 

 

A* 5

5,48

1,36

.

 

0

1,36

0,52

 

 

 

23

Власні значення матриць А і A*

як ортогонально подібних співпадають і

становлять величини 1 10,345 ,

2

1,266 , 3 0,611 .

 

 

На першому кроці виконується розклад матриці на добуток ортогона-

льної і верхньої трикутної

A* A 0

Q 0 R 0 ,

який був отриманий попе-

редньо в прикладі 3:

 

 

 

 

 

 

 

 

 

 

 

 

 

0,707

 

0,171

0,686

 

7,071

7,41

0,962

Q 0 0,707

0,171

0,686

 

і R 0

0

 

1,402

0,737

.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

0,97

0,242

 

 

 

0

 

0

 

0,807

 

 

 

 

 

 

 

 

 

Матриця

A 1 обчислюється за допомогою перестановки співмнож-

ників у QR-розкладі.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

10,24

0,991

 

0

 

 

 

 

A 1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

R 0 Q 0 0,991

0,955

0,783 .

 

 

 

 

 

 

 

 

 

0

0,783

0,195

 

 

 

 

 

 

 

 

 

 

 

 

 

Продовжуючи обчислювальний процес, виконаємо QR-розклад мат-

риці A 1 . В результаті отримаємо

 

 

 

 

 

 

 

 

 

 

 

0,995

 

0,071

0,065

 

10,288

1,079

0,075

Q 1 0,096

 

0,734

0,672

 

і R 1

0

 

1,16

0,443

.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

0,675

0,738

 

 

 

0

 

0

0,67

 

 

 

 

 

 

 

 

 

 

 

 

10,344

0,112

 

0

 

 

 

 

A 1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

R 1 Q 1 0,112

1,151

 

0,453 .

 

 

 

 

 

 

 

 

 

0

 

0,453

0,495

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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

1.6.Прискорення збіжності QR-алгоритму

У зв’язку з тим, що швидкість збіжності QR-алгоритму визначається часткою власних значень, для прискорення збіжності застосуємо зсуви. Тоді Q R - а лго р и тм з і зс у ва ми полягає в наступному.

Для заданої матриці А покласти k 0 і виконати:

24

A k 1

1. Вибрати величину зсуву sk поблизу деякого власного значення

матриці А.

2. Обчислити за схемою (11) QR-розклад для матриці:

 

 

 

A k s E Q k R k

 

 

 

 

 

 

k

 

 

3.

Визначити матрицю A k 1 :

 

 

 

 

A k 1 R k Q k s E .

 

 

 

 

 

 

k

 

 

4.

Якщо

збіжність до власних значень не

досягнута, покласти

k k 1 і перейти до п.1.

 

 

 

 

Матриці

A k і A k 1 в QR-алгоритмі зі зсуву будуть ортогонально

подібними:

 

 

 

 

 

 

A k 1 R k Q k s

E Q k T Q k R k Q k s

k

Q k T Q k

 

 

k

 

 

 

 

Q k T Q k R k s

E Q k Q k T A k Q k .

 

 

 

 

 

k

 

 

 

Якщо матриця R k невироджена, то аналогічно можна записати:

kE R k Q k R k R k 1 sk R k R k 1

R k Q k R k sk E R k 1 R k A k R k 1.

Тв е р д ж е н н я : Якщо sk – точне власне значення матриці A k , тоді QR-ітерація зійдеться за один крок.

До в е д е н н я . Якщо sk є власним значенням матриці A k , то матриця

A k s E

– вироджена. Тому виродженою буде матриця

R k , отже,

k

 

 

якийсь із її діагональних елементів дорівнює нулю. Нехай це буде елемент

r k 0 . Тоді останній рядок матриці

R k Q k буде нульовим, а останній

nn

 

 

 

 

 

рядок матриці

A k 1 R k Q k s E

збіжиться з s

eT , де

eT

– останній

 

k

 

k n

n

 

стовпець одиничної матриці порядку n. Інакше кажучи, останній рядок в

– нульовий за винятком того, що в позиції (n, n) знаходиться власне значення sk . Це означає, що алгоритм зійшовся: матриця A k 1 має блоч- но-трикутний вигляд, у нижньому діагональному блоці розміру 1 1 знаходиться число sk . Провідна головна підматриця A' порядку n 1 визна-

25

чає нову меншу спектральну задачу, що може бути вирішена QR-ітерацією без будь-якої зміни власного значення sk :

A'

a

A k 1

 

.

 

0

 

 

sk

Якщо sk не є точним власним значенням, то елемент annk 1 уважа-

ється тим, що збігся, якщо лівий нижній блок A k 1 достатньо малий. Оскільки матриця A k 1 отримана із матриці А перетворенням ортогональної подібності, матриця A k 1 містить у собі похибки заокруглень порядку O A . Таким чином, будь-який піддіагональний елемент в A k 1

за абсолютною величиною менший, ніж O A , міг бути нулем, тому його можна замінити на нуль. Тобто для ank, j 1 A, j 1, n 1 можна

покласти anjk 1 0 .

Вибір величини зсуву sk поблизу дійсного власного значення забез-

печує к ва др а ти ч ну з бі ж ніс ть , яка означає, що на кожному кроці число вірних розрядів наближення подвоюється.

1.7.Практична організація обчислень в QR-алгоритмі

Нехай потрібно визначити всі власні значення матриці А порядку n з точністю ε.

Для виконання цього завдання спочатку матриця приводиться до верхньої форми Хессенберга (1), тому що для довільних матриць QR-ітерація звичайно не застосовується. Це знижує кількість арифметичних операцій

одного кроку QR-ітерації з величини порядку O n3 до O n2 , а загальну вартість QR-ітерації для знаходження всіх власних значень – з O n4 до

O n3 . Якщо А – симетрична матриця, то одна буде приведена до тридіа-

гональної форми (2). В результаті кількість арифметичних операцій для одного кроку QR-алгоритму, застосованого до симетричної матриці, знижується до величини O n .

Після приведення матриці до форми Хессенберга до матриці А застосовується QR-ітерація зі зсувами. На кроці k за зсув вибирається елемент

26

a k , тобто

s

a k . Оскільки

a k

n

,

то

s

k

 

є наближенням до

n

 

і

nn

k

nn

nn

 

 

 

 

 

 

 

 

 

 

 

 

швидкість збіжності до нуля елемента ank,n 1

буде високою. Як тільки на

деякому кроці k виконується умова

 

a k 1

 

 

 

 

 

, за власне значення

 

 

 

 

 

A

 

 

 

 

 

 

 

n,n 1

 

 

 

 

 

 

 

 

 

 

n

приймають елемент a k , тобто вважають, що

 

 

n

a k , і далі алгоритм

 

 

nn

 

 

 

 

 

 

 

 

 

 

nn

 

 

 

застосовують до підматриці A'

порядку

 

 

n 1

 

A' a k , i, j 1, n 1

.

 

За

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ij

 

 

 

таким алгоритмом знаходять власні значення доти, поки матриця A'

не

буде мати розмір 22. Для цієї матриці власні значення визначаються як розв’язок квадратного рівняння:

 

a11

a12

 

a11

a22

a12a21

0,

 

 

 

 

a21

a22

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

a11 a22 a11 a22 2 4a12a21 .

 

1,2

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Якщо матриця має комплексні власні значення, то вибір в якості зсуву sk комплексного числа приводить до подальшої комплексної арифме-

тики. Для дійсної матриці це означає збільшення загальної кількості арифметичних операцій приблизно в 4 рази. Щоб уникнути цього використають факт, що комплексні власні значення дійсних матриць зустрічаються

спряженими парами. Тому зсуви на sk

і sk можна проводити спільно за

наступною схемою, що називають н еяв ни м QR - а л г о р и тмо м з п о -

двій ни м и зсу ва ми :

 

A k s E Q k R k ,

k

 

A k 1 R k Q k s E, так що

A k 1 Q k T A k Q k ,

k

 

A k 1 sk E Q k 1 R k 1 , A k 2 R k 1 Q k 1 sk E,

так що A k 2 Q k 1 T A k 1 Q k 1 Q k 1 T Q k T A k Q k Q k 1 .

Добуток Q k Q k 1 буде дійсним, отже, буде дійсною й матриця

A k 2 . Це дозволяє проводити весь ітераційний процес у дійсній арифметиці, розглядаючи тільки дійсну частину зсуву sk – Re sk і його модуль,

27