РТФ РАДИОТЕХНИЧЕСКИЙ ИНСТИТУТ

advertisement
РАДИОТЕХНИЧЕСКИЙ ИНСТИ
РТФ
«Вычислительная математика»
Презентационные
материалы к лекциям :
Селиванова
Ирина
Анатольевна,
ст.преподаватель
кафедры «Автоматики
и
информационных
технологий» УГТУ-УПИ
Лекция.
Вычисление собственных векторов и собственных
значений матрицы. QR-алгоритм.
1. Введение
2. QR-алгоритм
3. Примеры
4. Модификация QR-алгоритма
5. Вывод
Список литературы
1.Введение
Введение
При решении полной проблемы собственных значений для
несимметричных матриц эффективным является подход,
основанный на приведении матриц к подобным, имеющим
треугольный или квазитреугольный вид. Одним из наиболее
распространенных методов этого класса является QR -алгоритм.
2. QR-алгоритм
QR-алгоритм
В основе QR-алгоритма лежит представление матрицы в виде A=QR,
где Q - ортогональная матрица Q-1=QТ , а R - верхняя треугольная.
Такое разложение существует для любой квадратной матрицы. Одним
из возможных подходов к построению QR разложения является
использование преобразования Хаусхолдера, позволяющего обратить
в нуль группу поддиагональных элементов столбца матрицы.
Преобразование Хаусхолдера осуществляется с использованием
матрицы Хаусхолдера, имеющей следующий вид:

v
2 
H  E  T  v v T
v v
где:
-произвольный ненулевой вектор-столбец, E

матрица , v v T - квадратная матрица того же размера.
(1)
- единичная
2. QR-алгоритм
Рассмотрим случай, когда необходимо обратить в нуль все
элементы какого-либо вектора кроме первого, т.е. построить
матрицу Хаусхолдера такую, что


b  Hb

b  (b1 , b1 ,..., bn )T
~
~

b  (b1 ,0,...,0)T
~

(2)
Тогда вектор v определится
следующим
образом:





(3)
1
v

b

sign
(
b
)
||
b
||
e
n

1
2
1

где || b || 2  ( b 2 ) 2 - евклидова норма вектора, e1  (1,0,...,0)T
i 1
i
2. QR-алгоритм
Применяя
описанную
процедуру
с
целью
обнуления
поддиагональных элементов каждого из столбцов исходной
матрицы, можно за фиксированное число шагов получить ее QR –
разложение.
Рассмотрим подробнее реализацию данного процесса.
Положим A0=A
и построим преобразование Хаусхолдера H1
(A1=H1A0), переводящее матрицу A0 в матрицу с нулевыми
элементами первого столбца под главной диагональю:
 a110
 0
a
A0   21
 ...
 a0
 n1
a120
0
a 22
...
a n02
1
 a11
... a10n 


... a 20n 
 0


A

1
 ...
... ...  H1

0 
 0
... a nn 

1
a12
a 122
...
a 1n 2
... a11n 

... a 12 n 
... ... 
... a 1nn 
(4)
2. QR-алгоритм
Матрица H1 Хаусхолдера должна определяться по первому столбцу

матрицы A0 , т.е. в качестве вектора
берется вектор
b

0
0
0 T
(a11 , a 21 ,..., a n1 ). Тогда компоненты вектора v вычисляются следующим
образом:
 n

0 2

v 1  a  sign (a )  (a j1) 
 j 1

vi1  ai01
1
0
11
0
11
1
2
(5)
i  2, n
Матрица Хаусхолдера H1 вычисляется согласно (1):

v 1v 1T
H1  E  2 1T 1
v v
(6)
2. QR-алгоритм
На следующем, втором, шаге рассматриваемого процесса строится
преобразование
Хаусхолдера
H2 (A2=H2A1),
обнуляющее
расположенные ниже главной диагонали
столбца
 элементы второго
1
1
матрицы A1. Взяв в качестве вектора b вектор
( a 22 , a32 ,..., a1n 2 )T
размерности
 (n-1) получим следующие выражения для компонентов
вектора v :
v12  0
v2  a
2
1
22
v i2  a i11
i  3, n
 n

1 2

 sign (a )  (a j 2 ) 
 j 2

1
22
1
2
(7)
2. QR-алгоритм
Повторяя процесс (n-1) раз, получим искомое разложение A=QR,
где:
(8)
Q  ( H H ...H ) T  H H ...H
n 1
n2
0
1
2
n 1
R  An1
Процедура - разложения многократно используется в алгоритме
вычисления
собственных
значений.
Строится
следующий
итерационный процесс:
A(0)=A
A(0)=Q(0)R(0) – производится QR-разложение,
A(1)=R(0)Q(0) – производится перемножение матриц,
…………….
A(k)=Q(k)R(k) – разложение,
A(k+1)=R(k)Q(k) – перемножение.
2. QR-алгоритм
Таким образом, каждая итерация реализуется в два этапа. На первом
этапе осуществляется разложение матрицы A(k) в произведение
ортогональной Q(k) и верхней треугольной R(k) матриц, а на втором –
полученные матрицы перемножаются в обратном порядке.
Если в ходе итераций прослеживается комплексно-сопряженная пара
собственных значений, соответствующая блоку, образуемому
a (jjk ) , a (jjk)1 , a (jk1) j , a (jk1) j 1
элементами j-го и (j+1)-го столбцов
, то в
качестве критерия окончания итераций может быть использовано
следующее условие:
(12)
( k )  ( k 1)  
3. Пример
Пример
Рассмотрим небольшой пример, поясняющий на практике все
вышеперечисленные формулы и утверждения.
Пример:
Используя преобразование Хаусхолдера, построить – QR
разложение матрицы
1 3 1


A   1 1 4
4 3 1


3. Пример
Решение.
1. Положим A0=A и найдем ортогональную матрицу Хаусхолдера H,
такую что в матрице A1=H1A0 все поддиагональные элементы
первого столбца равны нулю. С этой целью компоненты вектора
определим, используя элементы первого столбца матрицы A0:
1
2
 3

0 2

v1  a  sign (a )  (a j1 )   5.24
 j 1

0
v12  a21
1
1
0
11
0
11
0
v31  a31
4
В результате получен вектор

v 1  (5.24;1;4)T .
3. Пример
Найдем соответствующую этому вектору матрицу Хаусхолдера:
 524. 


 1   5.24 1 4 
1
0
0



 4 

v 1v 1T 

H  E  2 1T 1   0 1 0   2 

5
.
24
v v 





0
0
1


5.24 1 4  1 
 4 


1 0 0
 27.46 5.24 20.96 




2
0
1
0


5
.
24
1
4




 0 0 1  88.92  20.96
4
16 



 1 0 0   1.24 0.24 0.94    0.24  0.24  0.94 

 
 

  0 1 0    0.24 0.04 0.18     0.24 0.96  0.18 
 0 0 1   0.94 0.18 0.72    0.94  0.18 0.28 

 
 

3. Пример
В заключение первого шага вычислим матрицу A1 :
  0.24  0.24  0.94   1 3 1 
  4.24  3.77  2.12 

 



A1    0.24 0.96  0.18    1 1 4   HA0   0
 0.29 3.40 
  0.94  0.18 0.28   4 3 1 
 0
 2.17  1.38 

 


На втором шаге проделаем аналогичную процедуру, обнуляя
поддиагональный элемент второго столбца.
Таким образом, после первого шага получена матрица с нулевыми
поддиагональными элементами в первом столбце.
v12  0
1
2
 3

2 2

v  a  sign (a )  (a j 2 )   2.48
 j 2

1
v32  a32
 2.17
2
2
1
22
1
22
3. Пример

Т.е. искомый вектор
v 2  (0;2.48;2.17) T
Далее найдем соответствующую ему матрицу Хаусхолдера:
0
0 
 2  2T  1

v v
H 1  E  2  2T  2   0  0.13  0.99 
v v
 0  0.99 0.13 


и вычислим матрицу A2:
0
0    4.24  3.77  2.12    4.24  3.77  2.12 
1

 
 

A2  H 1 A1   0  0.13  0.99    0
 0.29 3.40    0
2.19
0.91 
 0  0.99 0.13   0
 2.17  1.38   0
0
 3.56 

 
Таким образом, исходная матрица A приведена к верхнему
треугольному виду, т.е. получена матрица R=A2 искомого разложения.
Результирующая ортогональная матрица преобразования Q получается
в результате перемножения матриц Hi i=1,2.
3. Пример
0
0    0.24 0.97
0.11 
  0.24  0.24  0.94   1

 
 

Q  HH 1    0.24 0.96  0.18    0  0.13  0.99     0.24 0.05  0.97 
  0.94  0.18 0.28   0  0.99 0.13    0.94  0.25 0.22 

 
 

В заключение выпишем окончательный результат A=QR в явном виде:
0.11    4.24  3.77  2.12 
 1 3 1    0.24 0.97

 
 

A   1 1 4     0.24 0.05  0.97    0
2.19
0.91 
 4 3 1    0.94  0.25 0.22   0

0

3
.
56

 
 

4. Модификация QR-алгоритма
Модификация QR-алгоритма
Существенным недостатком рассмотренного выше алгоритма
является большое число операций (пропорционально n3, где n размерность матрицы), необходимое для QR-факторизации
матрицы на каждой итерации. Именно по этой причине существует
несколько модификаций QR-алгоритма, широко используемых на
практике. Одной из таких модификаций является предварительное
преобразование матрицы к верхней Хессенберговой форме, в
которой равны нулю все элементы, находящиеся ниже главной
диагонали за исключением элементов первой поддиагонали,
благодаря чему эффективность QR-алгоритма может быть
повышена. Это преобразование осуществляется при помощи
матрицы подобия. Иными словами предварительно производится
следующая операция:
B  H T AH
4. Модификация QR-алгоритма
B -матрица Хессенберга, имеющая следующую структуру (знак x
обозначает ненулевые элементы):
x

x
0
B
0
 ...

0

x
x ... x
x
x ... x
x
0
x ... x
x ... x
... ... ... x
0
0
0
x
x

x
x

x
x 
x 
и QR-алгоритм запускается относительно матрицы B.
В основе преобразования A к виду B (определяемому условием xij=0
при j<i-1) лежит преобразование Хаусхолдера или, иначе,
преобразование отражения, осуществляемое с помощью матрицы
отражения (Хаусхолдера)
 T
H  E  2 W W
4. Модификация QR-алгоритма

W - произвольный вектор-столбец, но такой, что его евклидова норма
равна единице.
 2
 


W  (W , W )  W T  W  1
(15)
2
и с учетом симметричности матрицы
 W12 W1W2 ... W1Wn 
 W1 


 
2
  T W2 
... W1W 
W2W1 W2
W  W     W1 , W2 , ... Wт   

(16)
...
...
...
...
...


 
W 
 W W W W ... W 2 
 n
1
n 
 1
имеем:
 T
 T  T
H  H  H  E  4 W W  4 W W W W  E
T
2
(17)
Следовательно, матрица отражения ортогональна, и, значит, матрицы A и
B связаны соотношением
(18)
B  H  A H
являются подобными.
4. Модификация QR-алгоритма

Теперь необходимо максимально удобным образом задать вектор W,m
чтобы за конечное число шагов преобразований Хаусхолдера
произвольно заданную матрицу A привести к форме Хессенберга B.
Рекомендуется начинать процесс преобразований A к B следующим
образом:
B1  A
Bm1  H m  Bm  H m
где
m  1,2,..., n  2
 T
H m  E  2 Wm Wm
(19)
(20)
Таким образом, данная n*n матрица A за (n-2) шага будет приведена к
виду B, т.е. матрица B=Bn-1 подобна
A, если задающие матрицы

Wm
Хаусхолдера Hm векторы
по данной матрице A строить
следующим образом.
4. Модификация QR-алгоритма

При m=1 вектор W1 определяется равенством
Где
T
W1  1  0, a21  s1, a31,..., an1 
s1  sign (a21 ) 
1 
(21)
n
a
i 2
1
2s1 (s1  a21)
2
i1
(22)
(23)

Такое задание W1  обеспечивает
ортогональность симметричной

матрицы H1  E  2  W1  W1T (согласно формуле (20)) и одновременное
получение с ее помощью нужных (n-2) нулей в первом столбце
матрицы B2  H1  B1  H1 (согласно формуле (19)).

Вектор W2 по матрице B2 строится совершенно аналогично, только
фиксируются нулевыми не одна, а две первые его координаты, и
определяющую роль играют теперь не первый, а второй столбец
матрицы B2 и его третий элемент.
4. Модификация QR-алгоритма
При этом у матрицы B3=H2B2H2 окажется (n-3) нулевых элемента во
втором столбце и сохранятся полученные на предыдущем шаге нули в
первом столбце. Этот процесс таким образом может быть продолжен до
исчерпания.
Пример:
Пусть дана матрица
1  3
 5


A 3
0  2
  4 1 1 


Найдем матрицу B, подобную матрице A и имеющую форму Хессенберга.
2
2
s  sign ( a 21 )  a 21
 a31

1
2 s ( s  a 21 )
T
W    0, a 21  s, a31 
 T
H  E  2 W W
B  H  A H
4. Модификация QR-алгоритма
Выполним соответствующие расчеты
s   3 2  (4) 2  5

1
2(5)(( 5)  3)

1
4 5
0
 0 
0
 T



1
2 W W 
  8   0 8  4    0 1.6
40  
 0  0.8
  4

0
0  1
0
1 0 0 0

 
 
H   0 1 0    0 1.6  0.8    0  0.6
 0 0 1   0  0.8 0.4   0 0.8

 
 
0
0   5
1  3  5
1

 
 
H  A   0  0.6 0.8    3
0  2    5
 0 0.8 0.6    4  1 1   0

 
 
0 

 0.8 
0.4 
0 

0.8 
0.6 
1
 3

 0.8 2 
 0.6  1 
1
 3  1
0
0   5
3
1 
 5

 
 

B  H  A  H    5  0.8 2    0  0.6 0.8     5 2.08
0.56 
 0  0.6  1   0 0.8 0.6   0  0.44  1.08 

 
 

5. Вывод
Вывод
Перечислим основные достоинства -алгоритма: алгоритм сохраняет
почти треугольную форму исходной матрицы, что ведет к значительному
сокращению объема вычислений, алгоритм эффективно модифицируется
в случае эрмитовых матриц, алгоритм устойчив к влиянию ошибок
округления.
Список литературы
Список литературы
1. Вержбицкий В.М. Основы численных методов: Учебник для
вузов. – М.: Высш. шк., 2002. – 840с.
2. Волков Е.А. Численные методы: Учебное пособие. – 3-е изд.,
испр. – СПб: Лань, 2004. – 256с.
3. Турчак Л.И. Основы численных методов: Учебное пособие. – М.:
Наука. Гл. ред. физ.-мат. лит., 1987. – 320с.
Download