MATLAB.Exponenta
MATLAB и Simulink на русском
Технологии разработки и отладки
		сложных технических систем

MATLAB\MATLAB

В.Г.Потемкин "Справочник по MATLAB"
Линейная алгебра

  В оглавление книги \ К следующему разделу \ К предыдущему разделу

Вычисление собственных значений и сингулярных чисел

SCHUR,
RSF2CSF
Приведение к форме Шура

Синтаксис:

            T = schur(A)
            [U, T] = schur(A)
            [U, T] = rsf2csf(U,T)

Описание:

Функция T = schur(A) возвращает матрицу в форме Шура. Комплексная форма Шура - это верхняя треугольная матрица с собственными значениями на диагонали; действительная форма Шура сохраняет на диагонали действительные собственные значения, а комплексные представляются в виде блоков 2 х 2, частично занимая нижнюю поддиагональ.

Функция [U, T] = schur(A) кроме матрицы Шура T возвращает также унитарную матрицу преобразований U, которая удовлетворяет условиям

           A = U * H * U’, U’ * U = eye(size(A)).

Если исходная матрица A действительная, то возвращается действительная форма Шура, если комплексная, то комплексная форма Шура. Функции cdf2rdf и rsf2csf обеспечивают преобразование из одной формы в другую.

Функция [U, T] = rsf2csf(U, T) преобразовывает действительную квазитреугольную форму Шура в комплексную треугольную.

Пример:

Рассмотрим приведение тестовой матрицы с двумя кратными комплексными и одним действительным собственными значениями к действительной форме Шура [1].

A = 15 11 6 -9 -15
1 3 9 -3 -8
7 6 6 -3 -11
7 7 5 -3 -11
17 12 5 -10 -16

         [U, T] = schur(A)

U =

0.2868 0.0207 0.7227 0.2502 -0.5766
0.4854 0.4640 -0.5919 0.1372 -0.4241
0.4192 0.0148 0.0802 0.6744 0.6023
0.3530 0.5466 0.3290 -0.5861 0.3533
0.6178 -0.6966 -0.1129 -0.3467 -0.0096

 

T =

-1.0000 20.1766 4.8432 33.1468 15.2146
0 -0.0399 -2.0829 -2.2176 8.8043
0 7.2596 3.0399 10.1089 -10.9556
0 0 0 0.7171 2.7149
0 0 0 -4.9221 2.2829

Преобразуем действительную квазитреугольную форму Шура в комплексную треугольную.

             [U1, T1] = rsf2csf(U, T)
   U1 =

0.2868 0.6332 + 0.0090i -0.1534 - 0.3133i 0.4310 + 0.1457I 0.2745 + 0.3358i
0.4854 -0.6085 + 0.2012i -0.2984 + 0.2566i 0.3230 + 0.0799I 0.1643 + 0.2470i
0.4192 0.0680 + 0.0064i -0.0280 - 0.0348i -0.5696 + 0.3928I 0.4645 - 0.3508i
0.3530 0.1878 + 0.2370i -0.5434 - 0.1426i -0.2088 - 0.3413I -0.5156 - 0.2058i
0.6178 0.0307 - 0.3020i 0.6352 + 0.0490i 0.0520 - 0.2019I -0.2771 + 0.0056i

     T1 =

-1.0000 0.4967 + 8.7481i -18.6913 - 2.0999i 7.9820 +19.3046I 28.5534 + 8.8610i
0 1.5000 + 3.5707I -5.8300 - 1.5148i 7.3239 + 8.3731I 6.7070 + 7.8425i
0 0 1.5000 - 3.5707i 2.0252 + 3.2914I -1.9851 + 7.4522i
0 0 0 1.5000 - 3.5707I 2.4562 + 1.1359i
0 0 0 0 1.5000 - 3.5707i

Алгоритм:

Для действительных матриц функция schur(A) использует следующие модули пакета EISPACK [2-3]: ortran, orthes и hqr2. Модуль orthes осуществляет приведение матрицы к верхней форме Хессенберга посредством ортогональных подобных преобразований; модуль ortran запоминает все преобразования. Модуль hqr2 вычисляет собственные значения матрицы в верхней форме Хессенберга на основе QR-алгоритма Франсиса - Кублановской.

Для комплексных матриц функция schur(A) использует модули qzhes, qzit, qzval и qzvec пакета EISPACK.

Сопутствующие функции: HESS, EIG, QZ.

Ссылки:

  1. Уилкинсон, Райнш. Справочник алгоритмов на языке АЛГОЛ. Линейная алгебра: Пер. с англ. М.: Машиностроение, 1976. 390 с.
  2. Smith B. T., Boyle J. M., Dongarra J. J., Garbow B. S., Ikebe Y., Klema V., Moler C. B.. Matrix Eigensystem Routines - EISPACK Guide//Lecture Notes in Computer Science. Berlin, 1976. Vol. 6.
  3. Garbow B. S., Boyle J. M., Dongarra J. J., Moler C. B.. Matrix Eigensystem Routines - EISPACK Guide Extension//Lecture Notes in Computer Science. Berlin, 1977. Vol. 51.

  В оглавление книги \ К следующему разделу \ К предыдущему разделу

 


Поиск по сайту:

Система Orphus

Яндекс.Метрика