Текст подпрограммы и версий ( Фортран ) agg3c.zip |
Тексты тестовых примеров ( Фортран ) tagg3c.zip |
Текст подпрограммы и версий ( Си ) agg3c_c.zip |
Тексты тестовых примеров ( Си ) tagg3c_c.zip |
Текст подпрограммы и версий ( Паскаль ) agg3c_p.zip |
Тексты тестовых примеров ( Паскаль ) tagg3c_p.zip |
Вычисление всех собственных значений в обобщенной проблеме А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