Приведение матриц к форме Шура и Хессенберга
Ниже приводятся функции, обеспечивающие приведение матриц к специальным формам Шура и Хессенберга:
- cdf2rdf – преобразование комплексной формы Шура в действительную. Если система [V,D]=eig(X) имеет комплексные собственные значения, объединенные в комплексно-сопряженные пары, то функция cdf2rdf преобразует систему таким образом, что матрица D принимает вещественный диагональный вид с 2x2 вещественными блоками, заменяющими первоначальные комплексные пары.
Конкретные столбцы матрицы V больше не являются собственными векторами, но каждая пара векторов связана с блоком размера 2x2 в матрице D. Пример:
>
>
A
-
[
2
3
6
;
-
4
0
3
:
1
5
-
2
]
A
=
2
3
6
-
4
0
3
1
5
-
2
>
>
[S.D]
=
eig(A)
S
=
0.7081
+
0.32961
0.7081
-
0.32961
-
0.3355
-
0.3456
+
0.36881
-
0.3456
-
0.36881
-
0.5721
0.0837
+
0.35711
0.0837
-
0.35711
0.7484
D
=
3.1351
+
4.06031
0
0
0
3.1351
-
4.06031
0
0
0
-
6.2702
>
>
[S.D]
=
cdf2rdf(S.D)
S
=
0.7081
0.3296
-
0.3355
-
0.3456
0.3688
-
0.5721
0.0837
0.3571
0.7484
D
=
3.1351
4.0603
0
-
4.0603
3.1351
0
0
0
-
6.2702
Функция qz обеспечивает приведение пары матриц к обобщенной форме Шура:
- [AA.BB.Q.Z.V] = qz(A.B) – возвращает, возможно, комплексные верхние треугольные матрицы АА и ВВ и соответствующие матрицы приведения Q и I, такие что Q*A*Z=AA и Q*B*Z=BB. Функция также возвращает матрицу обобщенных собственных векторов V.
Обобщенные собственные значения могут быть найдены из следующего условия:
A
*
V
*
diag(BB)
=
B
*
V
*
diag(AA)
Пример:
>
>
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)
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
-
0.0367
0.7327
-
0.6796
-
0.1052
-
0.6791
-
0.7265
-
0.9938
0.0448
0.1020
-
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