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

Зміни

знаків

у

послідовності нема,

тобто n 1,563 0 ,

n 1,563 3 3 , всі

власні значення лежать на

осі праворуч від точ-

ки 1,563. Отже, власне значення 3 1,563, 1,875 . Покладемо

a5 c4 та

перевіримо

виконання

умови збіжності

ітераційного

процесу

b5 a5 0,313 . Тобто умову збіжності виконано, тому приймемо приблизно, що

 

3

 

a5 b5

 

1,563 1,875

1,719 .

 

 

 

2

2

 

 

 

 

Отже, як і в попередніх прикладах отримана величина 3 1,719 відрізняється від точного власного значення 3 1,586 менше, ніж на задану точність 0,5 .

1.6.Метод «поділяй та пануй»

Метод «поділяй та пануй», запропонований Каппененом у 1981 р. – це найшвидший метод обчислення всіх власних значень і власних векторів симетричної тридіагональної матриці порядку n 25 . В найгіршому ви-

падку він вимагає O n3 арифметичних операцій; на великій виборці ви-

падкових тестових матриць у середньому затрачається тільки O n2.3 опе-

рацій, а для деяких спеціальних розподілів власних значень – O n2 опе-

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

В методі «поділяй та пануй» використовується розклад Шура для симетричної тридіагональної матриці Т вигляду (12):

QTTQ diag ,

, ,

,

(15)

1 2

n

 

 

де Q – ортогональна матриця.

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

35

Розглянемо принцип розділення вихідної матриці А вигляду (12) на дві матриці вдвічі меншого розміру. Для простоти будимо вважати, що n 2m . Визначимо вектор v розміру n

 

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

 

 

 

 

 

 

 

e m

v

 

1

 

 

 

 

 

 

m

.

 

 

e m

 

 

 

 

 

1

 

 

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

 

 

 

 

 

 

 

 

 

~

T vvT співпадають

При цьому за будь-яких R елементи матриці T

з елементами матриці Т, крім чотирьох середніх елементів, що стоять у

позиціях m, m , m 1, m ,

m, m 1 ,

m 1, m 1 . Позначимо матрицю,

 

~

 

 

 

 

складену з цих елементів, через Tm

:

 

 

 

~

am

 

bm

 

T

 

 

 

.

m

b

a

2

 

m

 

 

 

m 1

 

Якщо покласти bm , тоді

 

 

 

 

 

 

T

0

 

vvT ,

 

T

1

 

 

 

 

0

T2

 

 

 

 

 

 

 

 

де

 

 

 

 

 

 

 

 

 

a

b

 

 

0

 

 

 

 

1

1

 

 

 

 

 

 

b1

a2

 

 

 

T

 

 

 

 

 

 

,

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

bm 1

 

 

 

 

0

bm 1

~

 

 

 

 

am

 

 

36

 

 

 

 

~

b

 

 

 

 

 

a

 

 

 

 

 

 

m 1

 

m 1

 

 

 

 

 

bm 1

am 2

 

 

T2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

 

bn 1

 

 

 

 

 

 

~

~

 

 

 

 

2

.

 

 

а am am та am 1

am 1

 

 

0

 

 

 

 

 

 

 

 

 

,

 

 

 

b

 

 

n 1

 

 

an

 

 

Нехай є ортогональні матриці

Q1

та Q2 розміру m m такі, що кожна з

матриць QTT Q D

і QTT Q

D

 

– діагональна. Якщо покласти

1

1

1

1

2

2

2

2

 

 

 

 

 

 

 

 

 

 

 

Q

0

 

,

 

 

 

 

 

 

U

1

 

 

 

 

 

 

 

 

 

 

0

Q2

 

 

 

 

 

 

 

 

 

 

 

 

то

T T T1

U TU U 0

де матриця

0

T2

 

 

U D zzT ,

(16)

 

vv T

 

 

 

 

 

 

 

 

D

0

 

D

1

 

 

 

0

 

 

 

D2

 

є діагональною та

 

 

 

 

 

QTe

 

z U Tv

1 m

.

 

 

QTe

 

 

 

2 1

 

Порівнюючи (15) та (16), бачимо, що для ефективного синтезу цих двох розкладів Шура вдвічі меншого розміру потрібний швидкий та стійкий розрахунок ортогональної матриці V такої, що

V T (D z zT ) V diag(1, , n ) .

Після того як матриця V обчислена, покладемо Q UV , щоб

отримати (15).

Метод знаходження ортогональної матриці V базується на наступних теоретичних положеннях.

37

Л е м а . Нехай

матриця D diag d , , d

n

Rn n

має

властивість

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

d

d

n

. Припустимо, що 0 і вектор

z Rn

не має ну-

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

льових компонент. Якщо

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(D z zT )v v,

v 0 ,

 

 

 

 

то zTv 0

і матриця D E невироджена.

 

 

Т е о р е м а . Нехай матриця D diag d , , d

n

Rn n і її діагональні

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

елементи задовольняють умові

d1 dn . Припустимо, що

0 і

вектор z Rn не має

нульових

компонент. Якщо

V Rn n

– ортогональна матриця, така, що

 

 

 

V T (D z zT ) V diag( , ,

n

) ,

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

де 1 n і V v1, , vn , то

 

 

 

 

 

 

 

 

 

1.

Величини i є n нулями функції

 

 

 

 

 

 

 

 

 

 

f 1 z

T

 

1

z .

 

 

 

 

(17)

 

 

 

 

 

D E

 

 

 

 

 

2.Якщо 0 , то 1 d1 2 n dn . Якщо 0 , то d1 1 d2 dn n .

3.Власний вектор vi має однаковий напрямок з вектором

D i E 1 z .

Таким чином, для обчислення ортогональної матриці V треба знайти корені рівняння (17). Для цього можна застосувати метод Ньютона. Функція f на кожному з інтервалів di 1, di буде монотонною та гладкою. Тому метод Ньютона забезпечує швидку збіжність до кожного з коренів рівняння, якщо початкова точка взята з інтервалу di 1, di . При цьому на практиці метод збігається до кожного власного значення за обмежену кількість кроків. Для обчислення функції f і її похідної f , що використовуються в методі Ньютона, необхідно O n арифметичних операцій. Тобто для обчислення одного власного значення достатньо O n арифме-

38

тичних операцій, а для

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

матриці

D zzT O n2

.

 

 

 

 

Після цієї процедури обчислюють стовпці матриці V шляхом норма-

 

1

 

 

 

D i E

 

z для всіх i 1, n . Оскільки матриця

лізації векторів

D i E

діагональна, то для обчислення одного такого вектора достатньо O n арифметичних операцій. При цьому обчислення всіх власних векторів обійдеться в O n2 операцій.

Отже, можна сформулювати р екур си в ни й а л го р и т м обчислення всіх власних значень і власних векторів симетричної тридіагональної матриці за допомогою стратегії «поділяй та пануй».

Алгоритм 7. Процедура dc _ eig T, Q, – за вихідною матрицею Т обчислюються матриці Q і Λ, такі, що T Q QT .

Якщо Т – матриця розміру 11, то присвоїти результуючим параметрам Q 1 і T , інакше:

T

0

 

vvT .

1. Представити матрицю Т у вигляді T

1

 

 

 

0

T2

 

 

 

 

 

2.Рекурсивно визвати процедуру dc _ eig T1, Q1, 1 .

3.Рекурсивно визвати процедуру dc _ eig T2 , Q2 , 2 .

4. Побудувати за матрицями 1, 2 , Q1, Q2 матрицю D zzT .

5.Найти матрицю власних значень Λ і матрицю власних векторів Q для матриці D zzT .

6.Побудувати матрицю власних векторів Q матриці T:

Q

0

 

Q .

Q

1

 

 

 

0

Q2

 

 

 

 

 

 

7. Присвоїти результуючим параметрам значення Q і Λ.

t n

Проаналізуємо ск ла дн іс т ь р о зг ля ну то го а л го р и тму . Нехай

– кількість арифметичних операцій для обробки матриці розміру

n n

за допомогою процедури алгоритму 7. Тоді два рекурсивних звер-

тання до процедури dc _ eig Ti , Qi , i потребують 2t n / 2 арифметичних

39