Иллюстрированный самоучитель по MatLab

Приведение матриц к форме Шура и Хессенберга

Функция 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-разложения матриц.
  • Вычислять обратные матрицы.
  • Находить собственные значения и сингулярные числа матриц.
  • Приводить матрицы к формам Шура и Хессенберга.
Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.