Приведение матриц к форме Шура и Хессенберга
Функция qz(A,B,' real') при заданных матрицах А и В возвращает действительные треугольную матрицу ВВ и квазитреугольную матрицу АА с 2x2 диагональными блоками, соответствующими парам сопряженных комплексных значений. Так как матрица АА квазитреугольная, то необходимо решить проблемы обобщения 2x2 для получения подлинных собственных значений.
Пример:
>
>
A
=
[
1
2
3
:
6
3
0
:
4
7
0
];B
=
[
1
1
1
:
0
7
4
;
9
4
1
];
>
>
[aa.bb.f,g.h]
=
qz(A.B,
'real'
)
aa
=
-
2.9395
0.4775
0.8751
0
9.5462
3.5985
0
0
3.2073
bb
=
5.5356
3.5345
-
2.2935
0
8.4826
6.7128
0
0
0.7667
f
=
-
0.0367
0.7327
-
0.6796
-
0.1052
-
0.6791
-
0.7265
-
0.9938
0.0448
0.1020
g
=
-
0.7023
-
0.7050
-
0.0989
0.6867
-
0.6343
-
0.3552
-
0.1877
0.3174
-
0.9295
h
=
-
1.0000
-
0.4874
-
0.0561
0.9778
-
1.0000
0.6238
-
0.2673
0.4340
-
1.0000
- Т = schur(A) – возвращает матрицу Шура Т.
- [U.T] = schur(A) – возвращает матрицу Шура Т и унитарную матрицу U, такие что A=U Т U и U' и=еуе(51ге(А))(единичная матрица размера А);
- [U,T] = rsf2csf(u.t) [В MATLAB 6 в функции schur, если ее входной аргумент – действительная матрица, может использоваться новый параметр 'complex' (schur,'complex'), позволяющий получить комплексную форму Шура без использования функции преобразования rsf2csf. – Примеч. ред.] – преобразование результатов предыдущей функции (действительной формы Шура) в комплексную форму Шура может использоваться только после вызова [u,t] = schur(A) Комплексная форма Шура – это верхняя треугольная матрица со всеми собственными значениями на диагонали. Действительная форма Шура имеет действительные собственные значения на диагонали, а комплексные собственные значения содержатся в 2x2 блоках, расположенных вдоль диагонали. И входные, и выходные матрицы U, u и Т, t представляют собой соответственно унитарные матрицы и матрицы Шура исходной матрицы А, которая удовлетворяет условиям A=UTU' и U' U=eye(si ze(A));
- Н = hess(A) – находит Н, верхнюю форму Хессенберга для матрицы А;
- [Р.Н] = hess(A) – возвращает матрицу Хессенберга Н и унитарную матрицу преобразований Р, такую что А=Р*Н*Р' и P'*P=eye(s1ze(A)).
Элементы матрицы Хессенберга, расположенные ниже первой поддиагонали, равны нулю. Если матрица симметричная или эрмитова, то матрица Хессенберга вырождается в трехдиагональную. Эта матрица имеет те же собственные значения, что и оригинал, но для их вычисления необходимо меньшее количество операций. Пример:
>
>
f
=
magic(
4
)
f
=
16
2
3
13
5
11
10
8
9
7
6
12
4
14
15
1
>
>
hess(f)
ans
=
16.0000
-
8.0577
8.8958
6.1595
-
11.0454
24.2131
-
8.1984
2.1241
0
-
13.5058
-
4.3894
-
7.8918
0
0
3.2744
-
1.8237
Что нового мы узнали?
В этом уроке мы научились:
- Находить числа обусловленности матриц, их определитель, след и ранг.
- Находить векторную и матричную нормы и различать их.
- Определять ортонормальный базис матриц.
- Приводить матрицы к треугольной форме.
- Определять угол между двумя подпространствами.
- Осуществлять разложение Холецкого, LU- и QR-разложения матриц.
- Вычислять обратные матрицы.
- Находить собственные значения и сингулярные числа матриц.
- Приводить матрицы к формам Шура и Хессенберга.