exponenta event banner

ordschur

Переупорядочивание собственных значений в факторизации Шура

Описание

[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).

Типы данных: logical

Ключевое слово области собственных значений, указанное как один из параметров в этой таблице.

Выбор

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

(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) вещественных матриц. Эти матрицы являются блоками верхними треугольными, с блоками 1 на 1 и 2 на 2 по диагонали.

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

Совет

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

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

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

См. также

| |

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