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

операцій. Обчислення

власних

значень

матриці

D zzT обійдеться в

O n2 арифметичних операцій.

Така ж кількість операцій необхідна і для

обчислення власних

векторів

матриці

D zzT .

Обчислення матриці

Q1 Q

0

0

 

Q обійдеться в c

n3

операцій. Таким чином,

 

 

 

 

Q2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

n

 

O n

2

O n

2

cn

3

 

 

 

 

t n 2t

 

 

 

 

 

.

(18)

 

 

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

 

 

Якщо матриці Q1, Q2 , Q є щільними і використовується стандартний

алгоритм матричного множення, то в формулі (18) константа c 1. Таким чином, саме операція множення є найбільш трудомісткою в алгоритмі.

Тому, ігноруючи в (18) члени порядка n2 , отримаємо

n

 

 

3

 

t n 2t

 

 

cn

 

.

 

 

 

2

 

 

 

 

Розв’язуючи це різницеве рівняння, знайдемо, що

t n c 43 n3 .

На практиці c 1 у зв’язку з тим, що матриця Q має багато нульо-

вих елементів, а для різних типів матриць від 15 до 85 % її стовпів складають стовпці одиничної матриці. Завдяки цьому факту вдається скоротити час матричного множення.

1.7.Метод Ланцоша

Метод Ланцоша розроблено в 1950 р. Спочатку його розглядали як спосіб зведення симетричної матриці А до тридіагональної матриці Т. Основою алгоритму є тричленне рекурентне співвідношення

 

 

 

 

 

 

q j 1bj

Aq j q j a j q j 1bj 1,

j 1, n,

(19)

q0 0,

 

 

 

 

 

 

 

 

 

яке отримують з матричної рівності

QnTn AQn ,

40

де Qn q1, q2 , , qn

– ортогональна матриця, складена з векторів-

 

 

 

 

стовпців q j , j 1, n ; Tn

– тридіагональна матриця вигляду (12).

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

то bj 0, j 1, n 1.

Якщо Tn – нерозкладна матриця, то, не обмежуючи загальних міркувань, можна вважати, що bj 0 . Тоді на базі співвідношення (19) можна записати такий а лго р и тм п о будо ви ма тр и ц і Tn за м а тр и ц ею А .

Алгоритм 8. Для заданих симетричної матриці А порядку n, початкового вектора q1 такого, що q1 2 1, для всіх j 1, 2, , n обчистити:

1.u j Aq j ;

2.a j q j , Aq j ;

3.q0 0 , rj u j q j a j q j 1bj 1 ;

4.bj rj 2 ;

5. q j 1 rj . b j

Після n кроків у точній арифметиці отримаємо тридіагональну матрицю Tn , ортогонально подібну до вихідної матриці А, і отже, задача ви-

значення власних значень матриці А звелася до задачі знаходження власних значень для тридіагональної матриці.

Припинення (зрив) процесу може відбутися, якщо bj 0 . Це ста-

неться тоді, коли вектор q1 ортогональний принаймні до одного власного вектора матриці А. Тоді за вектор q j 1 можна взяти довільний одиничний

вектор, ортогональний до попередніх векторів q, і продовжити ітераційний процес.

Під час реалізації алгоритму 8 на ЕОМ для матриць А великої розмірності строга ортогональність векторів q j , зазвичай, зникає. Це пов’язано

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

41

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

Пізніше почали використовувати так званий зр і за н и й ва р іа н т мето ду Ла нц о ша як алгоритм визначення декількох крайніх власних значень великих матриць. У ньому власні значення зрізаної тридіагональної матриці Tj j n будуть наближати шукані власні значення вихідної

матриці. Як і в будь-якому ітераційному методі, постає запитання про закінчення ітерацій, тобто на якому j треба зупинитися. Для відповіді на це запитання треба мати на увазі, що метод Ланцоша в цьому випадку є реалізацією процедури Релея–Рітца для послідовності підпросторів Крилова, завдяки чому є змога контролювати на кожному кроці точність шуканих власних значень. Для реалізації цієї процедури п р о до вжи мо п р о ц е с ,

що за да но а л го р и тмо м 8 :

6.

Для кожного j 1, 2, , n розв’яжемо задачу на власні значення:

 

T

z j j z j .

 

j

 

 

7.

Обчислимо

 

 

 

y j Q

z j ,

 

 

j

 

де Qj q1, q2 , , q j . При цьому обчислюють тільки потрібні компоненти

i , zi , yi .

Пару i j , yi j називають а п р о кс и мува ль но ю п а р о ю Р е лея –

Рітц а для власної пари i , xi вихідної матриці А;

8. Якщо точність шуканих векторів задовільна, то процес завершується. Точність контролюють за допомогою оцінки

 

 

 

 

 

 

 

 

Ay y

 

 

 

2

.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

y

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Якщо в процесі обчислень отримано, що bj 0 , то це означає, що

AQj QjTj , і обчислення завершують. У разі відшукання декількох влас-

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

ним значенням i вихідної матриці А.

42

1.8.Сингулярний розклад матриць

Сингулярному розкладу матриць (singular value decomposition, SVD-

розклад) більше ста років. Його незалежно відкрили Белтрамі в 1873 р. і Жордан в 1874 р. для випадку квадратних матриць. В 30-ті роки XX століття Еккарт та Янг поширили цей розклад на випадок прямокутних матриць. Однак як обчислювальний засіб його стали використати набагато пізніше, в 60-ті роки. Це пов’язано з тим, що обчислення SVD вимагає застосування ряду достатньо тонких чисельних методів. Практичне використання SVD стало можливо в першу чергу завдяки Дж. Голубу, що в серії робіт продемонстрував його корисність і застосовність у багатьох областях.

Якщо А – довільна m n -матриця, при чому m n . Тоді буде справе-

дливе її представлення у вигляді:

 

A U V T ,

(20)

де матриця U має розмір m n і задовольняє співвідношенню U T U E ;

V – квадратна матриця порядку

n, що задовольняє співвідношенню

V T V E ; diag , ,

n

, де

 

 

n

0 .

1

 

1

 

 

Стовпці u1, ,un

матриці U називаються л і в и м и си н гу ляр ни м и

век то р а ми ма тр и ц і А. Стовпці v1, , vn

матриці V називаються п р а -

ви ми си нг уляр ни ми

век то р а ми . Величини i називаються си н гу -

ляр ни ми чи сла ми ма тр и ц і .

Найменше сингулярне число n дорівнює відстані в 2-нормі від мат-

риці А до найближчої виродженої матриці. Кількість ненульових сингулярних чисел дорівнює рангу матриці. Отже, якщо матриця А вироджена, то

принаймні n 0 .

На практиці сингулярні числа рідко в точності дорівнюють нулю, однак, якщо матриця А «близька до виродженої», деякі із сингулярних чисел будуть малими. Відношення 1 n можна розглядати як число зумовленості матриці А для задачі розв’язання системи лінійних рівнянь.

При m n необхідно розглядати SVD матриці AT .

Розглянемо г ео ме тр и ч н у ін тер п р е та ц ію ви щеска за но го

твер д же ння . Будемо розглядати

m n -матрицю А як лінійний опера-

тор, який відображає вектор x Rn

y вектор y Ax Rm . Тоді можна

43

обрати ортогональну координатну систему для Rn , де ортами осей є стов-

пці матриці V, і другу ортогональну координатну систему для Rm (із стовпцями матриці U в якості ортів осей) таким чином, щоб A набула діаго-

n

нального вигляду Σ, тобто вектор x ivi відобразився б у вектор

i 1

n

y Ax i i ui .

i 1

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

Розглянемо найбільш важливі з а л гебр а їч ни х та гео метр и ч ни х вла сти во ст ей S V D .

1. Нехай А – симетрична матриця з власними значеннями i і орто-

нормованими власними векторами u

i

. Іншими словами,

A U V T є

спектральним розкладом матриці А, де diag(1, , n ) ,

U u1, ,un

і U U T E . Тоді SVD-розклад матриці А має вигляд

 

 

 

A U V T ,

 

 

 

 

де і

і

і vi sgn(i ) ui , причому sgn(0) 1.

 

2. Власними значеннями симетричної матриці AT A

є числа i2 .

Праві сингулярні вектори vi є відповідними ортонормованими власними векторами.

3. Власними значеннями симетричної матриці AAT

є числа 2 і

 

 

i

m n нулів. Ліві сингулярні вектори ui

є відповідними ортонормованими

власними векторами, які відповідають

власним числам

2 . Додаткові

 

 

i

m n ортогональних векторів можна взяти в якості власних векторів для

власного значення, що дорівнює нулю.

 

 

0

AT

, де А − квадратна матриця,

4. Нехай H

 

 

 

 

 

0

 

 

A

 

 

що має SVD вигляду (20). Покладемо diag(1, , n ) , U u1, ,un і

V v1, , vn . Тоді 2n власних значень матриці Н

44

це

 

числа

 

i ,

 

а

відповідні нормовані

власні

вектори мають

вигляд

1

 

 

 

 

vi

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

ui

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

5.

Якщо А − матриця повного

 

рангу,

то

розв’язком

задачі

min

 

 

 

 

 

2

є вектор x V 1 U T b .

 

 

 

 

 

 

 

 

Ax b

 

 

 

 

 

 

 

 

 

 

x

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

6.

 

A

 

 

2

1

 

 

 

 

. Якщо А − квадратна й невироджена мат-

 

 

 

 

 

 

 

 

 

 

 

 

 

риця,

 

 

 

 

 

 

 

 

 

 

то

 

 

 

A 1

 

 

 

1

n

 

 

 

 

 

і

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

A

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

A 1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

 

 

 

n

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

7.

Припустимо,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

що

1 r r 1 0

 

 

 

 

 

 

 

 

 

 

То-

ді ранг матриці А

дорівнює r.

 

 

 

 

 

 

U u1, ,un ,

 

 

 

 

 

 

 

 

8.

Нехай

матриці

V v1, , vn

 

і

такі що

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

n

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

A U V T

 

i ui

viT

 

(сума матриць рангу 1). Тоді найближчою до

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

i 1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

матриці

 

A

 

 

 

в

значенні

2-норми

 

 

матрицею

рангу

k n

є матриця

 

 

 

 

 

 

 

 

k

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Ak

 

i ui viT ,

причому

 

A Ak

 

 

2 k 1 . Для матриці Ak справедливе

 

 

 

 

 

 

 

 

 

 

 

 

i 1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

також представлення у вигляді

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

A U

k

V T ,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

k

 

 

 

 

 

 

 

 

 

 

де k diag(1, , k, 0, ,0) .

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Використовуючи властивості 2 і 3, можна обчислити SVD матриці

шляхом визначення власних значень і власних векторів матриць

AT A і

AAT .

45

Приклад 8. Знайдемо сингулярні числа, праві та ліві сингулярні ве-

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

1

2

0

 

A

 

 

 

.

 

 

2

0

2

 

 

 

 

Р о з в ' я з а н н я .

Матриця AT A має розмір 3 3, а матриця AAT

22. Тому для розрахунків будемо використовувати матрицю AAT .

 

5

2

 

 

AAT

 

.

 

 

8

 

 

2

 

Побудуємо її характеристичний поліном:

5 8 4 2 13 36 0 .

Звідси власними значеннями матриці AAT будуть числа 1 9 і 2 4 . Сингулярні числа матриці А, отже, будуть 1 3 і 2 2 .

Ліві сингулярні вектори матриці А є власними векторами матриці AAT . Для їх отримання розглянемо системи лінійних рівнянь

1E AAT u 0;2 E AAT u 0.

Отже, вектор, пропорційний вектору 1, 2 T , є власним вектором матриці

AAT , що відповідає власному значенню 1 . Вектор, пропорційний вектору 2, 1 T , є власним вектором матриці AAT , що відповідає власному значенню 2 . Нормуємо отримані вектори. В результаті отримаємо, що

 

1

 

 

1

 

 

 

 

 

1

 

 

2

u

 

 

 

 

 

 

,

u

2

 

 

 

 

 

.

 

 

 

 

 

 

 

 

 

 

 

 

 

1

5

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

5

1

Таким чином, вектори u1, u2 є лівими сингулярними векторами матриці А. Не важко бачити, що вони є ортогональними.

Тепер можна визначити праві сингулярні вектори v1, v2 , v3 , обчис-

люючи власні вектори матриці AT A . Але вектори v1, v2 можна легко визначити за формулою

v 1ATu , i 1, 2 .

i i

i

46

Отже,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

5

 

 

 

 

 

 

 

0

 

 

 

v1

1

 

 

 

 

 

 

v2

 

1

 

 

 

 

 

 

 

 

 

 

2 ,

 

 

 

 

2

.

 

 

 

 

 

 

 

 

 

 

 

 

3

5

 

 

4

 

 

 

 

 

5

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Отримані вектори є ортонормованими. Третій вектор

v3

повинен

задовольняти умові Av3 0 .

 

Розв’язуючи

 

це

рівняння

та

нормуючи

отриманий розв’язок, маємо

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

v3

 

 

1 .

 

 

 

 

 

 

 

 

3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

Тепер, коли знайдено сингулярні числа і сингулярні вектори, можна легко побудувати SVD матриці А в вигляді (20), при цьому U R2 2 , V R3 3 , а R2 3 – діагональна матриця. Отже,

 

U u , u

 

 

 

 

 

1

 

 

1

2

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

 

,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

5 2

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

5

0

5

V v , v

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

2

, v

3

 

 

 

2

6

 

5 ,

 

 

 

 

 

 

 

1

 

 

 

 

3

5

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

4

3

2

5

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

0

 

3

0

0

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

.

 

 

 

 

 

 

 

0 2

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0 2

0

 

 

 

 

 

 

Легко перевірити, що A U V T .

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Обчислення SVD шляхом розв’язання задачі на власні значення для

матриць AT A або AAT

є продуктивним методом для великих та важних

практичних задач, оскільки

 

розроблено

ефективні

чисельні методи

розв’язання симетричної задачі на власні значення. Однак у цього підходу є серйозні н е д о л і к и : якщо матриця А має досить малі, але відмінні від нуля сингулярні числа, то їх знаходження може виявитися неточним. Це пов’язано з обчислювальними похибками, що виникають при переході до

квадратної матриці AT A . Тому у за га л ьн ени й а лго р и тм р о зр а х у н ку

47