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