Текст подпрограммы и версий ( Фортран ) agt2c.zip |
Тексты тестовых примеров ( Фортран ) tagt2c.zip |
Текст подпрограммы и версий ( Си ) agt2c_c.zip |
Тексты тестовых примеров ( Си ) tagt2c_c.zip |
Текст подпрограммы и версий ( Паскаль ) agt2c_p.zip |
Тексты тестовых примеров ( Паскаль ) tagt2c_p.zip |
Вычисление всех собственных значений и собственных вектоpов в обобщенной поблеме AV - 1x = λBV - 1x для комплексных верхней почти треугольной матрицы A, верхней треугольной матрицы B и произвольной невырожденной матрицы V, с помощью LR - алгоритма.
Подпрограма AGT2C вычисляет все собственные значения и собственые векторы обобщенной проблемы
AV - 1 = λBV - 1x
для комплексных верхней почти треугольной матрицы A, верхней треугольной матрицы B и произвольной невырожденной матрицы V с помощью LR - алгоритма. Матрицы A, B и V имеют размеры N на N.
Информация о вычисленных собственных значениях выдается в векто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.
Вычисленные собственные векторы запоминаются в столбцах матрицы V.
R.S.Mfrtin, 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 AGT2C (A, B, V, ALFA, BETA, IERR)
Параметры
A, B - | комплексные двумерные массивы размера N на N, содержащие соответственно верхнюю почти треугольную и верхнюю треугольную матрицы; |
V - | комплексный двумерный массив размера N на N, содержащий заданную невырожденную матрицу V; в результате работы подпрограммы в столбцах массива V содержатся вычисленные собственные векторы Xk; |
ALFA - BETA | комплексные векторы длины N, содержащие информацию о собственных значениях λk обобщенной проблемы; при этом собственные значения определяются формулой (1); |
N - | заданный порядок исходных матриц A, B и V (тип: целый); |
IERR - | целая переменная, служащая для сообщения об ошибках обнаруженных в ходе работы подпрограммы; значение IERR полагается равным номеpу собственного значения для вычисления которого потребовалось более 30 итераций; при этом собственные значения с индексами IERR+1, ..., N вычислены правильно, а с индексами 1, ..., IERR и соответствующие собственные векторы не вычисляются. |
Версии : нет
Вызываемые подпрограммы
UTAG10 - | подпрограмма выдачи диагностических сообщений при работе подпрограммы AGT2C. |
Замечания по использованию
1. |
Подпрограмма AGT2C не сохраняет исходную информацию. | |
2. |
B массиве V должна задаваться единичная матрица, если решается обобщенная проблема Ax = λBx для комплексных верхней почти треугольной матрицы A и верхней треугольной матрицы B. | |
3. | Вычисленные собственные векторы нормализованы так, что наибольшая компонента по модулю pавна 1. |
DIMENSION A (3, 3), B (3, 3), V (3, 3), ALFA (3), BETA (3) COMPLEX A, B, V, 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 = 0 CALL AFG3C (A, B, V, N, M) CALL AGT2C (A, B, V, ALFA, BETA, N, IERR) Результаты: IERR = 0 | 2.79963 - 3.65018i | ALFA = | 0.42142 + 0.54945i | | -1.09877 + 0.0i | | -1.05899 - 1.89748i | BETA = | -0.15941 + 0.27809i | | -2.19753 + 0.0i | | -0.25205 + 0.19169i | | -0.25205 - 0.19169i | | 0.0 + 0.0i | | -0.08799 - 0.72598i | V = | -0.08799 - 0.72598i | | 0.0 + 0.0i | | 1.00000 + 0.0i | | 1.00000 + 0.0i | | 1.0 + 0.0i | Собственные значения λk = ALFA(k) / BETA(k) λ1 = 0.83333 + 1.9930i λ2 = 0.83331 - 1.9931i λ3 = 0.50000 + 0.0i Собственные векторы | -0.25205 + 0.19169i | X1 = | -0.08799 - 0.72598i | | 1.00000 + 0.0i | | -0.25205 - 0.19169i | X2 = | -0.08799 - 0.72598i | | 1.00000 + 0.0i | | 0.0 + 0.0i | X3 = | 0.0 + 0.0i | | 1.0 + 0.0i |