Текст подпрограммы и версий ( Фортран ) agt3c.zip |
Тексты тестовых примеров ( Фортран ) tagt3c.zip |
Текст подпрограммы и версий ( Си ) agt3c_c.zip |
Тексты тестовых примеров ( Си ) tagt3c_c.zip |
Текст подпрограммы и версий ( Паскаль ) agt3c_p.zip |
Тексты тестовых примеров ( Паскаль ) tagt3c_p.zip |
Вычисление всех собственных значений в обобщенной проблеме А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