ordschur

Переупорядочьте собственные значения в разложении Шура

Синтаксис

[US,TS] = ordschur(U,T,select)
[US,TS] = ordschur(U,T,keyword)
[US,TS] = ordschur(U,T,clusters)

Описание

[US,TS] = ordschur(U,T,select) переупорядочивает разложение Шура X = U*T*U', произведенный [U,T] = schur(X), и возвращает переупорядоченную матрицу Шура TS и ортогональный матричный US, такой что X = US*TS*US'.

В этом переупорядочении выбранный кластер собственных значений появляется в ведущих (верхних левых) диагональных блоках квазитреугольной матрицы Шура TS. Ведущие столбцы US охватывают соответствующее инвариантное подпространство. Логический векторный select задает выбранный кластер как e(select), где e = ordeig(T).

[US,TS] = ordschur(U,T,keyword) устанавливает выбранный кластер включать все собственные значения в область, заданную keyword.

пример

[US,TS] = ordschur(U,T,clusters) переупорядочивание несколько кластеров одновременно. ordschur сортирует заданные кластеры в порядке убывания по диагонали TS с кластером самого высокого индекса, появляющегося в левом верхнем углу.

Примеры

свернуть все

Вычислите факторы Шура матрицы, затем переупорядочьте факторы согласно заданному упорядоченному расположению собственных значений.

Найдите разложение Шура матричного X. Разложение Шура производит верхнюю квазитреугольную матрицу T и унитарная матрица U, таким образом что X=UTU*.

X = magic(6);
[U,T] = schur(X)
U = 6×6

    0.4082   -0.2887    0.4082    0.5749    0.5000   -0.0530
    0.4082    0.5774    0.4082   -0.3333   -0.0000   -0.4714
    0.4082   -0.2887    0.4082   -0.2416   -0.5000    0.5244
    0.4082    0.2887   -0.4082    0.5749   -0.5000   -0.0530
    0.4082   -0.5774   -0.4082   -0.3333   -0.0000   -0.4714
    0.4082    0.2887   -0.4082   -0.2416    0.5000    0.5244

T = 6×6

  111.0000    0.0000   -0.0000    0.0000    0.0000   -0.0000
         0   27.0000   -0.0000  -28.3164  -15.5885  -13.0454
         0         0  -27.0000   18.0000   22.0454  -12.7279
         0         0         0    9.7980    0.0000    6.9282
         0         0         0         0   -0.0000    0.0000
         0         0         0         0         0   -9.7980

Поскольку T является треугольным, диагональ T содержит собственные значения исходного матричного X.

Переупорядочьте разложение Шура так, чтобы собственные значения были в двух кластерах с кластером отрицательных собственных значений, появляющихся первых по диагонали TS.

[US,TS] = ordschur(U,T,'lhp')
US = 6×6

    0.4082   -0.2887    0.2746    0.4082   -0.4826    0.5244
    0.4082   -0.2887    0.2990    0.4082    0.5213   -0.4714
    0.4082    0.5774   -0.5736    0.4082   -0.0386   -0.0530
   -0.4082    0.2887    0.2075    0.4082    0.5151    0.5244
   -0.4082    0.2887    0.3662    0.4082   -0.4765   -0.4714
   -0.4082   -0.5774   -0.5736    0.4082   -0.0386   -0.0530

TS = 6×6

  -27.0000  -19.0919   18.6997    0.0000   -9.7888   12.7279
         0   -0.0000   -0.3800    0.0000  -15.6493   15.5227
         0         0   -9.7980   -0.0000   -2.4773    8.7185
         0         0         0  111.0000    0.0000    0.0000
         0         0         0         0   27.0000  -26.3600
         0         0         0         0         0    9.7980

Входные параметры

свернуть все

Унитарная матрица, заданная как матричный U, возвращенный [U,T] = schur(X). Матричный U удовлетворяет свойства X = U*T*U' и U'*U = eye(size(X)).

Если U и T не формируют допустимое разложение Шура, то ordschur не производит ошибку и возвращает неправильные результаты.

Типы данных: single | double
Поддержка комплексного числа: Да

Матрица Шура, заданная как верхняя квазитреугольная матрица T, возвращенный [U,T] = schur(X). Матричный T удовлетворяет X = U*T*U'.

Если U и T не формируют допустимое разложение Шура, то ordschur не производит ошибку и возвращает неправильные результаты.

Типы данных: single | double
Поддержка комплексного числа: Да

Кластерный селектор, заданный как логический вектор с длиной, равняется количеству собственных значений. Собственные значения появляются по диагонали матричного T, произведенного [U,T] = schur(X).

Типы данных: логический

Ключевое слово области собственного значения, заданное как одна из опций в этой таблице.

Опция

Выбранная область

(e = ordeig(T))

'lhp'

Левая полуплоскость (real(e) < 0)

'rhp'

Правая полуплоскость (real(e) >= 0)

'udi'

Внутренняя часть единичного диска (abs(e) < 1)

'udo'

Внешний вид единичного диска (abs(e) >= 1)

Кластерные индексы, заданные как вектор положительных целых чисел с длиной, равняются количеству собственных значений. clusters присваивает каждое собственное значение, возвращенное e = ordeig(T) в различный кластер. Все собственные значения с тем же индексным значением в clusters формируют один кластер.

Пример: группы ordschur(U,T,[1 1 2 3 3]) пять собственных значений в три кластера.

Типы данных: single | double

Выходные аргументы

свернуть все

Переупорядоченные матрицы, возвращенные как матрицы, которые удовлетворяют X = US*TS*US'.

US является унитарной матрицей, и TS является квазитреугольным.

Больше о

свернуть все

Квазитреугольный

Верхняя квазитреугольная матрица может следовать из разложения Шура или обобщила Шура (QZ) разложение действительных матриц. Эти матрицы являются блоком, верхним треугольный с блоками 2 на 2 и 1 на 1 по диагонали.

Собственные значения этих диагональных блоков являются также собственными значениями матрицы. Блоки 1 на 1 соответствуют действительным собственным значениям, и блоки 2 на 2 соответствуют комплексно-сопряженным парам собственного значения.

Советы

  • Если T имеет комплексно-сопряженные пары (ненулевые элементы на поддиагонали), то необходимо переместить пару в тот же кластер. В противном случае ordschur действует, чтобы держать пару вместе:

    • Если select не является тем же самым для двух собственных значений в сопряженной паре, то ordschur обрабатывает обоих, как выбрано.

    • Если clusters не является тем же самым для двух собственных значений в сопряженной паре, то ordschur обрабатывает обоих как часть кластера с большим индексом.

Смотрите также

| |

Представлено до R2006a