Текст подпрограммы и версий ( Фортран )
agt1r.zip 
Тексты тестовых примеров ( Фортран )
tagt1r.zip 
Текст подпрограммы и версий ( Си )
agt1r_c.zip 
Тексты тестовых примеров ( Си )
tagt1r_c.zip 
Текст подпрограммы и версий ( Паскаль )
agt1r_p.zip 
Тексты тестовых примеров ( Паскаль )
tagt1r_p.zip 

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

Назначение

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

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

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

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

         λI = ALFR(I) / BETA(I) + i ALFI(I) / BETA(I),    при BETA(I) ≠ 0,
(1)    λI = ∞                                                           , при BETA(K) = 0,
         λI = любое число                                        , при ALFR(I) = ALFI(I) =
                                                                                       = BETA(I) = 0. 

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

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

    SUBROUTINE  AGT1R (A, B, ALFR, ALFI, BETA, N, IERR) 

Параметры

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

Версии : нет

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

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

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

  Подпрограмма AGT1R не сохраняет исходную информацию.

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

          DIMENSION A(3, 3), B(3, 3), ALFR(3), ALFI(3), BETA(3)
          DATA  A /1., -10., 5., 0.5, 2., 1., 2*0., 0.5/
          DATA  B /0.5, 3., 4., 0., 3., 0.5, 2*0., 1./
          N = 3
          M = 1
          CALL  AFG3R (A, B, N, M)
          CALL  AGT1R (A, B, ALFR, ALFI, BETA, N, IERR)

Результаты:

       IERR = 0
       ALFR  =  (1.27052,   0.40869,   1.00306)
       ALFI   =  (3.03864,  -0.97744,   0.00000)
       BETA  =  (1.52462,   0.49043,   2.00612)

Собственные значения
   λk  =  (ALFR(k) + i ALFI(k)) / BETA(k),   k  =  1, 2, 3

   λ1  =  0.83333 + 1.9930i
   λ2  =  0.83333 - 1.9930i
   λ3  =  0.50000 + 0.0000i