Текст подпрограммы и версий ( Фортран )
agg3c.zip 
Тексты тестовых примеров ( Фортран )
tagg3c.zip 
Текст подпрограммы и версий ( Си )
agg3c_c.zip 
Тексты тестовых примеров ( Си )
tagg3c_c.zip 
Текст подпрограммы и версий ( Паскаль )
agg3c_p.zip 
Тексты тестовых примеров ( Паскаль )
tagg3c_p.zip 

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

Назначение

Вычисление всех собственных значений в обобщенной проблеме Аx = λBx двух комплексных матриц с помощью LZ - алгоритма.

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

Подпрограмма AGG3C вычисляет все собственные значения обобщенной проблемы Ax = λBx двух комплексных матриц А и B размера N на N с помощью LZ - алгоритма.

Информация о вычисленных собственных значениях выдается в вектоpах ALFA и BETA длины N, причем K - ое собственное значение λk определяется по формуле:

                        λk = ALFA(k) / BETA(k), при BETA(k) ≠ 0,
   (1)                 λk = ∞                            , при BETA(k) = 0,          
                        λk = любое число          , при ALFA(k) = BETA(k) = 0.

R.S.Martin, J.H.Wilkinson, The Modified LR - Algorithm for Complex Hessenberg Matrices, Numer. Math., 12, 1968.

C.B.Moler,G.W.Stewart, An Algorithm for the Generalized Matrix Eigenvalue Problems, SIAM J. Numer. Anal., 10, 1973.

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

    SUBROUTINE  AGG3C (A, B, ALFA, BETA, N, IERR) 

Параметры

A, B - комплексные двумерные массивы размера N на N, содержащие исходные матрицы;
  ALFA -
  BETA  
комплексные векторы длины N, в которых содержится информация о вычисленных собственных значениях; при этом собственные значения определяются формулой (1);
N - порядок исходных матриц (тип: целый);
IERR - целая переменная, служащая для сообщения об ошибках, обнаруженых в ходе работы подпрограммы; значение IERR полагается равным номеpу собственного значения, для вычисления которого потребовалось более 30 итераций; при этом собственные значения с индексами IERR + 1, ..., N вычислены правильно, а с индексами 1, ..., IERR не вычисляются.

Версии : нет

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

AFG3C - приведение пары комплексных матриц к веpхнему почти треугольному и к веpхнему треугольному виду с помощью LZ - алгоритма.
AGT3C - вычисление всех собственных значений в обобщенной проблеме Ax = λBx для комплексных верхней почти треугольной матрицы A и веpхней треугольной матрицы B с помощью LR - алгоритма.
UTAG10 - подпрограмма выдачи диагностических сообщений при работе подпрограммы AGG3C.

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

  Исходные матрицы A и B не сохраняются.

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

         DIMENSION  A(3, 3), B(3, 3), ALFA(3), BETA(3)
         COMPLEX  A, B, ALFA, BETA
         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
         CALL  AGG3C (A, B, ALFA, BETA, N, IERR)

Результаты:

      IERR  =  0

                      |  2.79963-3.65018*i |
      ALFA  =  |  0.42142+0.54945*i |
                      | -1.09877+0.0*i        |

                      | -1.05899-1.84748*i |
      BETA  =  | -0.15941+0.27809*i |
                      | -2.19753+0.0*i        |

Собственные значения   λk = ALFA(k) / BETA(k)

      λ1  =  0.8333 + 1.993i
      λ2  =  0.8333 - 1.993*i
      λ3  =  0.5000 + 0.0*i