Текст подпрограммы и версий ( Фортран )
agt3c.zip 
Тексты тестовых примеров ( Фортран )
tagt3c.zip 
Текст подпрограммы и версий ( Си )
agt3c_c.zip 
Тексты тестовых примеров ( Си )
tagt3c_c.zip 
Текст подпрограммы и версий ( Паскаль )
agt3c_p.zip 
Тексты тестовых примеров ( Паскаль )
tagt3c_p.zip 

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

Назначение

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

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

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

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

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

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

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

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

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

Параметры

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

Версии : нет

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

UTAG10 - подпрограмма выдачи диагностических сообщений при работе подпрограммы AGT3C.

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

  Подпрограмма AGT3C не сохраняет исходные матрицы 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
          M = 1
          CALL  AFG3C (A, B, A, N, M)
          CALL  AGT3C (A, B, ALFA, BETA, N, IERR)

Результаты:

      IERR  =  0

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

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

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

      λ1  =  0.83333 + 1.9930i
      λ2  =  0.83331 - 1.9931i
      λ3  =  0.50000 + 0.0i