Текст подпрограммы и версий ( Фортран )
afg3c.zip
Тексты тестовых примеров ( Фортран )
tafg3c.zip
Текст подпрограммы и версий ( Си )
afg3c_c.zip
Тексты тестовых примеров ( Си )
tafg3c_c.zip
Текст подпрограммы и версий ( Паскаль )
afg3c_p.zip
Тексты тестовых примеров ( Паскаль )
tafg3c_p.zip

Подпрограмма:  AFG3C

Назначение

Приведение пары комплексных матриц к верхней почти треугольной форме элементарными преобразованиями с помощью LZ - алгоритма.

Математическое описание

Для заданных комплексных матриц А и В размера N*N вычисляются такие элементарные матрицы L и Z размера N*N, что матрица LАZ является верхней почти треугольной, а матрица LВZ - верхней треугольной.

В результате работы подпрограммы АFG3С матрица LАZ помещается на место матрицы А, матрица LВZ - на место матрицы В. Левостороннее преобразование L не сохраняется, правостороннее преобразование Z по желанию пользователя может сохраняться.

R.S.Мartin, J.Н.Wilkinson, Tне Мodified LR - Аlgorithm for Сomplex Нessenberg Мatrices, Numer.Мath., 12, 1968.

С.В.Мoler, G.W.Stewart, Аn Аlgorithm for тне Generalized Мatrix Еigenvalue Рrodlems, SIАМ J. Numer. Аnal., 10, 1973.

Использование

    SUBROUTINE  AFG3C (A, B, Z, N, M) 

Параметры

A, B - комплексные двумерные массивы размера N*N, в которых задаются исходные матрицы А и В; в результате работы подпрограммы в массивы А и В записываются соответственно верхняя почти треугольная матрица LАZ и верхняя треугольная матрица LВZ;
Z - комплексный двумерный массив размера N*N, который содержит вычисленное правостороннее преобразование Z; если преобразование не нужно, то параметр Z в подпрограмме не используется;
N - заданный порядок матриц А, В и Z (тип: целый);
M - задает режим работы подпрограммы (тип: целый); причем
М = 0 - если преобразование Z сохраняется,
М = 1 - если преобразование Z не сохраняется.

Версии: нет

Вызываемые подпрограммы: нет

Замечания по использованию

  1. 

Матрица преобразования Z необходима для вычисления собственных векторов обобщенной проблемы Аx = λВx по правилу x = Zy, где y - собственные векторы обобщенной проблемы LАZy =λLВZy .

  2.  Если матрица преобразования Z не нужна, т.е. когда М = 1, то в качестве фактического параметра Z можно использовать параметр А.

Пример использования

      DIMENSION  A(3, 3), B(3, 3), Z(3, 3)
      COMPLEX  A, B, Z
      DATA  A / (1., 0.),  (-10., 0.),  (5., 0.),  (0.5, 0.),  (2., 0.), 
   *                  (1., 0.), 2* (0., 0.),  (0.5, 0.) /
      DATA  B / (0.5, 0.),  (3., 0.),  (4., 0.),  (0., 0.),  (3., 0.), 
   *                  (0.5, 0.), 2* (0., 0.),  (1., 0.) /
      N = 3
      M = 0
      CALL AFG3C (A, B, Z, N, M)

Результаты:

               |   5.00000 + 0.0 i    1.03125 + 0.0 i      0.50000 + 0.0 i |
      A  =  |-13.75000 + 0.0 i    1.22056 + 0.0 i     -0.37500 + 0.0 i |
               |    0.0        + 0.0 i     0.40455 + 0.0 i    -0.07273 + 0.0 i |

               | 4.00000 + 0.0 i     0.56250 + 0.0 i     1.00000 + 0.0 i |
      B  =  | 0.0         + 0.0 i     2.57812 + 0.0 i    -0.75000 + 0.0 i |
               | 0.50000 + 0.0 i     0.0         + 0.0 i    -0.14545 + 0.0 i |

               | 1.0     + 0.0 i     0.0        + 0.0 i     0.0     + 0.0 i |
      Z  =  | 0.0     + 0.0 i     1.0         + 0.0 i     0.0     + 0.0 i |
               | 0.0     + 0.0 i     0.06250 + 0.0 i     1.0     + 0.0 i |