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

MATLAB\MATLAB

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

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

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

QZ
Приведение пары матриц к обобщенной форме Шура

Синтаксис:

          [AA, BB, Q, Z, V] = qz(A, B)

Описание:

Многие задачи линейной алгебры - решение матричных уравнений Сильвестра и Риккати, смешанныx систем дифференциальных и линейных алгебраических уравнений, приводят к необходимости одновременного приведения пары матриц к форме Шура.

Функция [AA, BB, Q, Z, V] = qz(A, B) возвращает комплексные верхние треугольные матрицы AA и BB, соответствующие матрицы приведения Q и Z, а также вектор обобщенных собственных векторов V, так что

            Q * A * Z = AA;
            Q * B * Z = BB.

Обобщенные собственные значения могут быть найдены исходя из следующего условия:

            A * V * diag(BB) = B * V * diag(AA).

Пример:

Для системы обыкновенных дифференциальных уравнений в неявной форме Коши с одним входом и одним выходом

             image705.gif (338 bytes)

задачи вычисления полюсов и нулей соответствующей передаточной функции определяются следующим образом [1]:

  • вычисление полюсов
               Rr = -lQr;
  • вычисление нулей

                     image706.gif (441 bytes).

Нетрудно видеть, что обе задачи требуют решения обобщенной проблемы собственных значений.

Описание системы:

Q = R = b =
1.0000 0
0.1920 1.0000
1.1190 -1.0000
36.4800 1.5380
31.0960
0.1284
C = [ 0.6299 0 ] d = -0.0723

Расчет полюсов:

            [AA, BB] = qz(R, -Q)

AA =
5.5039 + 2.7975i 24.8121 - 25.3646i
0.0000 + 0.0000i 5.5158 - 2.8036i
BB = diag(AA)./diag(BB) =
-0.6457 + 0.7622i -0.1337 + 0.1378i
0 -0.6471 - 0.7638i
-1.4245 - 6.0143i
-1.4245 + 6.0143i

Расчет нулей:

A = [-R b
       C d]
B = [ -Q       zeros(size(b))
         zeros(size(C))         0 ]
-1.1190 1.0000 0.1284
-36.4800 -1.5380 31.0960
0.6299 0 0.0723
-1.0000 0 0
-0.1920 -1.0000 0
0 0 0

              [AA, BB] = qz(A, B)

AA = BB = diag(AA)./diag(BB) =
31.0963 -0.7165 -36.5109
0.0000 1.0647 0.9229
0 0.0000 0.5119
0 0.9860 -0.2574
0 0.0657 0.9964
0 0 -0.0354
Inf
16.2035
-14.4735

Алгоритм:

Средством вычисления формы Шура для пары матриц {A, B} является созданный Моулером и Стьюартом QZ-алгоритм [2-3], который реализован в рамках пакета EISPACK [4] и использует модули qzhes, qzit, qzval и qzvec.

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

Ссылки:

  1. Потемкин В. Г., Кутузова Г. Н. Особенности исследования дискретно-непрерывных комплексов на ЭВМ. Учеб. пособие. М.: МИФИ, 1988. 56 с.
  2. Икрамов Х. Д. Численное решение матричных уравнений. М.: Наука, 1984. 192 с.
  3. Moler C. B., Stewart G. W. An Algorithm for Generalized Matrix Eigenvalue Problems//SIAM J. Numer. Anal. 1973. N 2. Vol. 10.
  4. 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

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