Приведение
матриц к форме Шура и Хессенберга
Ниже приводятся
функции, обеспечивающие приведение матриц к специальным формам Шура и Хессенберга:
-
cdf2rdf
— преобразование комплексной формы Шура в действительную. Если система [V,D]=eig(X)
имеет комплексные собственные значения, объединенные в комплексно-сопряженные
пары, то функция cdf2rdf преобразует систему таким образом, что матрица
D принимает вещественный диагональный вид с 2x2 вещественными блоками, заменяющими
первоначальные комплексные пары.
Конкретные
столбцы матрицы V больше не являются собственными векторами, но каждая пара
векторов связана с блоком размера 2x2 в матрице D. Пример:
»
А-[2 3 6;-4 0 3:1 5 -2]
А =
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.8B.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)
Пример:
»
А=[1 2 3:6 3 0;4 7 0];В=[1 1 1:0 7 4:9 4 1];
» [aa.bb.f,g.h]=qz(A.B)
аа =
-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
Функция qz(A,B,'
real') при заданных матрицах А и В возвращает действительные треугольную матрицу
ВВ и квазитреугольную матрицу АА с 2x2 диагональными блоками, соответствующими
парам сопряженных комплексных значений. Так как матрица АА квазитреугольная,
то необходимо решить проблемы обобщения 2x2 для получения подлинных собственных
значений.
Пример:
»
А=[1 2 3:6 3 0:4 7 0];В=[1 1 1:0 7 4;9 4 1];
» [aa.bb.f,g.h]=qz(A.B,'real')
аа =
-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
Содержание раздела